UNPKG

@svta/common-media-library

Version:
36 lines 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.filterBoxes = filterBoxes; const createIsoView_js_1 = require("./createIsoView.js"); function filter(iterator, fn, recursive, result) { for (const box of iterator) { if (fn(box)) { result.push(box); } const { boxes } = box; if (recursive && Array.isArray(boxes)) { filter(boxes, fn, recursive, result); } } return result; } /** * Filters boxes based on the given filter function. * * @param raw - The raw boxes to filter. * @param config - The box parser configuration. * @param fn - The filter function. * @returns The filtered boxes. * * @group ISOBMFF * @beta */ function filterBoxes(raw, fn, config) { var _a; if (raw instanceof DataView || raw instanceof Uint8Array || raw instanceof ArrayBuffer) { raw = (0, createIsoView_js_1.createIsoView)(raw, { ...config, recursive: false }); } const recursive = (_a = config === null || config === void 0 ? void 0 : config.recursive) !== null && _a !== void 0 ? _a : true; return filter(raw, fn, recursive, []); } //# sourceMappingURL=filterBoxes.js.map