/serverless-ts-koa2

Koa2 app with serverless built for AWS

Primary LanguageTypeScriptMIT LicenseMIT

serverless-ts-koa2

Setup

  • TBD

Structure

├── README.md           # you're here
├── bin                 # folder that bootstraps the application
├── src                 # contains source files
│   ├── conf            # wraps configurations files
│   ├── controller      # contains all controllers in the application
│   ├── custom-typings      # contains all controllers in the application
│   ├── middleware      # folder with all middlewares
│   ├── route           # wraps all the routes and exports a single composed middleware
│   └── service         # contains all the service logic
└── test                # unit tests

Suggestion: Every folder name is singular like route, middleware instead of routes, middlewares. If you want to add more folders as per your need, make sure they should be singular too (for e.g. util, helper etc) only for the sake of consistency.

Included

  • Koa Well, duh.
  • Koa Router For routing and all.
  • Debug Debug messages in the development environment.
  • Bunyan Extensive logging module.
  • Jest For all tests.
  • Boom HTTP Errors.
  • Convict Configuration management.
  • Typescript Typed superset of Javascript. Supports ES6/ES7 features.
  • Nodemon Restart the server automatically (hot-reloading).
  • Add Eslint, prettier (TBD) And many more small packages.

Scripts

  • TBD
  • npm start - simply starts the server
  • npm run watch - reload changes
  • npm test - execute all unit tests
  • npm run lint - lints all the files in src/ folder
  • npm run lint:fix - fixes all the possible linting errors
  • npm run watch - starts the server with hot-reloading

Suggestion: To turn on debug messages, set DEBUG environment variable to kickstarter:*