node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

common-services

common-services

A module to gather very common services and their mocks.

NPM version Build status Dependency Status devDependency Status Coverage Status Code Climate Dependency Status

API

Constants

COMMON_SERVICES : Object

All services of the common-services module as properties.

COMMON_MOCKS : Object

All mocks of the common-services module as properties.

Functions

initDelayService(services)Promise.<function()>

Instantiate the delay service

initDelayMock()Promise.<function()>

Instantiate the delay service mock

initLogService(services)Promise.<function()>

Instantiate the logging service

initLogMock()Promise.<function()>

Instantiate the logging mock

initRandomService(services)Promise.<function()>

Instantiate the random service

initRandomMock()Promise.<function()>

Instantiate the random service mock

initTimeService(services)Promise.<function()>

Instantiate the time service

initTimeMock()Promise.<function()>

Instantiate the time service mock

COMMON_SERVICES : Object

All services of the common-services module as properties.

Kind: global constant
Example

import COMMON_SERVICES from 'common-services';
import $ from 'knifecycle/instance';
 
$.register(
  ...Object.keys(COMMON_SERVICES)
  .map(serviceName => COMMON_SERVICES[serviceName])
 );

COMMON_MOCKS : Object

All mocks of the common-services module as properties.

Kind: global constant
Example

import COMMON_MOCKS from 'common-services';
import $ from 'knifecycle/instance';
 
$.register(
  ...Object.keys(COMMON_MOCKS)
  .map(serviceName => COMMON_MOCKS[serviceName])
 );

initDelayService(services) ⇒ Promise.<function()>

Instantiate the delay service

Kind: global function
Returns: Promise.<function()> - A promise of the logging function

Param Type Description
services Object The services to inject
[services.log] Object A logging function

Example

import initDelayService from 'common-services/src/delay';
 
const delay = await initDelayService({
  log: console.log.bind(console)
});

initDelayService~create(delay) ⇒ Promise

Create a new delay

Kind: inner method of initDelayService
Returns: Promise - A promise to be reolved after that delay or rejected if it is cancelled.

Param Type Description
delay Number The delay in ms

Example

delay.create(1000)
.then(() => console.log('1000 ms elapsed!'))
.catch(() => console.log('Cancelled!'));
// Prints: 1000 ms elapsed! 

initDelayService~clear(promise) ⇒ Promise

Cancel an earlier created delay

Kind: inner method of initDelayService
Returns: Promise - A promise resolved when cancellation is done.

Param Type Description
promise Promise The promise of the delay to cancel

Example

const delayed = delay.create(1000)
.then(() => console.log('1000 ms elapsed!'))
.catch(() => console.log('Cancelled!'));
clear(delayed)
// Prints: Cancelled! 

initDelayMock() ⇒ Promise.<function()>

Instantiate the delay service mock

Kind: global function
Returns: Promise.<function()> - A promise of the mocked delay service
Example

import initDelayMock from 'common-services/src/delay.mock';
import assert from 'assert';
 
const delay = await initDelayMock();
 
const delayPromise = delay.create(1000);
 
delay.resolve(delayPromise);
 
delayPromise.then(() => {
  // Any code here will execute immediatly 
  // instead of after a 1000ms delay 
});

initLogService(services) ⇒ Promise.<function()>

Instantiate the logging service

Kind: global function
Returns: Promise.<function()> - A promise of the logging function

Param Type Default Description
services Object The services to inject
[services.logger] Object console The logger to use
[services.debug] function A debugging function

Example

import initLogService from 'common-services/src/log';
 
const log = await initLogService({ debug: require('debug')('myapp') });

initLogService~log(type, ...args) ⇒ void

Logging function

Kind: inner method of initLogService

Param Type Description
type String Log type
...args * Log contents

Example

log('debug', 'Luke, I am your father!')

initLogMock() ⇒ Promise.<function()>

Instantiate the logging mock

Kind: global function
Returns: Promise.<function()> - A promise of the mocked logging function
Example

import initLogMock from 'common-services/src/log.mock';
import assert from 'assert';
 
const log = await initLogMock();
 
log('info', 'Hello!');
log('error', 'Aouch!');
 
assert.deepEqual(log.args, [[
  'info', 'Hello!'
], [
  'error', 'Aouch!'
]]);
 
log.reset();
 
assert.deepEqual(log.args, []);

initRandomService(services) ⇒ Promise.<function()>

Instantiate the random service

Kind: global function
Returns: Promise.<function()> - A promise of the random function

Param Type Description
services Object The services to inject
[services.log] Object A logging function

Example

import initRandomService from 'common-services/src/random';
 
const random = await initRandomService({
  log: console.log.bind(console),
});

initRandomService~random() ⇒ number

Returns a new random number

Kind: inner method of initRandomService
Returns: number - The random number
Example

random()
// Prints: 0.3141592653589793 

initRandomMock() ⇒ Promise.<function()>

Instantiate the random service mock

Kind: global function
Returns: Promise.<function()> - A promise of the mocked random function
Example

import initRandomMock from 'common-services/src/random.mock';
import assert from 'assert';
 
const random = await initRandomMock();
 
random.returns(0.5); // A good limit value to test ;) 
 
assert.equal(random(), 0.5);
assert.deepEqual(random.args, [[]], 'Called once');
 
random.reset();
 
assert.deepEqual(random.args, []);

initTimeService(services) ⇒ Promise.<function()>

Instantiate the time service

Kind: global function
Returns: Promise.<function()> - A promise of the time function

Param Type Description
services Object The services to inject
[services.log] Object A logging function

Example

import initTimeService from 'common-services/src/time';
 
const time = await initTimeService({
  log: console.log.bind(console),
});

initTimeService~time() ⇒ number

Returns the current timestamp

Kind: inner method of initTimeService
Returns: number - The current timestamp
Example

time()
// Prints: 1326585600000 

initTimeMock() ⇒ Promise.<function()>

Instantiate the time service mock

Kind: global function
Returns: Promise.<function()> - A promise of the mocked time function
Example

import initTimeMock from 'common-services/src/time.mock';
import assert from 'assert';
 
const time = await initTimeMock();
 
// Let's returns Thomas birth date (OMG ya father 
// talking me about its childrens :D). 
time.returns(new Date('2014-01-26T00:00:00.000Z'));
 
assert.equal(time(), 1390694400000);
assert.deepEqual(time.args, [[]], 'Called once');
 
time.reset();
 
assert.deepEqual(time.args, []);

License

MIT