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.
194 lines • 7.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SalvaListaMetaClasse = exports.GetListaClasseMeta = exports.ListaMeta = exports.Meta = void 0;
const utility_1 = require("./utility");
class Meta {
constructor(item) {
this.nomeOriginale = '';
this.nomeVariante = '';
if (item.nomeVariante)
this.nomeVariante = item.nomeVariante;
else if (item.nomeOriginale)
this.nomeVariante = item.nomeOriginale;
if (item.nomeOriginale)
this.nomeOriginale = item.nomeOriginale;
}
/* GetThis<T>() {
return <T>(<any>this);
}
static GetThis<T>(item: Meta) {
return <T>(<any>item);
} */
/* GetThis?: (item: IMeta) => Meta; */
Compara(item) {
if (this.nomeOriginale != undefined && item.nomeOriginale != undefined) {
if (this.nomeOriginale == item.nomeOriginale)
return 0;
else if (this.nomeOriginale > item.nomeOriginale)
return 1;
else if (this.nomeOriginale < item.nomeOriginale)
return -1;
}
if (this.nomeVariante != undefined && item.nomeVariante != undefined) {
if (this.nomeVariante == item.nomeVariante)
return 0;
else if (this.nomeVariante > item.nomeVariante)
return 1;
else if (this.nomeVariante < item.nomeVariante)
return -1;
}
if (this.nomeOriginale != undefined && item.nomeVariante != undefined) {
if (this.nomeOriginale == item.nomeVariante)
return 0;
else if (this.nomeOriginale > item.nomeVariante)
return 1;
else if (this.nomeOriginale < item.nomeVariante)
return -1;
}
if (this.nomeVariante != undefined && item.nomeOriginale != undefined) {
if (this.nomeVariante == item.nomeOriginale)
return 0;
else if (this.nomeVariante > item.nomeOriginale)
return 1;
else if (this.nomeVariante < item.nomeOriginale)
return -1;
}
return 0;
}
/* Mergia?: (item: IMeta) => void; */
Mergia(item, funzioneMerge) {
var _a, _b;
if (funzioneMerge != undefined) {
const tmp = funzioneMerge(item);
this.nomeOriginale = tmp.nomeOriginale;
this.nomeVariante = tmp.nomeVariante;
}
else {
if (item.nomeOriginale != '' && item.nomeOriginale != undefined &&
(this.nomeOriginale == '' || this.nomeVariante == undefined)) {
this.nomeOriginale = (_a = item.nomeOriginale) !== null && _a !== void 0 ? _a : this.nomeOriginale;
}
else if (this.nomeOriginale != '' && item.nomeOriginale != '' && this.nomeOriginale && item.nomeOriginale) {
this.nomeOriginale = item.nomeOriginale;
}
if (item.nomeVariante != '' && item.nomeVariante != undefined &&
(this.nomeVariante == '' || this.nomeVariante == undefined)) {
this.nomeVariante = (_b = item.nomeVariante) !== null && _b !== void 0 ? _b : this.nomeVariante;
}
else if (this.nomeVariante != '' && item.nomeVariante != '' && this.nomeVariante && item.nomeVariante) {
this.nomeVariante = item.nomeVariante;
}
}
}
GetThis() {
return this;
}
}
exports.Meta = Meta;
class ListaMeta extends Array {
constructor() {
super();
}
Mergia(item) {
for (let index = 0; index < item.length; index++) {
const element = item[index];
const elementoCercato = this.Cerca(element);
if (elementoCercato == undefined) {
const tmp = element;
this.push(tmp);
}
else {
elementoCercato.Mergia(element);
}
}
}
CercaSeNoAggiungi(item) {
let parametro = undefined;
/* for (let index = 0; index < this.length && parametro == undefined; index++) {
const element = this[index];
if (element.Compara(item) == 0) parametro = element;
}
if (parametro == undefined) {
parametro = item;
} */
parametro = item;
const t = this.AggiungiElemento(parametro);
return t;
}
Cerca(item) {
for (let index = 0; index < this.length; index++) {
const element = this[index];
if (element.Compara(item) == 0)
return element;
}
return undefined;
}
AggiungiElemento(item) {
for (let index = 0; index < this.length; index++) {
const element = this[index];
if (element.Compara(item) == 0) {
element.Mergia(item);
return element;
}
}
this.push(item);
return item;
}
}
exports.ListaMeta = ListaMeta;
/* export function GetListaClasseMeta<T>(item?: number, ifEsiste?: () => T) {
let tmp: T | undefined = undefined;
if (item == undefined) {
tmp = Reflect.getMetadata(nomeMetadataKeyTargetFor_Metadata, targetTerminale);
if (tmp == undefined) {
if (ifEsiste)
tmp = ifEsiste();
}
}
else {
tmp = Reflect.getMetadata(nomeMetadataKeyTargetFor_Express, targetTerminale);
if (tmp == undefined) {
if (ifEsiste)
tmp = ifEsiste();
}
}
if (tmp == undefined) throw new Error('Boooo');
return tmp;
}
export function SalvaListaMetaClasse<T>(tmp: T, num?: number) {
if (num == undefined) {
Reflect.defineMetadata(nomeMetadataKeyTargetFor_Metadata, tmp, targetTerminale);
}
else {
Reflect.defineMetadata(nomeMetadataKeyTargetFor_Express, tmp, targetTerminale);
}
} */
function GetListaClasseMeta(metaKey, ifNonEsiste) {
let tmp = undefined;
tmp = Reflect.getMetadata(metaKey, utility_1.targetTerminale);
if (tmp == undefined) {
if (ifNonEsiste) {
tmp = ifNonEsiste();
}
else {
console.log('cc');
}
}
if (tmp == undefined) {
throw new Error('Boooo');
}
return tmp;
}
exports.GetListaClasseMeta = GetListaClasseMeta;
function SalvaListaMetaClasse(metaKey, item) {
Reflect.defineMetadata(metaKey, item, utility_1.targetTerminale);
/* if (item instanceof ListaMetadataClasse) {
Reflect.defineMetadata(metaKey, item, targetTerminale);
}
else {
Reflect.defineMetadata(metaKey, item, targetTerminale);
} */
return undefined;
}
exports.SalvaListaMetaClasse = SalvaListaMetaClasse;
//# sourceMappingURL=metadata.js.map