@codibre/fluent-iterable
Version:
Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).
27 lines (26 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mounters_1 = require("./mounters");
const mounters_2 = require("./mounters");
const fluent_class_1 = require("./fluent-class");
const fluent_async_1 = require("./fluent-async");
const internal_utils_1 = require("./utils/internal-utils");
/**
* Tranforms an iterable into a [[FluentIterable]].
* @typeparam T The type of the items in the iterable.
* @param iterable The iterable instance.
* @returns The [[FluentIterable]] instance.
*/
function fluent(iterable) {
return (iterable instanceof fluent_class_1.FluentClass
? iterable
: new fluent_class_1.FluentClass(iterable));
}
Object.keys(mounters_1.iterableFuncs).forEach((0, internal_utils_1.addFactory)(fluent_class_1.addFluentMethod, mounters_1.iterableFuncs));
Object.keys(mounters_1.iterableAsyncFuncs).forEach((0, internal_utils_1.addFactory)(fluent_class_1.addFluentAsyncMethod, mounters_1.iterableAsyncFuncs));
const mountedSpecial = (0, mounters_2.mountSpecial)(mounters_1.special, fluent, fluent_async_1.fluentAsync);
Object.keys(mountedSpecial).forEach((0, internal_utils_1.addFactory)(fluent_class_1.addFluentMethod, mountedSpecial));
const mountedSpecialAsync = (0, mounters_2.mountSpecial)(mounters_1.specialAsync, fluent, fluent_async_1.fluentAsync);
Object.keys(mountedSpecialAsync).forEach((0, internal_utils_1.addFactory)(fluent_class_1.addFluentAsyncMethod, mountedSpecialAsync));
Object.keys(mounters_1.resolvingFuncs).forEach((0, internal_utils_1.addFactory)(fluent_class_1.addFluentResolvingMethod, mounters_1.resolvingFuncs));
exports.default = fluent;