Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@betit/orion-node-sdk

Package Overview
Dependencies
Maintainers
51
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@betit/orion-node-sdk

SDK for orion

  • 3.5.7
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-62.5%
Maintainers
51
Weekly downloads
 
Created
Source

NPM version Build Status Test coverage Greenkeeper badge

Installation

$ npm install @betit/orion-node-sdk

Basic example

Note - You will need to have running all of the orion dependencies

Add the following into foo.js and then run VERBOSE=true node foo.js

const ORION = require('@betit/orion-node-sdk');
const FOO = new ORION.Service('foo');

FOO.handle('get', (req, reply) => {
  reply(new ORION.Response('foo'));
});

FOO.listen(() => FOO.logger.createMessage('ready').send());

Then add the following into bar.js and then run node bar.js

const ORION = require('@betit/orion-node-sdk');
const BAR = new ORION.Service('bar');

const REQ = new ORION.Request('/foo/get');
BAR.call(REQ, res => {
  // do stuff
});

You can find more detailed examples in the examples folder.

Async example

This utility also supports functionality with Promises, so the following code can be also used:

const ORION = require('@betit/orion-node-sdk');
const FOO = new ORION.Service('foo');

FOO.handle('get', async (req) => {
  return new ORION.Response('foo');
});

async function initFOO() {
  await FOO.listen();
  FOO.logger.createMessage('ready').send()
}

init().then(exit);

And in bar.js:

const ORION = require('@betit/orion-node-sdk');
const BAR = new ORION.Service('bar');

const REQ = new ORION.Request('/foo/get');

async function main() {
  const res = await BAR.call(REQ);
  // do stuff
}

main().then(exit);

Also, subscriptions can now be looped forever using:

const ORION = require('@betit/orion-node-sdk');
const BAR = new ORION.Service('bar');

async function processEvents() {
  const producer = BAR.onAsync("event");

  while (true) {
    const event = await producer.consume();
  }
}

...

Health checks

Support for health checking is present if the services are running with the environment variable WATCHDOG=true. Also, a watchdog must be running in the same environment as the service.

You can write a network health check as:

const ping = require('ping');
const host = '1.1.1.1';

async function checkNetwork(): Promise<[string, OrionError | undefined]> {
  const isAlive = await ping.promise.probe(host);
  
  if (!isAlive) {
    return [`Can't connect to ${host}`, new OrionError('CRIT')];
  } else {
    return ['', undefined];
  }
}

const healthCheck = {
  checkIsWorking: checkNetwork,
  name: 'have_I_external_net',
  timeout: 1000,
};

const SERVICE = new Service('service_name');
SERVICE.registerHealthCheck(envDependency);

Tracer

The zipkin tracer is disabled by default and you can enable it using the TRACER_ENABLED env. variable with possible values of 1 or true

Documentation

Auto-generated documentation is located here.

Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm test

License

MIT

Keywords

FAQs

Package last updated on 29 Jan 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc