Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

common-services

3.0.1 • Public • Published

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

This module contains various common injectable services I use into a lot of applications.

API

Functions

initCounterService(services)Promise.<function()>

Instantiate the counter service

initDelayService(services)Promise.<Object>

Instantiate the delay service

initDelayMock()Promise.<Object>

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

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

Instantiate the counter service

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

Param Type Description
services Object The services to inject
[services.COUNTER] Object An optional configuration object
[services.log] Object An optional logging function

Example

import initCounterService from 'common-services/src/counter';
 
const counter = await initCounterService({
  COUNTER: { firstCount: 1 },
  log: console.log.bind(console),
});

initCounterService~counter() ⇒ Promise.<number>

Returns the current count and increment the counter

Kind: inner method of initCounterService
Returns: Promise.<number> - A promise of the current count
Example

console.log([
  counter(),
  counter(),
  counter(),
]);
// Prints: 1,2,3

initDelayService(services) ⇒ Promise.<Object>

Instantiate the delay service

Kind: global function
Returns: Promise.<Object> - A promise of the delay service

Param Type Description
services Object The services to inject
[services.log] function 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 resolved 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.<Object>

Instantiate the delay service mock

Kind: global function
Returns: Promise.<Object> - 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 The logger to use
[services.debug] function noop A debugging function

Example

import initLogService from 'common-services/src/log';
 
const log = await initLogService({
  logger: require('winston'),
  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

install

npm i common-services

Downloadsweekly downloads

20

version

3.0.1

license

MIT

repository

githubgithub

last publish

collaborators

  • avatar