@beenotung/tslib
Version:
utils library in Typescript
61 lines • 1.83 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) {
/* tslint:disable:forin */
for (const k in x) {
f(x[k], k, x);
}
/* tslint:enable:forin */
}
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 (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 || (exports.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;
//# sourceMappingURL=foreach.js.map