agora-edu-core
Version:
Core APIs for building an online classroom
46 lines (45 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.iterateSet = exports.iterateMap = void 0;
const iterateMap = (map, processors) => {
const onFilter = (processors === null || processors === void 0 ? void 0 : processors.onFilter) || (() => true);
const {
onMap,
onReduce
} = processors || {};
const list = [];
let prev = undefined;
for (const [k, v] of map.entries()) {
if (onFilter(k, v)) {
if (onMap) list.push(onMap(k, v));
if (onReduce) prev = onReduce(prev, k, v);
}
}
return {
list,
prev
};
};
exports.iterateMap = iterateMap;
const iterateSet = (map, processors) => {
const onFilter = (processors === null || processors === void 0 ? void 0 : processors.onFilter) || (() => true);
const {
onMap,
onReduce
} = processors || {};
const list = [];
let prev = undefined;
for (const item of map.values()) {
if (onFilter(item)) {
if (onMap) list.push(onMap(item));
if (onReduce) prev = onReduce(prev, item);
}
}
return {
list,
prev
};
};
exports.iterateSet = iterateSet;