UNPKG

agora-edu-core

Version:

Core APIs for building an online classroom

46 lines (45 loc) 1.11 kB
"use strict"; 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;