@dazejs/framework
Version:
Daze.js - A powerful web framework for Node.js
36 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ControllerService = void 0;
class ControllerService {
constructor(app) {
this.app = app;
}
register(controller) {
if (Reflect.getMetadata('type', controller) !== 'controller')
return this;
this.resolve(controller);
return this;
}
resolve(controller) {
const routes = Reflect.getMetadata('routes', controller) || {};
const prefixs = Reflect.getMetadata('prefixs', controller) || [''];
for (const prefix of prefixs) {
this.registerRoutes(controller, routes, prefix);
}
}
registerRoutes(controller, routes, prefix = '') {
var _a, _b, _c;
const router = this.app.get('router');
const controllerMiddlewareOptions = (_a = Reflect.getMetadata('use-middlewares', controller)) !== null && _a !== void 0 ? _a : [];
for (const key of Object.keys(routes)) {
const routeMiddlewares = (_b = Reflect.getMetadata('use-middlewares', controller, key)) !== null && _b !== void 0 ? _b : {};
for (const route of routes[key]) {
const { uri, method, option } = route;
const actionMiddlewareOptions = (_c = routeMiddlewares[key]) !== null && _c !== void 0 ? _c : [];
router.register(`${prefix}${uri}`, [method], option, controller, key, [...controllerMiddlewareOptions, ...actionMiddlewareOptions]);
}
}
}
}
exports.ControllerService = ControllerService;
//# sourceMappingURL=controller-service.js.map