runsv-gen-service

0.0.2 • Public • Published

runsv gen-service

A generic runsvjs service wrapper

pipeline status coverage report

Install

$ npm install runsv-gen-server

Usage

Async/Promise clients

#createAsyncService(setup)

Params

#setup

  • name Default service name
  • driver Options default module i.e pg, redis
  • start(deps, driver, options) A function that returns a (ready to work) client
    • #deps Dependencies injected by runsv, if any
    • #driver The driver module
    • #options Options provided for a concrete service instance
  • stop(client) A function that disconnect/terminate/close the client
    • #client An instance of the client to be terminated

Returns a create(options) function that creates an instance of the service.

#options

  • name Optional service name. Overrides default name.
  • driver Optional driver. Overrides default driver.
const runsv = require('runsv');
const {createAsyncService} = require('runsv-gen-service');

const db = require('some-db');
// create your own service
const createDbService = createAsyncService({
	name: 'db',
	driver: db,
	start: async function(deps, db, options){
		const client = await db.create(options);
		await client.connect();
		return client;
	},
	stop: async function(dbClient){
		await dbClient.disconnect();
	}
});

//...

const sv = runsv.create();
const myDbService = createDbService({user: 'root', password: 'root'});
sv.addService(myDbService);
await sv.start();

Callback clients

#createCallbackService(setup)

Params

#setup

  • name Default service name
  • driver Options default module i.e pg, redis
  • start(deps, driver, options, callback) A function that returns a (ready to work) client
    • #deps Dependencies injected by runsv, if any
    • #driver The driver module
    • #options Options provided for a concrete service instance
    • #callback(err, client) Callback to return the client
  • stop(client, callback) A function that disconnect/terminate/close the client
    • #client An instance of the client to be terminated
    • #callback(err) Callback to notify that we are done with the client

Returns a create(options) function that creates an instance of the service.

#options

  • name Optional service name. Overrides default name.
  • driver Optional driver. Overrides default driver.
const runsv = require('runsv');
const {createCallbackService} = require('runsv-gen-service');

const db = require('some-db');
const setup = {
	name:'db', // default name
	driver, // default driver
	start(deps, db, options, callback){
		const client = db.createClient(options);
		client.connect();
		return callback(null, client);
	},
	stop (dbClient, callback){
		dbClient.disconnect(callback);
	}
};
const createDbService = createCallbackService(setup);
const sv = runsv.create();
const myDbService = createDbService({user: 'root', password: 'root'});
sv.addService(myDbService);
sv.start(err, callback);

Readme

Keywords

none

Package Sidebar

Install

npm i runsv-gen-service

Weekly Downloads

58

Version

0.0.2

License

MIT

Unpacked Size

16.4 kB

Total Files

8

Last publish

Collaborators

  • p.revington