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
const getPostInfo = async { const responseHelper = req res config const post = responseHelper const options = method: 'GET' url: `/posts/` try const data = await responseHelper // Send response data back to user. responseHelper catch err // Send error back to user. responseHelper } // Instantiate an orchestrator with your server configuration.const orchestrator = config // Set routes with an array of objects containing route info.orchestrator // 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.Xgit push origin --tagsnpm 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
.