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) • 533 B
JavaScript
import { hook } from './hook.js';
import { HooksRunner } from './HooksRunner.js';
export const onContainerDisposedHooksRunner = new HooksRunner('onContainerDisposed');
export const onContainerDisposed = (...fns) => hook('onContainerDisposed', ...fns);
export class AddOnDisposeHookModule {
applyTo(container) {
container.addOnDisposeHook((scope) => {
for (const instance of scope.getInstances()) {
onContainerDisposedHooksRunner.execute(instance, { scope });
}
});
}
}