UNPKG

@codibre/fluent-iterable

Version:

Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).

27 lines (26 loc) 1.63 kB
"use strict"; 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;