UNPKG

@svta/common-media-library

Version:
38 lines 1.14 kB
import { createIsoView } from './createIsoView.js'; function find(iterator, recursive, fn) { for (const box of iterator) { if (fn(box)) { return box; } const { boxes } = box; if (recursive && Array.isArray(boxes)) { const result = find(boxes, recursive, fn); if (result) { return result; } } } return null; } /** * Find a box from an IsoView that matches a filter function * * @param raw - The raw ISO data * @param config - The configuration for the IsoView * @param fn - The filter function * * @returns The first box that matches the filter function * * @group ISOBMFF * * @beta */ export function findBox(raw, fn, config) { var _a; const recursive = (_a = config === null || config === void 0 ? void 0 : config.recursive) !== null && _a !== void 0 ? _a : true; if (raw instanceof DataView || raw instanceof Uint8Array || raw instanceof ArrayBuffer) { raw = createIsoView(raw, { ...config, recursive: false }); } return find(raw, recursive, fn); } //# sourceMappingURL=findBox.js.map