@beenotung/tslib
Version:
utils library in Typescript
60 lines (59 loc) • 1.77 kB
JavaScript
;
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;