@o-galaxy/ether
Version:
Rest Api Framework
37 lines • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const controller_def_container_1 = require("../../inner/controller-def-container");
function ApiMethodFactory(route, method, validators = []) {
return (targetPrototype, propertyName, propertyDescriptor) => {
// apply only on methods defined in a Controller
let routerDef = targetPrototype['$router_def'];
if (routerDef == undefined) {
targetPrototype['$router_def'] = new controller_def_container_1.ControllerDefContainer();
routerDef = targetPrototype['$router_def'];
}
const validatorsAsArray = Array.isArray(validators) ? validators : [validators];
routerDef.addMethod(route, validatorsAsArray, method, propertyName);
return propertyDescriptor;
};
}
function Post(route = '/', middlewares = []) {
return ApiMethodFactory(route, 'POST', middlewares);
}
exports.Post = Post;
function Get(route = '/', middlewares = []) {
return ApiMethodFactory(route, 'GET', middlewares);
}
exports.Get = Get;
function Delete(route = '/', middlewares = []) {
return ApiMethodFactory(route, 'DELETE', middlewares);
}
exports.Delete = Delete;
function Put(route = '/', middlewares = []) {
return ApiMethodFactory(route, 'PUT', middlewares);
}
exports.Put = Put;
function All(route = '/', middlewares = []) {
return ApiMethodFactory(route, 'ALL', middlewares);
}
exports.All = All;
//# sourceMappingURL=index.js.map