UNPKG

@methodus/server

Version:
43 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("reflect-metadata"); const class_container_1 = require("../class-container"); const serversList_1 = require("../servers/serversList"); function MethodConfigBase(name, middlewares, repository) { return (target) => { const existingMetadata = class_container_1.ClassContainer.get(name) || {}; existingMetadata.name = name; const original = target.prototype.constructor; original.prototype.options = original.prototype.options || { servers: [], classes: [], clients: [], plugins: [] }; let proto = target.prototype || target.__proto__; if (target.methodus) { proto = target; } proto.methodus_base = JSON.parse(JSON.stringify(target.methodus[name])); serversList_1.Servers.classes[target.name] = { classType: target, controller: target, methodType: "Local", serverType: "express", }; const methods = Object.getOwnPropertyNames(target.prototype); methods.forEach((methodName) => { return target.prototype[methodName]; }); if (target.prototype.constructor) { const staticMethods = Object.getOwnPropertyNames(target.prototype.constructor); staticMethods.forEach((methodName) => { return target.prototype.constructor[methodName]; }); } if (repository) { proto.methodus_base.repository = repository; } proto.methodus_base.middlewares = middlewares; target.methodus_base = proto.methodus_base; existingMetadata.middlewares = middlewares; class_container_1.ClassContainer.set(name, existingMetadata); }; } exports.MethodConfigBase = MethodConfigBase; //# sourceMappingURL=method-config-base.js.map