udes-node-orchestrator
v2.4.3
Published
Orchestrator server. Handles routes and HTTP traffic.
Downloads
9
Readme
UdeS Node Orchestrator
Introduction
This node server acts as an API to simplify calls made to a server that has a complicated infrastructure.
Prerequisites
- Node 6.10.1 (it is recommended to install it via NVM)
- Ensure you have a development environment setup to use the orchestrator. Since it uses a socket you cannot run it on a local machine.
Getting started
Setup development machine
git clone https://github.com/UdeS-STI/udes-node-orchestrator.git
cd udes-node-orchestrator
npm install
Usage
Scripts
- Start app
npm start
- Run eslint
npm run lint
- Run unit tests
npm run test
- Run code coverage
npm run coverage
- Security check dependencies
npm run audit
- Build library for distribution
npm run build
- Generate documentation for public API
npm run documentation
API
import Orchestrator, { ResponseHelper } from 'udes-node-orchestrator'
import config from './config'
const getPostInfo = async (req, res) => {
const responseHelper = new ResponseHelper(req, res, config)
const { post } = responseHelper.getQueryParameters()
const options = {
method: 'GET',
url: `${config.apiUrl}/posts/${post}`,
}
try {
const data = await responseHelper.fetch(options)
// Send response data back to user.
responseHelper.handleResponse({ data })
} catch (err) {
// Send error back to user.
responseHelper.handleError(err)
}
}
// Instantiate an orchestrator with your server configuration.
const orchestrator = new Orchestrator(config)
// Set routes with an array of objects containing route info.
orchestrator.setRoutes([
{ method: 'GET', url: '/post*', fn: getPostInfo },
])
// Your server is now up and running, listening on set routes.
Logging
The logging system uses Pino. Log levels used are:
error
to display only errors;warn
to display errors and warnings;info
to display all above and request information;debug
to display all above and response information;trace
to display all logs;silent
to disable logs;- NOTE:
fatal
is not used as it exits node process;
Documentation
Example
A minimalist usage example is available in /boilerplate
Release
These steps consider that version bump has already been done.
git tag vX.X.X
git push origin --tags
npm run build
# Change `main` field in `package.json` from `src/index.js` to `dist/index.js`
npm publish
# Revert change to `main` field in `package.json`
Contributing
You must use the following guides:
This project contains a linting config, you should setup eslint
into your
editors with .eslintrc.js
.