UNPKG

@beenotung/tslib

Version:
60 lines (59 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.foreach_any = exports.foreach_nodeList = exports.foreach_map = exports.foreach_set = exports.foreach_object = exports.foreach_array = exports.foreachs = void 0; const type_1 = require("../type"); var foreachs; (function (foreachs) { function array(xs, f) { xs.forEach(f); } foreachs.array = array; function object(x, f) { // eslint-disable-next-line guard-for-in for (const k in x) { f(x[k], k, x); } } foreachs.object = object; function set(xs, f) { xs.forEach(x => f(x, xs)); } foreachs.set = set; function map(xs, f) { xs.forEach(f); } foreachs.map = map; function nodeList(xs, f) { for (let i = 0; i < xs.length; i++) { f(xs.item(i), i, xs); } } foreachs.nodeList = nodeList; function any(o, f) { if (Array.isArray(o)) { return o.forEach(f); } if (o instanceof HTMLCollection) { return nodeList(o, f); } switch ((0, type_1.getObjectType)(o)) { case 'Array': return array(o, f); case 'Set': return set(o, f); case 'Map': return map(o, f); case 'Object': return object(o, f); default: return f(o); } } foreachs.any = any; })(foreachs || (exports.foreachs = foreachs = {})); exports.foreach_array = foreachs.array; exports.foreach_object = foreachs.object; exports.foreach_set = foreachs.set; exports.foreach_map = foreachs.map; exports.foreach_nodeList = foreachs.nodeList; exports.foreach_any = foreachs.any;