1.0.21 • Published 3 years ago

@vanilla-ts-api/ms-vanilla-node-typescript-api v1.0.21

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

MS Vanilla ts API

MS Vanilla ts API is an Node.js based API setup that provides basic setup for the API creation.

Application uses:

Project setup

This project was created using commands below:

- npm init -y
- npm install typescript -g
- tsc --init
- npm install concurrently nodemon
- mkdir ./src
- mkdir ./dist

tsconfig.json file was modified as:

    "outDir": "./dist",                        /* Redirect output structure to the directory. */
    "rootDir": "./src",  
Then more dependencies and files needed for Node.js API to function were added as:
  • touch ./src/index.ts
  • npm i express @types/express
  • npm i swagger-ui-express @types/swagger-ui-express swagger-jsdoc @types/swagger-jsdoc
  • npm i body-parser @types/body-parser
  • npm i @types/cors cors
- npm i log4js @types/log4js

[Config](https://www.npmjs.com/package/node-config-ts) module that enables reading different settings for different environments was added as:
  • npm i node-config-ts
  • mkdir ./config
  • touch ./config/default.json

  • edit package.json

and scripts for creating config.d.ts file (based on current value of node env variable. eg: test, dev), as well as other scripts were updated:

  "scripts": {
    "postinstall": "node-config-ts",      
    "start:build": "tsc -w",
    "start:run": "nodemon dist/index.js",
    "start": "concurrently npm:start:*"
  },
  "devDependencies": {
    "@types/jest": "^25.2.1",
    "@types/node": "^13.11.1",
    "@types/supertest": "^2.0.8",
    "jest": "^25.3.0",
    "supertest": "^4.0.2",
    "ts-jest": "^25.3.1",
    "typescript": "^3.8.3"
  }

Authentification

This project can use Okta (OktaJwtVerifier) or API Key for authentification. Okta: (https://www.npmjs.com/package/@okta/jwt-verifier)

Config files contain information about Okta client and Okta application which is used. Config files contain information about Api Keys.

List of public endpoints is defined in the config file.

Okta installation:

npm i @okta/jwt-verifier