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.
92 lines • 4.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DecoratoreClasse = exports.decoratoreClasse = exports.decoratoreClasseSmall = void 0;
const classe_express_1 = require("../express/classe.express");
const metadata_1 = require("../metadata");
const classe_metadata_1 = require("../metadata/classe.metadata");
const metodo_metadata_1 = require("../metadata/metodo.metadata");
const classe_postgres_1 = require("../postgres/classe.postgres");
const metodo_decoratore_1 = require("./metodo.decoratore");
function decoratoreClasseSmall(item) {
// eslint-disable-next-line @typescript-eslint/ban-types
return (ctr) => {
//const tmp: TypeDecoratoreClasse;
DecoratoreClasse(ctr /* , item */);
};
}
exports.decoratoreClasseSmall = decoratoreClasseSmall;
function decoratoreClasse(item) {
// eslint-disable-next-line @typescript-eslint/ban-types
return (ctr) => {
if (item == undefined)
item = { itemMetaClasse: {}, itemPostgresClasse: {}, itemExpressClasse: {} };
if (item.itemExpressClasse == undefined)
item.itemExpressClasse = {};
if (item.itemMetaClasse == undefined)
item.itemMetaClasse = {};
if (item.itemPostgresClasse == undefined)
item.itemPostgresClasse = {};
DecoratoreClasse(ctr, item);
};
}
exports.decoratoreClasse = decoratoreClasse;
function DecoratoreClasse(ctr, item) {
try {
if (item) {
if (item.itemListaMetodi) {
for (let index = 0; index < item.itemListaMetodi.length; index++) {
try {
const element = item.itemListaMetodi[index];
const funzione = ctr.prototype[element.nomeMetodo];
const target = {
constructor: {
name: (item.itemMetaClasse && item.itemMetaClasse.nomeOriginale != undefined) ? item.itemMetaClasse.nomeOriginale : ctr.name
}
};
(0, metodo_decoratore_1.DecoratoreMetodo)(target, element.nomeMetodo, funzione, element.decoratore);
}
catch (error) {
console.log(error);
}
}
}
if (item.itemMetaClasse) {
const list = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Metadata', () => { return new classe_metadata_1.ListaMetadataClasse(); });
item.itemMetaClasse.nomeOriginale = item.itemMetaClasse.nomeOriginale != undefined ? item.itemMetaClasse.nomeOriginale : ctr.name;
const t = new classe_metadata_1.MetadataClasse(item.itemMetaClasse);
list.CercaSeNoAggiungi(t);
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Metadata', list);
}
if (item.itemExpressClasse) {
if (item.itemExpressClasse) {
if (item.itemExpressClasse.listaMetodi == undefined) {
item.itemExpressClasse.listaMetodi = new metodo_metadata_1.ListaMetadataMetodo(item.itemExpressClasse.listaMetodi);
}
const listExpress = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Express', () => { return new classe_express_1.ListaExpressClasse(); });
item.itemExpressClasse.nomeOriginale = ctr.name;
const t = new classe_express_1.ExpressClasse(item.itemExpressClasse);
listExpress.CercaSeNoAggiungi(t);
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Express', listExpress);
}
}
if (item.itemPostgresClasse) {
if (item.itemPostgresClasse) {
if (item.itemPostgresClasse.listaMetodi == undefined) {
item.itemPostgresClasse.listaMetodi = new metodo_metadata_1.ListaMetadataMetodo(item.itemPostgresClasse.listaMetodi);
}
const listaPostgres = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Postgres', () => { return new classe_postgres_1.ListaPostgresClasse(); });
item.itemPostgresClasse.nomeOriginale = ctr.name;
const t = new classe_postgres_1.PostgresClasse(item.itemPostgresClasse);
listaPostgres.CercaSeNoAggiungi(t);
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Postgres', listaPostgres);
}
}
}
}
catch (error) {
console.log(error);
throw error;
}
}
exports.DecoratoreClasse = DecoratoreClasse;
//# sourceMappingURL=classe.decoratore.js.map