UNPKG

pedding

Version:
55 lines 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pedding = exports.ExecuteTooManyTimesError = void 0; exports.pending = pending; class ExecuteTooManyTimesError extends Error { expected; actual; constructor(expected, actual) { super(`Expected to execute ${expected} times, but got ${actual} times`); this.expected = expected; this.actual = actual; this.name = this.constructor.name; Error.captureStackTrace(this, this.constructor); } } exports.ExecuteTooManyTimesError = ExecuteTooManyTimesError; function pending(n, fn) { let _fn; if (typeof n === 'function') { // keep compatibility for old version // pending(fn, n) _fn = n; n = fn; } else { _fn = fn; } let called = false; let times = 0; const callStack = new Error(); callStack.name = 'CallStack'; return (err) => { if (called) { return; } if (err) { called = true; return _fn(err); } times++; if (times === n) { _fn(); } else if (times > n) { const err = new ExecuteTooManyTimesError(n, times); err.stack += '\n' + callStack.stack; throw err; } }; } /** * @deprecated Use `pending` instead */ exports.pedding = pending; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLDBCQWdDQztBQS9DRCxNQUFhLHdCQUF5QixTQUFRLEtBQUs7SUFDakQsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBUztJQUVmLFlBQVksUUFBZ0IsRUFBRSxNQUFjO1FBQzFDLEtBQUssQ0FBQyx1QkFBdUIsUUFBUSxtQkFBbUIsTUFBTSxRQUFRLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQVhELDREQVdDO0FBSUQsU0FBZ0IsT0FBTyxDQUFDLENBQW9CLEVBQUUsRUFBcUI7SUFDakUsSUFBSSxHQUFhLENBQUM7SUFDbEIsSUFBSSxPQUFPLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUM1QixxQ0FBcUM7UUFDckMsaUJBQWlCO1FBQ2pCLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDUixDQUFDLEdBQUcsRUFBWSxDQUFDO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sR0FBRyxHQUFHLEVBQWMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDOUIsU0FBUyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7SUFDN0IsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUNELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUM7UUFDUixDQUFDO2FBQU0sSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkQsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNwQyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxPQUFPLENBQUMifQ==