UNPKG

sipp

Version:

An Opinionated, High-Productivity MVC Web Framework in TypeScript

43 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Put = exports.Post = exports.Patch = exports.Options = exports.Head = exports.Get = exports.Delete = exports.RequestMapping = void 0; const constants_1 = require("../constants"); const Provide_1 = require("./Provide"); const defaultMetadata = { [constants_1.PATH_METADATA]: '/', [constants_1.METHOD_METADATA]: "get", }; const RequestMapping = (metadata = defaultMetadata) => { const pathMetadata = metadata[constants_1.PATH_METADATA]; const path = pathMetadata && pathMetadata.length ? pathMetadata : '/'; const pathOptionMetadata = metadata[constants_1.PATH_OPTION_METADATA]; const requestMethod = metadata[constants_1.METHOD_METADATA] || "get"; return (target, key, descriptor) => { const ROUTES = Reflect.getMetadata(constants_1.ROUTES_METADATA, target) || {}; ROUTES[key] = 1; descriptor.value = Provide_1.withParamProviding(descriptor.value, target, key); Reflect.defineMetadata(constants_1.ROUTES_METADATA, ROUTES, target); Reflect.defineMetadata(constants_1.PATH_METADATA, path, target, key); Reflect.defineMetadata(constants_1.METHOD_METADATA, requestMethod, target, key); if (pathOptionMetadata) { Reflect.defineMetadata(constants_1.PATH_OPTION_METADATA, pathOptionMetadata, target, key); } return descriptor; }; }; exports.RequestMapping = RequestMapping; const createMappingDecorator = (method) => (path, options) => { return exports.RequestMapping({ [constants_1.PATH_METADATA]: path, [constants_1.PATH_OPTION_METADATA]: options, [constants_1.METHOD_METADATA]: method, }); }; exports.Delete = createMappingDecorator("delete"); exports.Get = createMappingDecorator("get"); exports.Head = createMappingDecorator("head"); exports.Options = createMappingDecorator("options"); exports.Patch = createMappingDecorator("patch"); exports.Post = createMappingDecorator("post"); exports.Put = createMappingDecorator("put"); //# sourceMappingURL=Route.js.map