@methodus/server
Version:
Server components for @methodus workflow
28 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
function MethodConfigExtend(extendTarget, name) {
return (target) => {
const trueName = name || target.name;
const filterKeys = ['length', 'prototype', 'name', 'methodus', 'methodus_base'];
target.methodus[trueName] = JSON.parse(JSON.stringify(extendTarget.methodus_base));
const inheritSettings = {};
target.prototype.options.classes.push({
classType: extendTarget,
controller: extendTarget,
methodType: "Local",
serverType: "express",
});
Object.getOwnPropertyNames(extendTarget.prototype.constructor).forEach((key) => {
if (filterKeys.indexOf(key) === -1) {
const func = async (...args) => {
args.push({ target: target.methodus[trueName], instruct: true });
return await extendTarget.prototype.constructor[key].apply(target, args);
};
inheritSettings[key] = func.bind(target);
}
});
};
}
exports.MethodConfigExtend = MethodConfigExtend;
//# sourceMappingURL=method-config-extend.js.map