A nodejs service consuming the Stackoverflow API
To be able to use the stackexchange api, one should have StackExchange credentials listed in the .env
- STACKEXCHANGE_CLIENT_ID
- STACKEXCHANGE_CLIENT_SECRET
- STACKEXCHANGE_APPS_KEY
To get the above credentials, signup on StackExchange APi
Read the Stack Exchange App Setup Guid to be able to configure the app
To be able to access the github api you need the bellow credentials
GITHUB_CLIENT_ID GITHUB_CLIENT_SECRET
Use the this documentation guid to be able to create a github application and have the API credentials to use in the app
To access the bitbucket api. A bit bucket application credentials are required. Follow the guide on here to create bitbucket app and generate a bitbucket credentials
git clone https://github.com/PatrickNiyogitare28/multi-auth-microservice.git
cd node-boilerplate
npm install
npm start
npm run build
npm test
Building a production docker image
$ docker build . -t <docker-username>/app-name
# docker build . -t PatrickNiyogitare28/multi-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 PatrickNiyogitare28/multi-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