@micro.ts/core
Version:
Microservice framework with Typescript
60 lines (59 loc) • 2.22 kB
JavaScript
;
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;