1.0.0 • Published 6 years ago

pause-fn v1.0.0

Weekly downloads
255
License
ISC
Repository
github
Last release
6 years ago

pause-fn

npm version Build Status codecov

A Node.js module to pause/resume execution of a function

const {pause, resume} = require('pause-fn');
const pausedConsoleLog = pause(console.log);

pausedConsoleLog(1); //=> prints nothing
pausedConsoleLog(2, 3); //=> prints nothing

resume(pausedConsoleLog); //=> prints '1\n' and '2 3\n'

Installation

Use npm.

npm install pause-fn

API

const pauseFn = require('pause-fn');

pauseFn(func)

func: Function
Return: Function

It returns a Function that does nothing and always returns undefined.

let num = 0;
const countUp = () => ++num;

countUp(); //=> 1
num; //=> 1

const pausedCountUp = pauseFn(countUp);

pausedCountUp(); //=> undefined, not 2
num; //=> 1, not 2

pausedCountUp(); //=> undefined
pausedCountUp(); //=> undefined
pausedCountUp(); //=> undefined
// ...
num; //=> 1

pauseFn.pause(func)

An alias of pauseFn().

pauseFn.resume(func)

func: Function returned by pauseFn()
Return: any[]

It restores the original functionality of the paused Function, calls it with the every arguments passed while paused, and returns the return values of each calls as an Array.

const pausedMathMax = pauseFn(Math.max);

pausedMathMax(0); //=> undefined, not 0
pausedMathMax(Infinity, 1); //=> undefined, not Infinity

// The original function works as usual
Math.max(2, 3); //=> 3

pauseFn.resume(pausedMathMax); //=> [0, Infinity]

// Unlike the variable name, it's no longer paused
pausedMathMax(2, 3); //=> 3

License

ISC License © 2019 Shinnosuke Watanabe