@nova-ts/core
Version:
A serverside framework used to build scalable application
40 lines (38 loc) • 1.34 kB
JavaScript
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