UNPKG

@dazejs/framework

Version:

Daze.js - A powerful web framework for Node.js

36 lines 1.61 kB
"use strict"; 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