UNPKG

@decorators/express

Version:

node decorators - decorators for express library

92 lines 7.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Status = exports.Head = exports.Options = exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = exports.All = void 0; const meta_1 = require("../meta"); /** * Route decorator factory, creates decorator */ function decoratorFactory(method, url, middleware = []) { return (target, key, descriptor) => { const methodMetadata = getRouteMeta(target, key); methodMetadata.routes.push({ method, url, middleware }); return descriptor; }; } /** * All routes * * Special-cased "all" method, applying the given route `path`, * middleware, and callback to _every_ HTTP method. */ function All(url, middleware) { return decoratorFactory('all', url, middleware); } exports.All = All; /** * Get route */ function Get(url, middleware) { return decoratorFactory('get', url, middleware); } exports.Get = Get; /** * Post route */ function Post(url, middleware) { return decoratorFactory('post', url, middleware); } exports.Post = Post; /** * Put route */ function Put(url, middleware) { return decoratorFactory('put', url, middleware); } exports.Put = Put; /** * Delete route */ function Delete(url, middleware) { return decoratorFactory('delete', url, middleware); } exports.Delete = Delete; /** * Patch route */ function Patch(url, middleware) { return decoratorFactory('patch', url, middleware); } exports.Patch = Patch; /** * Options route */ function Options(url, middleware) { return decoratorFactory('options', url, middleware); } exports.Options = Options; /** * Head route * */ function Head(url, middleware) { return decoratorFactory('head', url, middleware); } exports.Head = Head; /** * Method status */ function Status(status) { return (target, key, descriptor) => { const methodMetadata = getRouteMeta(target, key); methodMetadata.status = status; return descriptor; }; } exports.Status = Status; function getRouteMeta(target, key) { const meta = (0, meta_1.getMeta)(target); return meta.routes[key] = meta.routes[key] || { routes: [], }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBMkQ7QUFHM0Q7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsYUFBMkIsRUFBRTtJQUNsRixPQUFPLENBQUMsTUFBYyxFQUFFLEdBQVcsRUFBRSxVQUFlLEVBQUUsRUFBRTtRQUN0RCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWpELGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXhELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsVUFBeUI7SUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFGRCxrQkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxVQUF5QjtJQUN4RCxPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUZELGtCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixJQUFJLENBQUMsR0FBVyxFQUFFLFVBQXlCO0lBQ3pELE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRkQsb0JBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsVUFBeUI7SUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFGRCxrQkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLEdBQVcsRUFBRSxVQUF5QjtJQUMzRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUZELHdCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixLQUFLLENBQUMsR0FBVyxFQUFFLFVBQXlCO0lBQzFELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRkQsc0JBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxHQUFXLEVBQUUsVUFBeUI7SUFDNUQsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFGRCwwQkFFQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLElBQUksQ0FBQyxHQUFXLEVBQUUsVUFBeUI7SUFDekQsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFGRCxvQkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLE1BQWM7SUFDbkMsT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsVUFBZSxFQUFFLEVBQUU7UUFDdEQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVqRCxjQUFjLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUUvQixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDSixDQUFDO0FBUkQsd0JBUUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxNQUFjLEVBQUUsR0FBVztJQUMvQyxNQUFNLElBQUksR0FBZ0IsSUFBQSxjQUFPLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUk7UUFDNUMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cHJlc3NNZXRhLCBnZXRNZXRhLCBNZXRob2RNZXRhIH0gZnJvbSAnLi4vbWV0YSc7XG5pbXBvcnQgeyBNaWRkbGV3YXJlIH0gZnJvbSAnLi4vbWlkZGxld2FyZSc7XG5cbi8qKlxuICogUm91dGUgZGVjb3JhdG9yIGZhY3RvcnksIGNyZWF0ZXMgZGVjb3JhdG9yXG4gKi9cbmZ1bmN0aW9uIGRlY29yYXRvckZhY3RvcnkobWV0aG9kOiBzdHJpbmcsIHVybDogc3RyaW5nLCBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlW10gPSBbXSkge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZywgZGVzY3JpcHRvcjogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0aG9kTWV0YWRhdGEgPSBnZXRSb3V0ZU1ldGEodGFyZ2V0LCBrZXkpO1xuXG4gICAgbWV0aG9kTWV0YWRhdGEucm91dGVzLnB1c2goeyBtZXRob2QsIHVybCwgbWlkZGxld2FyZSB9KTtcblxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9O1xufVxuXG4vKipcbiAqIEFsbCByb3V0ZXNcbiAqXG4gKiBTcGVjaWFsLWNhc2VkIFwiYWxsXCIgbWV0aG9kLCBhcHBseWluZyB0aGUgZ2l2ZW4gcm91dGUgYHBhdGhgLFxuICogbWlkZGxld2FyZSwgYW5kIGNhbGxiYWNrIHRvIF9ldmVyeV8gSFRUUCBtZXRob2QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBBbGwodXJsOiBzdHJpbmcsIG1pZGRsZXdhcmU/OiBNaWRkbGV3YXJlW10pIHtcbiAgcmV0dXJuIGRlY29yYXRvckZhY3RvcnkoJ2FsbCcsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogR2V0IHJvdXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBHZXQodXJsOiBzdHJpbmcsIG1pZGRsZXdhcmU/OiBNaWRkbGV3YXJlW10pIHtcbiAgcmV0dXJuIGRlY29yYXRvckZhY3RvcnkoJ2dldCcsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogUG9zdCByb3V0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gUG9zdCh1cmw6IHN0cmluZywgbWlkZGxld2FyZT86IE1pZGRsZXdhcmVbXSkge1xuICByZXR1cm4gZGVjb3JhdG9yRmFjdG9yeSgncG9zdCcsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogUHV0IHJvdXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQdXQodXJsOiBzdHJpbmcsIG1pZGRsZXdhcmU/OiBNaWRkbGV3YXJlW10pIHtcbiAgcmV0dXJuIGRlY29yYXRvckZhY3RvcnkoJ3B1dCcsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogRGVsZXRlIHJvdXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWxldGUodXJsOiBzdHJpbmcsIG1pZGRsZXdhcmU/OiBNaWRkbGV3YXJlW10pIHtcbiAgcmV0dXJuIGRlY29yYXRvckZhY3RvcnkoJ2RlbGV0ZScsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogUGF0Y2ggcm91dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFBhdGNoKHVybDogc3RyaW5nLCBtaWRkbGV3YXJlPzogTWlkZGxld2FyZVtdKSB7XG4gIHJldHVybiBkZWNvcmF0b3JGYWN0b3J5KCdwYXRjaCcsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogT3B0aW9ucyByb3V0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9ucyh1cmw6IHN0cmluZywgbWlkZGxld2FyZT86IE1pZGRsZXdhcmVbXSkge1xuICByZXR1cm4gZGVjb3JhdG9yRmFjdG9yeSgnb3B0aW9ucycsIHVybCwgbWlkZGxld2FyZSk7XG59XG5cbi8qKlxuICogSGVhZCByb3V0ZVxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhlYWQodXJsOiBzdHJpbmcsIG1pZGRsZXdhcmU/OiBNaWRkbGV3YXJlW10pIHtcbiAgcmV0dXJuIGRlY29yYXRvckZhY3RvcnkoJ2hlYWQnLCB1cmwsIG1pZGRsZXdhcmUpO1xufVxuXG4vKipcbiAqIE1ldGhvZCBzdGF0dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFN0YXR1cyhzdGF0dXM6IG51bWJlcikge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZywgZGVzY3JpcHRvcjogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0aG9kTWV0YWRhdGEgPSBnZXRSb3V0ZU1ldGEodGFyZ2V0LCBrZXkpO1xuXG4gICAgbWV0aG9kTWV0YWRhdGEuc3RhdHVzID0gc3RhdHVzO1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJvdXRlTWV0YSh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpOiBNZXRob2RNZXRhIHtcbiAgY29uc3QgbWV0YTogRXhwcmVzc01ldGEgPSBnZXRNZXRhKHRhcmdldCk7XG5cbiAgcmV0dXJuIG1ldGEucm91dGVzW2tleV0gPSBtZXRhLnJvdXRlc1trZXldIHx8IHtcbiAgICByb3V0ZXM6IFtdLFxuICB9O1xufVxuIl19