fast-iterable
Version:
Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).
23 lines (22 loc) • 847 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.f = void 0;
const EventEmitter = require("events");
const fluent_1 = require("./fluent");
const fluent_async_1 = require("./fluent-async");
const fluent_object_1 = require("./fluent-object");
const is_async_iterable_1 = require("./is-async-iterable");
const is_iterable_1 = require("./is-iterable");
function f(iterable, options) {
if ((0, is_iterable_1.isIterable)(iterable)) {
return (0, fluent_1.default)(iterable);
}
else if ((0, is_async_iterable_1.isAsyncIterable)(iterable)) {
return (0, fluent_async_1.fluentAsync)(iterable);
}
else if (iterable instanceof EventEmitter) {
return (0, fluent_async_1.fluentEmit)(iterable, options);
}
return (0, fluent_object_1.fluentObject)(iterable);
}
exports.f = f;