UNPKG

@glandjs/http

Version:

A protocol adapter for HTTP built on top of the Gland architecture solution.

41 lines (40 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Search = exports.All = exports.Head = exports.Options = exports.Patch = exports.Put = exports.Delete = exports.Get = exports.Post = exports.RequestMapping = void 0; const common_1 = require("@glandjs/common"); const enum_1 = require("../enum"); const defaultMetadata = { [common_1.PATH_METADATA]: "/", [common_1.METHOD_METADATA]: enum_1.RequestMethod.GET }; const RequestMapping = (metadata = defaultMetadata) => { const pathMetadata = metadata[common_1.PATH_METADATA]; const path = pathMetadata && pathMetadata.length ? pathMetadata : "/"; const requestMethod = metadata[common_1.METHOD_METADATA] || enum_1.RequestMethod.GET; return (target, key, descriptor) => { if (descriptor === undefined) { Reflect.defineMetadata(common_1.PATH_METADATA, path, target); Reflect.defineMetadata(common_1.METHOD_METADATA, requestMethod, target); return; } Reflect.defineMetadata(common_1.PATH_METADATA, path, descriptor.value); Reflect.defineMetadata(common_1.METHOD_METADATA, requestMethod, descriptor.value); return descriptor; }; }; exports.RequestMapping = RequestMapping; const createMappingDecorator = (method) => (path) => { return (0, exports.RequestMapping)({ [common_1.PATH_METADATA]: path, [common_1.METHOD_METADATA]: method }); }; exports.Post = createMappingDecorator(enum_1.RequestMethod.POST); exports.Get = createMappingDecorator(enum_1.RequestMethod.GET); exports.Delete = createMappingDecorator(enum_1.RequestMethod.DELETE); exports.Put = createMappingDecorator(enum_1.RequestMethod.PUT); exports.Patch = createMappingDecorator(enum_1.RequestMethod.PATCH); exports.Options = createMappingDecorator(enum_1.RequestMethod.OPTIONS); exports.Head = createMappingDecorator(enum_1.RequestMethod.HEAD); exports.All = createMappingDecorator(enum_1.RequestMethod.ALL); exports.Search = createMappingDecorator(enum_1.RequestMethod.SEARCH);