"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.beforeNextFrameOnce = void 0; let onceCbs = []; const paramsMap = new WeakMap(); function flushOnceCallbacks() { onceCbs.forEach((cb) => cb(...paramsMap.get(cb))); onceCbs = []; } function beforeNextFrameOnce(cb, ...params) { paramsMap.set(cb, params); if (onceCbs.includes(cb)) return; onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks); } exports.beforeNextFrameOnce = beforeNextFrameOnce;