Typescript fork of koa2-kickstarter. Wondering why Typescript ? Read this post on StackOverflow
# clone the repository
λ git clone https://github.com/aitchkhan/koa2-ts-quickstart
# change the current directory
λ cd koa2-ts-quickstart
# install all dependencies
λ npm install
#Create a file development.secret in src/conf folder and paste:
MYSQL_ROOT_PASSWORD=whatevermypassword
# run the project
λ docker-compose up --build
├── 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.
- Jest For all 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).
- Docker Well, 🐳 🕶️
And many more small packages.
npm start
- simply starts the servernpm run watch
- reload changesnpm 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.
docker-compose
for running both mysql volume container and node.js container as well.