@codibre/fluent-iterable
Version:
Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).
34 lines (33 loc) • 1.09 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fluentFor = fluentFor;
const _1 = require(".");
const fluent_1 = __importDefault(require("./fluent"));
function internalFluentFor(start, condition, increment) {
let current = start;
return {
[Symbol.iterator]: () => ({
next() {
const done = !condition(current);
const value = current;
current = increment(current);
return {
value,
done,
};
},
}),
};
}
/**
* Generates a FluentIterable that yields a for-like increment
* @param start The starting number
* @param condition The keep going condition
* @param increment The increment. Default 1
*/
function fluentFor(start, condition, increment = _1.identity) {
return (0, fluent_1.default)(internalFluentFor(start, condition, increment));
}