UNPKG

raid-addons

Version:

Add-ons functions for use with Raid

36 lines (30 loc) 755 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.lock = void 0; /** * @param {Raid::Signal} signal - the Raid::Signal to attach to * @returns {Func} void - a function to dispose the current update function */ var lock = function lock(signal) { var dispose = null; var cached = []; return function (fn) { if (dispose) { dispose(); } cached.push(fn); dispose = signal.register(fn); return function () { // Dispose from signal, dump from cached update array dispose(); cached.pop(); // If there was a previous one, reinstate it var last = cached.pop(); if (last) { dispose = signal.register(last); } }; }; }; exports.lock = lock;