ts-ioc-container
Version:
Fast, lightweight TypeScript dependency injection container with a clean API, scoped lifecycles, decorators, tokens, hooks, lazy injection, customizable providers, and no global container objects.
14 lines (13 loc) • 477 B
JavaScript
import { hook } from './hook';
import { HooksRunner } from './HooksRunner';
export const onDisposeHooksRunner = new HooksRunner('onDispose');
export const onDispose = (...fns) => hook('onDispose', ...fns);
export class AddOnDisposeHookModule {
applyTo(container) {
container.addOnDisposeHook((scope) => {
for (const instance of scope.getInstances()) {
onDisposeHooksRunner.execute(instance, { scope });
}
});
}
}