UNPKG

inceptum

Version:

hipages take on the foundational library for enterprise-grade apps written in NodeJS

55 lines 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebDecorator = exports.getWebDecoratorMetadata = exports.hasWebDecoratorMetadata = exports.InceptumWebMetadata = exports.INCEPTUM_WEB_METADATA_KEY = void 0; require("reflect-metadata"); exports.INCEPTUM_WEB_METADATA_KEY = 'inceptum-web'; class InceptumWebMetadata { constructor() { this.routes = []; } } exports.InceptumWebMetadata = InceptumWebMetadata; function hasWebDecoratorMetadata(target) { return Reflect.hasMetadata(exports.INCEPTUM_WEB_METADATA_KEY, target); } exports.hasWebDecoratorMetadata = hasWebDecoratorMetadata; function getWebDecoratorMetadata(target) { return Reflect.getMetadata(exports.INCEPTUM_WEB_METADATA_KEY, target); } exports.getWebDecoratorMetadata = getWebDecoratorMetadata; function getOrCreateMetadata(target) { if (hasWebDecoratorMetadata(target)) { return getWebDecoratorMetadata(target); } const metadata = new InceptumWebMetadata(); Reflect.defineMetadata(exports.INCEPTUM_WEB_METADATA_KEY, metadata, target); return metadata; } var WebDecorator; (function (WebDecorator) { function Get(path) { return Route('get', path); } WebDecorator.Get = Get; function Post(path) { return Route('post', path); } WebDecorator.Post = Post; function Put(path) { return Route('put', path); } WebDecorator.Put = Put; function Delete(path) { return Route('delete', path); } WebDecorator.Delete = Delete; function Route(verb, path) { return (target, key) => { // console.log('Called Autowire'); const metadata = getOrCreateMetadata(target); metadata.routes.push({ verb, path, methodName: key }); }; } WebDecorator.Route = Route; })(WebDecorator = exports.WebDecorator || (exports.WebDecorator = {})); //# sourceMappingURL=WebDecorators.js.map