UNPKG

@jsenv/util

Version:

Set of functions often needed when using Node.js.

22 lines (18 loc) 626 B
export const trackRessources = () => { const callbackArray = [] const registerCleanupCallback = (callback) => { if (typeof callback !== "function") throw new TypeError(`callback must be a function callback: ${callback}`) callbackArray.push(callback) return () => { const index = callbackArray.indexOf(callback) if (index > -1) callbackArray.splice(index, 1) } } const cleanup = async (reason) => { const localCallbackArray = callbackArray.slice() await Promise.all(localCallbackArray.map((callback) => callback(reason))) } return { registerCleanupCallback, cleanup } }