@nova-ts/context
Version:
A TypeScript library for Dependency Injection
29 lines (27 loc) • 914 B
JavaScript
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