UNPKG

@fibercom/routeros-api

Version:

Robust MikroTik RouterOS API client for Node.js and TypeScript

31 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.debounce = void 0; /** * Creates a debounced function wrapper that delays the execution * of the callback until after a specified timeout has elapsed * since the last invocation. * * This is useful in RouterOS streaming cases where frequent updates * could be throttled to avoid unnecessary processing. * * @param callback - The function to debounce * @param timeout - Delay in milliseconds (default: 0) * @returns An object with `.run()` to invoke the debounced function and `.cancel()` to clear the timer */ const debounce = (callback, timeout = 0) => { let timeoutObj = null; return { run: (...args) => { clearTimeout(timeoutObj); timeoutObj = setTimeout(() => { callback(...args); }, timeout); }, cancel: () => { clearTimeout(timeoutObj); }, }; }; exports.debounce = debounce; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxNQUFNLFFBQVEsR0FBRyxDQUN0QixRQUFrQyxFQUNsQyxPQUFPLEdBQUcsQ0FBQyxFQUM0QyxFQUFFO0lBQ3pELElBQUksVUFBVSxHQUF5QyxJQUFJLENBQUM7SUFFNUQsT0FBTztRQUNMLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUU7WUFDdEIsWUFBWSxDQUFDLFVBQVcsQ0FBQyxDQUFDO1lBQzFCLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUMzQixRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNwQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNYLFlBQVksQ0FBQyxVQUFXLENBQUMsQ0FBQztRQUM1QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWxCVyxRQUFBLFFBQVEsWUFrQm5CIn0=