UNPKG

@nova-ts/core

Version:

A serverside framework used to build scalable application

40 lines (38 loc) 1.34 kB
import { coerceArgs } from "./chunk-5PAZ24N6.js"; import { NovaConstant } from "./chunk-INEUQFI4.js"; // src/Resolver/NovaControllerResolver.ts var NovaControllerResolver = class { args; setArgs(args) { this.args = args; } /** * Resolves the method parameters by extracting metadata and values from the request. * * @param controllerClass - The controller class (or its prototype). * @param route - The name of the method to resolve parameters for. * @param request - The current Nova request object. * @param response - The current Nova response object. * @param next - The current Express next object. * @returns The resolved list of arguments to pass to the method. */ resolveArgument(instance, route, Request, Response, next) { const paramMetaData = Reflect.getMetadata(NovaConstant.ControllerParameter, instance, route.handlerName) || []; const paramtypes = Reflect.getMetadata("design:paramtypes", instance, route.handlerName) || []; const args = []; for (const param of paramMetaData) { args[param.index] = param.resolver(Request, Response, next, paramtypes[param.index]); } this.setArgs(args); const resolvedargs = coerceArgs(args, paramtypes); return resolvedargs; } }; export { NovaControllerResolver }; //# sourceMappingURL=chunk-3W35Z6ZM.js.map