UNLICENSE License
This template provides a few things to kick start a TypeScript Node.JS project, an IoC library (Inversify.JS), linting (ESLint and Prettier), automatic dependency updates (Renovate), logger (Pino), Dockerfile, Document generation (Typedoc). This template purposely avoids taking opinions on frameworks that would constrain the type of services/projects created.
The following scripts are included in the NPM project configuration
lint
lints the source code using eslintlint:fix
automatically fixes any lint errors that can be fixed automaticallytest
uses jest to run test suitesbuild
compiles the typescript into js and places it in the dist
folderbuild:docs
generates the documentation pages from the code commentsbuild:image
build the container image from the Dockerfilestart
runs the compiled js in dist
start:dev
runs using nodemon and will automatically rebuild and launch whenever a change is made under the source folderThis is meant to include service abstractions, ideally each service should provide an interface/contract exposing the functionality that other things in the application need.
This houses interfaces/models with little to no logic, the intent is these items can be passed/returned from the abstractions in services and avoid tight coupling to third party types.
This defines symbols for each type that will be configured in the IoC container, these are used to identify the type when using @inject(TYPES.Services.Echo)
for example. For more information refer to inversify.
This file maps the types defined in ./src/types.ts
to interface types. For more information refer to inversify.