UNPKG

villa

Version:

Promise utilities for async/await-ready environment.

63 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("."); class Chainable extends Promise { each(handler) { let chainable = this.then(values => _1.each(values, handler)); return Promise.resolve(chainable); } every(handler) { let chainable = this.then(values => _1.every(values, handler)); return Promise.resolve(chainable); } filter(handler) { return this.then(values => _1.filter(values, handler)); } find(handler) { let chainable = this.then(values => _1.find(values, handler)); return Promise.resolve(chainable); } findIndex(handler) { let chainable = this.then(values => _1.findIndex(values, handler)); return Promise.resolve(chainable); } map(transformer, concurrency) { return this.then(values => _1.map(values, transformer, concurrency)); } parallel(handler, concurrency) { let chainable = this.then(values => _1.map(values, handler, concurrency)); return Promise.resolve(chainable).then(() => undefined); } race(transformer) { let chainable = this.then(values => Promise.race(values.map(transformer))); return Promise.resolve(chainable); } reduce(transformer, ...args) { let chainable = this.then(values => _1.reduce(values, transformer, ...args)); return Array.isArray(args[0]) ? chainable : Promise.resolve(chainable); } reduceRight(transformer, ...args) { let chainable = this.then(values => _1.reduceRight(values, transformer, ...args)); return Array.isArray(args[0]) ? chainable : Promise.resolve(chainable); } some(handler) { let chainable = this.then(values => _1.some(values, handler)); return Promise.resolve(chainable); } static resolve(resolvable) { return new Chainable(resolve => resolve(resolvable)); } } 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