mp-holistic
Version:
si prefigge l'umile compito di aiutare nella creazione di : - un server API REST mediante express - un semplice ORM per Postgres Questo tramite decoratori o classi particolari.
67 lines • 3.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DecoratoreMetodo = exports.decoratoreMetodo = void 0;
const classe_express_1 = require("../express/classe.express");
const metodo_express_1 = require("../express/metodo.express");
const metadata_1 = require("../metadata");
const classe_metadata_1 = require("../metadata/classe.metadata");
const metodo_metadata_1 = require("../metadata/metodo.metadata");
const parametro_decoratore_1 = require("./parametro.decoratore");
function decoratoreMetodo(item) {
// eslint-disable-next-line @typescript-eslint/ban-types
return function (target, propertyKey, descriptor) {
var _a;
DecoratoreMetodo(target, propertyKey, (_a = descriptor.value) !== null && _a !== void 0 ? _a : descriptor, item);
};
}
exports.decoratoreMetodo = decoratoreMetodo;
function DecoratoreMetodo(target, propertyKey, descriptor, item) {
try {
const nomeMetodo = propertyKey.toString();
const nomeClasse = target.constructor.name;
/* */
if (item && (item === null || item === void 0 ? void 0 : item.itemListaParametri)) {
for (let index = 0; index < item.itemListaParametri.length; index++) {
try {
const element = item.itemListaParametri[index];
(0, parametro_decoratore_1.DecoratoreParametro)(nomeClasse, nomeMetodo, index, element.decoratore);
}
catch (error) {
console.log(error);
}
}
}
/* */
const list = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Metadata', () => { return new classe_metadata_1.ListaMetadataClasse(); });
/* */
if (item == undefined) {
item = { itemMetaMetodo: {}, itemExpressMetodo: {} };
}
if (item.itemMetaMetodo == undefined) {
item.itemMetaMetodo = {};
}
item.itemMetaMetodo.metodoAvviabile = descriptor;
item.itemMetaMetodo.nomeOriginale = nomeMetodo.toString();
const tempMM = new metodo_metadata_1.MetadataMetodo(item.itemMetaMetodo);
/* inizializzo metodo */
const classeMM = list.CercaSeNoAggiungi(new classe_metadata_1.MetadataClasse({ nomeOriginale: nomeClasse }));
classeMM.listaMetodi.CercaSeNoAggiungi(tempMM);
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Metadata', list);
if (item.itemExpressMetodo == undefined) {
item.itemExpressMetodo = {};
}
const listExpress = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Express', () => { return new classe_express_1.ListaExpressClasse(); });
item.itemExpressMetodo.metodoAvviabile = descriptor;
item.itemExpressMetodo.nomeOriginale = nomeMetodo.toString();
const tempEM = new metodo_express_1.ExpressMetodo(item.itemExpressMetodo);
const classeEM = listExpress.CercaSeNoAggiungi(new classe_express_1.ExpressClasse({ nomeOriginale: nomeClasse }));
classeEM.listaMetodi.CercaSeNoAggiungi(tempEM);
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Express', listExpress);
}
catch (error) {
console.log(error);
throw error;
}
}
exports.DecoratoreMetodo = DecoratoreMetodo;
//# sourceMappingURL=metodo.decoratore.js.map