jenga-api
Version:
APIs to integrate Equity Jenga Payments
115 lines (74 loc) • 1.55 kB
Markdown
# SETUP
Add .editorconfig file for vscode
Initialise node project
```
yarn init
```
## Create src folder and src/app.ts, src/types/index.ts files
app.ts file is entry point of the application
# LINTING
Linting is important as it ensures that code is standardized
Run the command to install linting dependencies
```
yarn add --dev typescript eslint prettier tslint @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-prettier eslint-plugin-prettier
```
Create .eslintrc, .prettierrc .eslintignore tsconfig.json files
# TYPES
Add typings
Run
```
yarn add --dev @types/node @types/mongoose @types/agenda @types/express @types/jest @types/lodash
```
# TESTS
Add ts-jest jest for test environment
Run
```
yarn add --dev ts-jest jest
```
# RUNNING
Add the following devtools
Run
```
yarn add --dev husky lint-staged ts-node
```
Add jest.config.js, .lintstagedrc, nodemon.json files
Make changes to package.json scripts and hooks
# ENVIRONMENT
Add .env file
```
```
# PRODUCTION
Add ecosystem.config.js file (Read more from PM2 documentation)
```
exports.apps = [
{
name: ?, // name of the process
script: './build/app.js',
instances: 'max',
exec_mode: 'cluster',
max_memory_restart: '4G',
node_args: '--max_old_space_size=4096',
},
];
```
To start
```
yarn serve
```
To stop
```
yarn stop
```
# DEPLOYMENT
```
docker stop server && docker rm server
```
```
docker build -t server .
```
```
docker run -d --name server -p 8080:8080 server
```
```
docker logs -f server
```