It provides the following features out of the box -
- Database agnostic design using TypeOrm
- Uses TypeDi for dependency injection
- Uses our in house gc-router for routing -
- Auto-exposes an endpoint at /openapi with the full swagger documentation including all endpoints and request/response models
- Allows simple CORS configurtion
- Has required helm and docker config files for a quick K8 deployment
- Wired in with our in house gc-logger -
- Hooks into NodeJs call stack to preserve and include a requestId with every log message allowing easy batching of log messages related to a request
- Hooks into TypeOrm to auto log (can be turned off in prod) all SQL queries executed via TypeOrm
- Support for console and file logs. File logs can be configured to auto-roll with custom time windows. Old log files will be auto compressed using gzip.
- Experimental support for OpenTracing
- Handles NodeJs unhandled promises and unhandled exception logging
- Comes with ESLint (airbnb + custom) and Prettier wired in
- Wired in with Husky, LintStaged and commitLint for auto linting on commits
Note: Don't forget to replace ATemplate
with your project name.