Template for building nodejs and typescript services. The main goal of this boilerplate is to offer a good Developer Experience (eg: debugging, watch and recompile) by providing the following features out of the box:
Features
- Language - TypeScript
- REST API - koa2
- Graceful Shutdown - Pattern
- HealthCheck - Pattern /health
- SQL Database & Migrations - knex
- Authentication and Authorization - JWT
- Validation - Joi
- Testing - Mocha Chai + Sinon Coverage
- Code Style - Prettier
- Git Hooks - Husky
- npm install - Install dependencies
- npm run start - Start application (It needs a mysql database)
- docker-compose up (compose and run, it also creates the mysql database)
- docker-compose down (Destroy application and mysql containers)
- npm run build - Transpile TypeScript code
- npm run clean - Remove dist, node_modules, coverage folders
- npm run coverage - Run NYC coverage
- npm run lint - Lint your TypeScript code
- npm run start:dev - Run application in dev mode (debug & watch). Debug mode is running on port 5858 (open
chrome://inspect/#devices
). - npm run test - Run unit tests
- npm run test:integration - Run integration tests
- npm run test:all - Run Unit and Integration tests