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.
49 lines • 2.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DecoratoreProprieta = exports.decoratoreProprieta = void 0;
const metadata_1 = require("../metadata");
const classe_metadata_1 = require("../metadata/classe.metadata");
const proprieta_metadata_1 = require("../metadata/proprieta.metadata");
const classe_postgres_1 = require("../postgres/classe.postgres");
const proprieta_postgres_1 = require("../postgres/proprieta.postgres");
function decoratoreProprieta(item) {
return (target, propertyKey) => {
const nomeClasse = target.constructor.name;
const nomeProprieta = propertyKey.toString();
DecoratoreProprieta(nomeClasse, nomeProprieta, item);
};
}
exports.decoratoreProprieta = decoratoreProprieta;
function DecoratoreProprieta(nomeClasse, nomeProprieta, item) {
try {
if (item) {
if (item.itemMetaProprieta) {
const list = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Metadata', () => { return new classe_metadata_1.ListaMetadataClasse(); });
const classe = list.CercaSeNoAggiungi(new classe_metadata_1.MetadataClasse({ nomeOriginale: nomeClasse }));
const proprieta = classe.listaProprieta.CercaSeNoAggiungi(new proprieta_metadata_1.MetadataProprieta(item.itemMetaProprieta));
proprieta.nome = nomeProprieta;
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Metadata', list);
}
if (item.itemPostgresProprieta) {
const list = (0, metadata_1.GetListaClasseMeta)('nomeMetadataKeyTargetFor_Postgres', () => { return new classe_postgres_1.ListaPostgresClasse(); });
const classe = list.CercaSeNoAggiungi(new classe_postgres_1.PostgresClasse({
nomeOriginale: nomeClasse,
creaId: true,
abilitaUpdatedAt: true,
abilitaDeletedAt: true,
abilitaCreatedAt: true,
nomeTabella: nomeClasse
}));
const proprieta = classe.listaProprieta.CercaSeNoAggiungi(new proprieta_postgres_1.PostgresProprieta(item.itemPostgresProprieta));
proprieta.nome = nomeProprieta;
(0, metadata_1.SalvaListaMetaClasse)('nomeMetadataKeyTargetFor_Postgres', list);
}
}
}
catch (error) {
console.log(error);
throw error;
}
}
exports.DecoratoreProprieta = DecoratoreProprieta;
//# sourceMappingURL=proprieta.decoratore.js.map