udes-node-orchestrator

2.4.3 • Public • Published

UdeS Node Orchestrator

Greenkeeper badge CircleCI npm Node

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

  1. git clone https://github.com/UdeS-STI/udes-node-orchestrator.git
  2. cd udes-node-orchestrator
  3. 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

JSDocs 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.

Dependencies (17)

Dev Dependencies (16)

Package Sidebar

Install

npm i udes-node-orchestrator

Weekly Downloads

12

Version

2.4.3

License

MIT

Unpacked Size

62.3 kB

Total Files

21

Last publish

Collaborators

  • jfbelisle
  • katima-g33k