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-microserviceRunning 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
pathssection of yourtsconfig.jsonfile. -
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- removesdistfolder. -
build- runscleanand builds app. -
start- cleans, builds, and starts app. -
test- runsmochawith 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