[d24f17c] | 1 | "use strict";
|
---|
| 2 |
|
---|
| 3 | exports.__esModule = true;
|
---|
| 4 | exports["default"] = void 0;
|
---|
| 5 | var _ramda = require("ramda");
|
---|
| 6 | var _isNonNegative = _interopRequireDefault(require("./isNonNegative"));
|
---|
| 7 | var _isInteger = _interopRequireDefault(require("./isInteger"));
|
---|
| 8 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
---|
| 9 | /**
|
---|
| 10 | * Creates a promise which resolves/rejects after the specified milliseconds.
|
---|
| 11 | *
|
---|
| 12 | * @func delayP
|
---|
| 13 | * @memberOf RA
|
---|
| 14 | * @category Function
|
---|
| 15 | * @sig Number -> Promise Undefined
|
---|
| 16 | * @sig {timeout: Number, value: a} -> Promise a
|
---|
| 17 | * @param {number|Object} milliseconds number of milliseconds or options object
|
---|
| 18 | * @return {Promise} A Promise that is resolved/rejected with the given value (if provided) after the specified delay
|
---|
| 19 | * @example
|
---|
| 20 | *
|
---|
| 21 | * RA.delayP(200); //=> Promise(undefined)
|
---|
| 22 | * RA.delayP({ timeout: 1000, value: 'hello world' }); //=> Promise('hello world')
|
---|
| 23 | * RA.delayP.reject(100); //=> Promise(undefined)
|
---|
| 24 | * RA.delayP.reject({ timeout: 100, value: new Error('error') }); //=> Promise(Error('error'))
|
---|
| 25 | */
|
---|
| 26 |
|
---|
| 27 | var makeDelay = (0, _ramda.curry)(function (settleFnPicker, opts) {
|
---|
| 28 | var timeout;
|
---|
| 29 | var value;
|
---|
| 30 | if ((0, _isInteger["default"])(opts) && (0, _isNonNegative["default"])(opts)) {
|
---|
| 31 | timeout = opts;
|
---|
| 32 | } else {
|
---|
| 33 | timeout = (0, _ramda.propOr)(0, 'timeout', opts);
|
---|
| 34 | value = (0, _ramda.propOr)(value, 'value', opts);
|
---|
| 35 | }
|
---|
| 36 | return new Promise(function () {
|
---|
| 37 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
---|
| 38 | args[_key] = arguments[_key];
|
---|
| 39 | }
|
---|
| 40 | var settleFn = settleFnPicker(args);
|
---|
| 41 | setTimeout((0, _ramda.partial)(settleFn, [value]), timeout);
|
---|
| 42 | });
|
---|
| 43 | });
|
---|
| 44 | var delayP = makeDelay((0, _ramda.nth)(0));
|
---|
| 45 | delayP.reject = makeDelay((0, _ramda.nth)(1));
|
---|
| 46 | var _default = delayP;
|
---|
| 47 | exports["default"] = _default; |
---|