Skip to content

createDisposer

createDisposer(fns: DisposeFunc[]): () => void

Defined in: ext/setup.ts:25

Returns a disposer function that runs an array of cleanup functions in reverse order. Useful for teardown logic where order matters.

Use cases:

  • Aggregating multiple cleanup/disposer functions
  • Ensuring teardown order for resources (event listeners, subscriptions, etc.)
ParameterTypeDescription
fnsDisposeFunc[]Array of disposer functions

A function that disposes all provided functions in reverse order

(): void

void

This function is useful for creating a cleanup routine that ensures all resources are released in the correct order. It is commonly used in setup/teardown patterns where multiple resources need to be cleaned up after use, such as event listeners, subscriptions, or other side effects.

export const createDisposer = (fns: DisposeFunc[]) => () => {
for (let i = fns.length - 1; i >= 0; i--) {
fns[i]();
}
};
const disposer1 = () => console.log('Cleanup 1');
const disposer2 = () => console.log('Cleanup 2');
const disposeAll = createDisposer([disposer1, disposer2]);
disposeAll(); // Logs 'Cleanup 2' then 'Cleanup 1'