UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

48 lines (47 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _reduceLazy_1 = require("./_reduceLazy"); var purry_1 = require("./purry"); function flattenDeep() { return purry_1.purry(_flattenDeep, arguments, flattenDeep.lazy); } exports.flattenDeep = flattenDeep; function _flattenDeep(items) { return _reduceLazy_1._reduceLazy(items, flattenDeep.lazy()); } function _flattenDeepValue(value) { if (!Array.isArray(value)) { return value; } var ret = []; value.forEach(function (item) { if (Array.isArray(item)) { ret.push.apply(ret, flattenDeep(item)); } else { ret.push(item); } }); return ret; } (function (flattenDeep) { function lazy() { return function (value) { var next = _flattenDeepValue(value); if (Array.isArray(next)) { return { done: false, hasNext: true, hasMany: true, next: next, }; } return { done: false, hasNext: true, next: next, }; }; } flattenDeep.lazy = lazy; })(flattenDeep = exports.flattenDeep || (exports.flattenDeep = {}));