@codibre/fluent-iterable
Version:
Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).
26 lines (25 loc) • 1.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.f = f;
const EventEmitter = require("events");
const fluent_1 = __importDefault(require("./fluent"));
const fluent_async_1 = require("./fluent-async");
const fluent_async_func_1 = require("./fluent-async-func");
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_func_1.fluentAsync)(iterable);
}
else if (iterable instanceof EventEmitter) {
return (0, fluent_async_1.fluentEmit)(iterable, options);
}
return (0, fluent_object_1.fluentObject)(iterable);
}