UNPKG

@nova-ts/context

Version:

A TypeScript library for Dependency Injection

29 lines (27 loc) 914 B
import { createExecutionContext } from "./chunk-TPTXKHA7.js"; import { CLASS_HOOKS_KEY, METHOD_HOOKS_KEY } from "./chunk-KUU7OMXG.js"; // src/Abstract/NovaContextCreator.ts var NovaContextCreator = class { static createInvocationHandler(instance, methodName, originalHandler) { const classHooks = Reflect.getMetadata(CLASS_HOOKS_KEY, instance.constructor) || []; const methodHooks = Reflect.getMetadata(METHOD_HOOKS_KEY, instance, methodName) || []; const allHooks = [...classHooks, ...methodHooks]; return async (...args) => { const ctx = createExecutionContext(instance, methodName, originalHandler, args); const composed = allHooks.reduceRight( (next, hook) => () => hook(ctx, next), () => originalHandler.apply(instance, args) ); return await composed(); }; } }; export { NovaContextCreator }; //# sourceMappingURL=chunk-HIAVSFYB.js.map