UNPKG

@micro.ts/core

Version:

Microservice framework with Typescript

60 lines (59 loc) 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AfterMiddlewares = exports.BeforeMiddlewares = exports.JsonController = exports.Controller = void 0; const BaseDecorators_1 = require("./BaseDecorators"); function Controller(options) { return (target) => { options = options || {}; (0, BaseDecorators_1.registerControllerMetadata)(target, options); }; } exports.Controller = Controller; /** * Controller where all the data are treated as valid JSON * @param path Controller path * @param options Controller Options */ function JsonController(path, options) { return (target) => { options = options || {}; options.json = true; options.path = path; (0, BaseDecorators_1.registerControllerMetadata)(target, options); }; } exports.JsonController = JsonController; /** * Use this decorator to attach middlewares that are executed before the method middlewares and handler is executed * @param options List of middlewares to execute before any method of this controller */ function BeforeMiddlewares(options) { return (target, propertyKey, descriptor) => { if (!propertyKey) { (0, BaseDecorators_1.attachControllerMiddleware)(target, options, true); } else { (0, BaseDecorators_1.attachHandlerMiddleware)(target, propertyKey, descriptor, options.map(x => { return { before: true, middleware: x }; })); } }; } exports.BeforeMiddlewares = BeforeMiddlewares; /** * Use this decorator to attach middlewares to the controller that are executed after successfully handled method , and method middlewares * @param options List of middlewares to execute */ function AfterMiddlewares(options) { return (target, propertyKey, descriptor) => { if (!propertyKey) { (0, BaseDecorators_1.attachControllerMiddleware)(target, options, false); } else { (0, BaseDecorators_1.attachHandlerMiddleware)(target, propertyKey, descriptor, options.map(x => { return { before: false, middleware: x }; })); } }; } exports.AfterMiddlewares = AfterMiddlewares;