UNPKG

miter

Version:

A typescript web framework based on ExpressJs based loosely on SailsJs

33 lines 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const controller_1 = require("../../../metadata/router/controller"); const route_1 = require("../../../metadata/router/route"); require("reflect-metadata"); const _ = require("lodash"); function createRouteDecorator(pathOrMeta, method) { if (typeof pathOrMeta === 'string') pathOrMeta = { path: pathOrMeta }; if (typeof method !== 'undefined') { if (pathOrMeta.method && pathOrMeta.method != method) throw new Error(`Redeclaration of route method: ${pathOrMeta}`); pathOrMeta.method = method; } else pathOrMeta.method = pathOrMeta.method || 'get'; let meta = pathOrMeta; return function (controller, routeName, routeFn) { let controllerRoutes = Reflect.getOwnMetadata(controller_1.ControllerRoutesSym, controller) || []; if (!controllerRoutes.find(route => route == routeName)) controllerRoutes.push(routeName); Reflect.defineMetadata(controller_1.ControllerRoutesSym, controllerRoutes, controller); let methodRoutes = Reflect.getOwnMetadata(route_1.RouteMetadataSym, controller, routeName) || []; methodRoutes.unshift(_.merge({}, meta)); Reflect.defineMetadata(route_1.RouteMetadataSym, methodRoutes, controller, routeName); }; } exports.createRouteDecorator = createRouteDecorator; function Route(meta) { return createRouteDecorator(meta); } exports.Route = Route; //# sourceMappingURL=route.decorator.js.map