Typescript fork of koa2-kickstarter. Wondering why Typescript ? Read this post on StackOverflow
# clone the repository
λ git clone https://github.com/mohuk/koa2-ts-init
# change the current directory
λ cd koa2-ts-init
# install all dependencies
λ yarn
# run the project
λ npm run start
├── 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.
- Koa Well, duh.
- Koa Router For routing and all.
- Debug Debug messages in the development environment.
- Bunyan Extensive logging module.
- Ava For unit tests.
- Boom HTTP Errors.
- Convict Configuration management.
- Typescript Typed superset of Javascript. Supports ES6/ES7 features.
- TSLint Linting purposes.
- Nodemon Restart the server automatically (hot-reloading).
And many more small packages.
npm start
- simply starts the servernpm test
- execute all unit testsnpm run lint
- lints all the files insrc/
foldernpm run lint:fix
- fixes all the possible linting errorsnpm run watch
- starts the server with hot-reloading
Suggestion: To turn on debug messages, set DEBUG
environment variable to kickstarter:*
Dockerfile
for the project has been packaged. Running instructions are standard and can be found below:
λ docker build -t koa .
# you can set the DEBUG environment variable through -e DEBUG={value}
λ docker run -dp 4000:4000 koa