UNPKG

@tko/utils.jsx

Version:

TKO JSX Rendering

26 lines (25 loc) 646 B
// @tko/utils.jsx 🥊 4.0.0-beta1.3 ESM import { cleanNode } from "@tko/utils"; const DELAY_MS = 25; const MAX_CLEAN_AT_ONCE = 1e3; const cleanNodeQueue = []; let cleanNodeTimeoutID = null; export function queueCleanNode(node) { cleanNodeQueue.push(node); triggerCleanTimeout(); } function triggerCleanTimeout() { if (!cleanNodeTimeoutID && cleanNodeQueue.length) { cleanNodeTimeoutID = setTimeout(flushCleanQueue, DELAY_MS); } } function flushCleanQueue() { cleanNodeTimeoutID = null; const nodes = cleanNodeQueue.splice(0, MAX_CLEAN_AT_ONCE); for (const node of nodes) { cleanNode(node); } triggerCleanTimeout(); }