UNPKG

ymlgen

Version:

A generator for YML/YAML files

48 lines 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCallbackGroup = void 0; const createCallbackGroup = () => { const callbacks = []; let called = 0; return { size: () => callbacks.length, called: () => called, add(callback) { callbacks.push(callback); let active = true; return () => { if (!active) { return; } active = false; const index = callbacks.indexOf(callback); if (index !== -1) { callbacks.splice(index, 1); } }; }, clear() { callbacks.length = 0; }, call(...args) { if (!callbacks.length) { return; } // optimize performance if (args.length > 2) { callbacks.slice().forEach((callback) => callback(...args)); } else if (args.length === 2) { callbacks.slice().forEach((callback) => callback(args[0], args[1])); } else if (args.length === 1) { callbacks.slice().forEach((callback) => callback(args[0])); } else { callbacks.slice().forEach((callback) => callback()); } }, }; }; exports.createCallbackGroup = createCallbackGroup; //# sourceMappingURL=createCallbackGroup.js.map