UNPKG

villa

Version:

Promise utilities for async/await-ready environment.

83 lines 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var _1 = require("."); var Chainable = /** @class */ (function (_super) { tslib_1.__extends(Chainable, _super); function Chainable() { return _super !== null && _super.apply(this, arguments) || this; } Chainable.prototype.each = function (handler) { var chainable = this.then(function (values) { return _1.each(values, handler); }); return Promise.resolve(chainable); }; Chainable.prototype.every = function (handler) { var chainable = this.then(function (values) { return _1.every(values, handler); }); return Promise.resolve(chainable); }; Chainable.prototype.filter = function (handler) { return this.then(function (values) { return _1.filter(values, handler); }); }; Chainable.prototype.find = function (handler) { var chainable = this.then(function (values) { return _1.find(values, handler); }); return Promise.resolve(chainable); }; Chainable.prototype.findIndex = function (handler) { var chainable = this.then(function (values) { return _1.findIndex(values, handler); }); return Promise.resolve(chainable); }; Chainable.prototype.map = function (transformer, concurrency) { return this.then(function (values) { return _1.map(values, transformer, concurrency); }); }; Chainable.prototype.parallel = function (handler, concurrency) { var chainable = this.then(function (values) { return _1.map(values, handler, concurrency); }); return Promise.resolve(chainable).then(function () { return undefined; }); }; Chainable.prototype.race = function (transformer) { var chainable = this.then(function (values) { return Promise.race(values.map(transformer)); }); return Promise.resolve(chainable); }; Chainable.prototype.reduce = function (transformer) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var chainable = this.then(function (values) { return _1.reduce.apply(void 0, [values, transformer].concat(args)); }); return Array.isArray(args[0]) ? chainable : Promise.resolve(chainable); }; Chainable.prototype.reduceRight = function (transformer) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var chainable = this.then(function (values) { return _1.reduceRight.apply(void 0, [values, transformer].concat(args)); }); return Array.isArray(args[0]) ? chainable : Promise.resolve(chainable); }; Chainable.prototype.some = function (handler) { var chainable = this.then(function (values) { return _1.some(values, handler); }); return Promise.resolve(chainable); }; Chainable.resolve = function (resolvable) { return new Chainable(function (resolve) { return resolve(resolvable); }); }; return Chainable; }(Promise)); exports.Chainable = Chainable; /** * Wrap given resolvable with a chainable derived of built-in promise. */ function chainable(resolvable) { return Chainable.resolve(resolvable); } exports.chainable = chainable; //# sourceMappingURL=chainable.js.map