UNPKG

@rxx/testing

Version:
62 lines (61 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function functor(fn, props) { for (var prop in props) { fn[prop] = props[prop]; } return fn; } exports.graceful = functor(function (cb, done, optCallback) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var error; try { cb.apply(null, args); } catch (e) { error = e; } finally { optCallback && optCallback(); done(error); } }; }, { run: function (cb, done, optCallback) { return exports.graceful(cb, done, optCallback)(); }, }); exports.nothing = function (done, optCallback) { return function () { return (optCallback && optCallback(), done()); }; }; exports.stopOnError = functor(function (cb, done, optCallback) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } try { return cb.apply(null, args); } catch (e) { optCallback && optCallback(); done(e); } }; }, { run: function (cb, done, optCallback) { return exports.stopOnError(cb, done, optCallback)(); }, }); var Joiner = (function () { function Joiner(time, cb) { this.time = time; this.cb = cb; this.current = 0; } Joiner.prototype.notify = function () { if (++this.current === this.time) { this.cb(); } }; return Joiner; }()); exports.Joiner = Joiner;