A boilerplate for a node web api application. It's designed to work out-of-the-box.
git clone https://github.com/PatrickNiyogitare28/node-ts-super-plate.git
cd node-boilerplate
npm install
npm start
curl localhost:8080/api/greeter?name=Bill
- Should return:
Hello, Bill!
npm run build
npm test
Building a production docker image
$ docker build . -t <docker-username>/app-name
# docker build . -t patrickniyo/stackoverflow-auth-microservice/
Running the production docker image in a container
$ docker run -p <app-port>:<localhost-port> [image-name or image-id]
# docker run -p 5000:5000 patrickniyo/stackoverflow-auth-microservice/
-
There are included vscode specific settings included to streamline things.
-
Using WSL on Windows is just a smoother developer experience.
-
IoC container for typescript.
-
Allows your transpiled code to actually make use of the
paths
section of yourtsconfig.json
file. -
For testing.
-
Assertion library.
Has all the rules/config for ESLint.
Config settings for mocha when running it from the command line.
-
ts-node/register
- for compilation. -
module-alias/register
- for path alias recognition.
-
clean
- removesdist
folder. -
build
- runsclean
and builds app. -
start
- cleans, builds, and starts app. -
test
- runsmocha
with settings inmocharc.jsonc
.
Needed for module-alias
package. Should match keys in paths
of tsconfig.json
as such (note the lack of wildcard in package.json
):
package.json
{
// ...
"_moduleAliases": {
"@service": "dist/service"
// ...
}
// ...
}
tsconfig.json
{
"compilerOptions": {
// ...
"paths": {
"@service/*": ["./src/service"]
// ...
}
// ...
}
}
include
key is for including any source files that you want VSCode to recognize.
Used only for build to exclude the test
folder in compilation.
After cloning and prior to opening in Visual Studio Code, go ahead and run the install and build commands to prevent it barking at you.
npm install
npm run build
Once you have the folder open in Visual Studio Code, it will prompt you to download some recommended extensions... Do that...
Code linter for TypeScript and JavaScript
Sidebar test runner for Mocha Tests