@ark7/router
Version:
Ark7 Router layer framework.
62 lines (60 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Delete = exports.Put = exports.Post = exports.Get = exports.Handler = void 0;
const _ = require("underscore");
const declarations_1 = require("./declarations");
const decorators_1 = require("./decorators");
function Handler(options = {}) {
const m = (0, decorators_1.Middleware)([]);
return (target, propertyKey, descriptor) => {
const desc = m(target, propertyKey, descriptor);
const cls = target.constructor;
const meta = declarations_1.A7ControllerMetadata.getMetadata(cls);
const subsidiary = meta.getOrCreateSubsidiary(propertyKey, '/');
subsidiary.type = declarations_1.A7ControllerSubsidiaryType.HANDLER;
if (options.middleware) {
subsidiary.pushMiddlewaresInFront(_.flatten([options.middleware]));
}
if (options.method) {
subsidiary.method = options.method;
}
if (options.path) {
subsidiary.path = options.path;
}
if (options.name) {
subsidiary.name = options.name;
}
Reflect.defineMetadata(declarations_1.METADATA_KEY, meta, cls);
return desc;
};
}
exports.Handler = Handler;
function Get(path, options = {}) {
return Handler(_.extend({}, options, {
path,
method: declarations_1.Method.GET,
}));
}
exports.Get = Get;
function Post(path, options = {}) {
return Handler(_.extend({}, options, {
path,
method: declarations_1.Method.POST,
}));
}
exports.Post = Post;
function Put(path, options = {}) {
return Handler(_.extend({}, options, {
path,
method: declarations_1.Method.PUT,
}));
}
exports.Put = Put;
function Delete(path, options = {}) {
return Handler(_.extend({}, options, {
path,
method: declarations_1.Method.DELETE,
}));
}
exports.Delete = Delete;
//# sourceMappingURL=handlers.js.map