villa
Version:
Promise utilities for async/await-ready environment.
83 lines • 3.45 kB
JavaScript
;
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