code cleanup

This commit is contained in:
Kononnable 2018-12-06 22:23:30 +01:00
parent 9b3be6a7a9
commit 69a2362890
14 changed files with 150 additions and 223 deletions

View File

@ -112,9 +112,7 @@ export class Engine {
});
}
private createHandlebarsHelpers() {
Handlebars.registerHelper("curly", open => {
return open ? "{" : "}";
});
Handlebars.registerHelper("curly", open => (open ? "{" : "}"));
Handlebars.registerHelper("toEntityName", str => {
let retStr = "";
switch (this.Options.convertCaseEntity) {
@ -173,38 +171,20 @@ export class Engine {
}
return retStr;
});
Handlebars.registerHelper("toLowerCase", str => {
return str.toLowerCase();
});
Handlebars.registerHelper("toLowerCase", str => str.toLowerCase());
Handlebars.registerHelper("toLazy", str => {
if (this.Options.lazy) return `Promise<${str}>`;
else return str;
});
Handlebars.registerHelper({
eq: function(v1, v2) {
return v1 === v2;
},
ne: function(v1, v2) {
return v1 !== v2;
},
lt: function(v1, v2) {
return v1 < v2;
},
gt: function(v1, v2) {
return v1 > v2;
},
lte: function(v1, v2) {
return v1 <= v2;
},
gte: function(v1, v2) {
return v1 >= v2;
},
and: function(v1, v2) {
return v1 && v2;
},
or: function(v1, v2) {
return v1 || v2;
}
eq: (v1, v2) => v1 === v2,
ne: (v1, v2) => v1 !== v2,
lt: (v1, v2) => v1 < v2,
gt: (v1, v2) => v1 > v2,
lte: (v1, v2) => v1 <= v2,
gte: (v1, v2) => v1 >= v2,
and: (v1, v2) => v1 && v2,
or: (v1, v2) => v1 || v2
});
}

View File

@ -9,12 +9,9 @@ export class NamingStrategy extends AbstractNamingStrategy {
dbModel: DatabaseModel
): string {
let isRelationToMany = relation.isOneToMany || relation.isManyToMany;
let ownerEntity = dbModel.entities.filter(v => {
return v.EntityName == relation.ownerTable;
})[0];
let referencedEntity = dbModel.entities.filter(v => {
return v.EntityName == relation.relatedTable;
})[0];
let ownerEntity = dbModel.entities.find(
v => v.EntityName == relation.ownerTable
)!;
let columnName =
columnOldName[0].toLowerCase() +

View File

@ -14,7 +14,6 @@ export function LogError(
);
if (isABug && !errObject) errObject = new Error().stack;
if (!!errObject) console.error(errObject);
// process.abort();
}
export function packageVersion() {
return `${(<any>packagejson).name}@${(<any>packagejson).version}`;

View File

@ -17,37 +17,27 @@ export abstract class AbstractDriver {
let newName = this.namingStrategy.columnName(column.tsName);
entity.Indexes.forEach(index => {
index.columns
.filter(column2 => {
return column2.name == column.tsName;
})
.forEach(column2 => {
column2.name = newName;
});
.filter(column2 => column2.name == column.tsName)
.forEach(column2 => (column2.name = newName));
});
dbModel.entities.forEach(entity2 => {
entity2.Columns.forEach(column2 => {
column2.relations
.filter(relation => {
return (
.filter(
relation =>
relation.relatedTable ==
entity.EntityName &&
relation.relatedColumn == column.tsName
);
})
.map(v => {
v.relatedColumn = newName;
});
)
.map(v => (v.relatedColumn = newName));
column2.relations
.filter(relation => {
return (
.filter(
relation =>
relation.relatedTable ==
entity.EntityName &&
relation.ownerColumn == column.tsName
);
})
.map(v => {
v.ownerColumn = newName;
});
)
.map(v => (v.ownerColumn = newName));
});
});
@ -75,43 +65,43 @@ export abstract class AbstractDriver {
dbModel.entities.forEach(entity => {
entity.Columns.forEach(column => {
column.relations.forEach(relation => {
if (true || !relation.isOwner) {
let newName = this.namingStrategy.relationName(
column.tsName,
relation,
dbModel
);
dbModel.entities.forEach(entity2 => {
entity2.Columns.forEach(column2 => {
column2.relations.forEach(relation2 => {
if (
relation2.relatedTable ==
entity.EntityName &&
relation2.ownerColumn == column.tsName
) {
relation2.ownerColumn = newName;
}
if (
relation2.relatedTable ==
entity.EntityName &&
relation2.relatedColumn == column.tsName
) {
relation2.relatedColumn = newName;
}
if (relation.isOwner) {
entity.Indexes.forEach(ind => {
ind.columns.forEach(col => {
if (col.name == column.tsName) {
col.name = newName;
}
});
});
}
});
let newName = this.namingStrategy.relationName(
column.tsName,
relation,
dbModel
);
dbModel.entities.forEach(entity2 => {
entity2.Columns.forEach(column2 => {
column2.relations.forEach(relation2 => {
if (
relation2.relatedTable ==
entity.EntityName &&
relation2.ownerColumn == column.tsName
) {
relation2.ownerColumn = newName;
}
if (
relation2.relatedTable ==
entity.EntityName &&
relation2.relatedColumn == column.tsName
) {
relation2.relatedColumn = newName;
}
if (relation.isOwner) {
entity.Indexes.forEach(ind => {
ind.columns
.filter(
col => col.name == column.tsName
)
.forEach(
col => (col.name = newName)
);
});
}
});
});
column.tsName = newName;
}
});
column.tsName = newName;
});
});
});
@ -162,8 +152,8 @@ export abstract class AbstractDriver {
generateRelationsIds: boolean;
FindManyToManyRelations(dbModel: DatabaseModel) {
let manyToManyEntities = dbModel.entities.filter(entity => {
return (
let manyToManyEntities = dbModel.entities.filter(
entity =>
entity.Columns.filter(column => {
return (
column.relations.length == 1 &&
@ -171,29 +161,29 @@ export abstract class AbstractDriver {
column.relations[0].isOwner
);
}).length == entity.Columns.length
);
});
);
manyToManyEntities.map(entity => {
let relations: RelationInfo[] = [];
relations = entity.Columns.reduce((prev: RelationInfo[], curr) => {
return prev.concat(curr.relations);
}, relations);
relations = entity.Columns.reduce(
(prev: RelationInfo[], curr) => prev.concat(curr.relations),
relations
);
let namesOfRelatedTables = relations
.map(v => v.relatedTable)
.filter((v, i, s) => s.indexOf(v) == i);
if (namesOfRelatedTables.length == 2) {
let relatedTable1 = dbModel.entities.filter(
let relatedTable1 = dbModel.entities.find(
v => v.EntityName == namesOfRelatedTables[0]
)[0];
)!;
relatedTable1.Columns = relatedTable1.Columns.filter(
v =>
!v.tsName
.toLowerCase()
.startsWith(entity.EntityName.toLowerCase())
);
let relatedTable2 = dbModel.entities.filter(
let relatedTable2 = dbModel.entities.find(
v => v.EntityName == namesOfRelatedTables[1]
)[0];
)!;
relatedTable2.Columns = relatedTable2.Columns.filter(
v =>
!v.tsName
@ -305,9 +295,9 @@ export abstract class AbstractDriver {
entities: EntityInfo[]
) {
relationsTemp.forEach(relationTmp => {
let ownerEntity = entities.find(entitity => {
return entitity.EntityName == relationTmp.ownerTable;
});
let ownerEntity = entities.find(
entitity => entitity.EntityName == relationTmp.ownerTable
);
if (!ownerEntity) {
TomgUtils.LogError(
`Relation between tables ${relationTmp.ownerTable} and ${
@ -316,9 +306,9 @@ export abstract class AbstractDriver {
);
return;
}
let referencedEntity = entities.find(entitity => {
return entitity.EntityName == relationTmp.referencedTable;
});
let referencedEntity = entities.find(
entitity => entitity.EntityName == relationTmp.referencedTable
);
if (!referencedEntity) {
TomgUtils.LogError(
`Relation between tables ${relationTmp.ownerTable} and ${
@ -332,12 +322,11 @@ export abstract class AbstractDriver {
relationColumnIndex < relationTmp.ownerColumnsNames.length;
relationColumnIndex++
) {
let ownerColumn = ownerEntity.Columns.find(column => {
return (
let ownerColumn = ownerEntity.Columns.find(
column =>
column.tsName ==
relationTmp.ownerColumnsNames[relationColumnIndex]
);
});
);
if (!ownerColumn) {
TomgUtils.LogError(
`Relation between tables ${
@ -350,12 +339,11 @@ export abstract class AbstractDriver {
);
return;
}
let relatedColumn = referencedEntity.Columns.find(column => {
return (
let relatedColumn = referencedEntity.Columns.find(
column =>
column.tsName ==
relationTmp.referencedColumnsNames[relationColumnIndex]
);
});
);
if (!relatedColumn) {
TomgUtils.LogError(
`Relation between tables ${
@ -370,14 +358,13 @@ export abstract class AbstractDriver {
}
let isOneToMany: boolean;
isOneToMany = false;
let index = ownerEntity.Indexes.find(index => {
return (
let index = ownerEntity.Indexes.find(
index =>
index.isUnique &&
index.columns.some(col => {
return col.name == ownerColumn!.tsName;
})
);
});
index.columns.some(
col => col.name == ownerColumn!.tsName
)
);
isOneToMany = !index;
let ownerRelation = new RelationInfo();
@ -467,15 +454,13 @@ export abstract class AbstractDriver {
FindPrimaryColumnsFromIndexes(dbModel: DatabaseModel) {
dbModel.entities.forEach(entity => {
let primaryIndex = entity.Indexes.find(v => v.isPrimaryKey);
entity.Columns.forEach(col => {
if (
entity.Columns.filter(
col =>
primaryIndex &&
primaryIndex.columns.some(
cIndex => cIndex.name == col.tsName
)
)
col.isPrimary = true;
});
).forEach(col => (col.isPrimary = true));
if (
!entity.Columns.some(v => {
return v.isPrimary;

View File

@ -228,9 +228,7 @@ ORDER BY
t.name, ind.name, ind.index_id, ic.key_ordinal;`)).recordset;
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.TableName == ent.EntityName;
})
.filter(filterVal => filterVal.TableName == ent.EntityName)
.forEach(resp => {
let indexInfo: IndexInfo = <IndexInfo>{};
let indexColumnInfo: IndexColumnInfo = <IndexColumnInfo>{};
@ -299,9 +297,9 @@ order by
TableWithForeignKey, FK_PartNo`)).recordset;
let relationsTemp: RelationTempInfo[] = <RelationTempInfo[]>[];
response.forEach(resp => {
let rels = relationsTemp.find(val => {
return val.object_id == resp.object_id;
});
let rels = relationsTemp.find(
val => val.object_id == resp.object_id
);
if (rels == undefined) {
rels = <RelationTempInfo>{};
rels.ownerColumnsNames = [];
@ -315,7 +313,6 @@ order by
break;
default:
rels.actionOnDelete = resp.onDelete;
break;
}
switch (resp.onUpdate) {
@ -327,7 +324,6 @@ order by
break;
default:
rels.actionOnUpdate = resp.onUpdate;
break;
}
rels.object_id = resp.object_id;

View File

@ -40,9 +40,7 @@ export class MysqlDriver extends AbstractDriver {
FROM INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA like DATABASE()`);
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.TABLE_NAME == ent.EntityName;
})
.filter(filterVal => filterVal.TABLE_NAME == ent.EntityName)
.forEach(resp => {
let colInfo: ColumnInfo = new ColumnInfo();
colInfo.tsName = resp.COLUMN_NAME;
@ -226,20 +224,18 @@ export class MysqlDriver extends AbstractDriver {
`);
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.TableName == ent.EntityName;
})
.filter(filterVal => filterVal.TableName == ent.EntityName)
.forEach(resp => {
let indexInfo: IndexInfo = <IndexInfo>{};
let indexColumnInfo: IndexColumnInfo = <IndexColumnInfo>{};
if (
ent.Indexes.filter(filterVal => {
return filterVal.name == resp.IndexName;
}).length > 0
ent.Indexes.filter(
filterVal => filterVal.name == resp.IndexName
).length > 0
) {
indexInfo = ent.Indexes.filter(filterVal => {
return filterVal.name == resp.IndexName;
})[0];
indexInfo = ent.Indexes.find(
filterVal => filterVal.name == resp.IndexName
)!;
} else {
indexInfo.columns = <IndexColumnInfo[]>[];
indexInfo.name = resp.IndexName;
@ -286,9 +282,9 @@ export class MysqlDriver extends AbstractDriver {
`);
let relationsTemp: RelationTempInfo[] = <RelationTempInfo[]>[];
response.forEach(resp => {
let rels = relationsTemp.find(val => {
return val.object_id == resp.object_id;
});
let rels = relationsTemp.find(
val => val.object_id == resp.object_id
);
if (rels == undefined) {
rels = <RelationTempInfo>{};
rels.ownerColumnsNames = [];

View File

@ -51,9 +51,7 @@ export class OracleDriver extends AbstractDriver {
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.TABLE_NAME == ent.EntityName;
})
.filter(filterVal => filterVal.TABLE_NAME == ent.EntityName)
.forEach(resp => {
let colInfo: ColumnInfo = new ColumnInfo();
colInfo.tsName = resp.COLUMN_NAME;
@ -202,20 +200,18 @@ export class OracleDriver extends AbstractDriver {
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.TABLE_NAME == ent.EntityName;
})
.filter(filterVal => filterVal.TABLE_NAME == ent.EntityName)
.forEach(resp => {
let indexInfo: IndexInfo = <IndexInfo>{};
let indexColumnInfo: IndexColumnInfo = <IndexColumnInfo>{};
if (
ent.Indexes.filter(filterVal => {
return filterVal.name == resp.INDEX_NAME;
}).length > 0
ent.Indexes.filter(
filterVal => filterVal.name == resp.INDEX_NAME
).length > 0
) {
indexInfo = ent.Indexes.filter(filterVal => {
return filterVal.name == resp.INDEX_NAME;
})[0];
indexInfo = ent.Indexes.find(
filterVal => filterVal.name == resp.INDEX_NAME
)!;
} else {
indexInfo.columns = <IndexColumnInfo[]>[];
indexInfo.name = resp.INDEX_NAME;
@ -256,9 +252,9 @@ export class OracleDriver extends AbstractDriver {
let relationsTemp: RelationTempInfo[] = <RelationTempInfo[]>[];
response.forEach(resp => {
let rels = relationsTemp.find(val => {
return val.object_id == resp.CONSTRAINT_NAME;
});
let rels = relationsTemp.find(
val => val.object_id == resp.CONSTRAINT_NAME
);
if (rels == undefined) {
rels = <RelationTempInfo>{};
rels.ownerColumnsNames = [];

View File

@ -50,9 +50,7 @@ export class PostgresDriver extends AbstractDriver {
.rows;
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.table_name == ent.EntityName;
})
.filter(filterVal => filterVal.table_name == ent.EntityName)
.forEach(resp => {
let colInfo: ColumnInfo = new ColumnInfo();
colInfo.tsName = resp.column_name;
@ -402,20 +400,18 @@ export class PostgresDriver extends AbstractDriver {
ORDER BY c.relname,f.attname;`)).rows;
entities.forEach(ent => {
response
.filter(filterVal => {
return filterVal.tablename == ent.EntityName;
})
.filter(filterVal => filterVal.tablename == ent.EntityName)
.forEach(resp => {
let indexInfo: IndexInfo = <IndexInfo>{};
let indexColumnInfo: IndexColumnInfo = <IndexColumnInfo>{};
if (
ent.Indexes.filter(filterVal => {
return filterVal.name == resp.indexname;
}).length > 0
ent.Indexes.filter(
filterVal => filterVal.name == resp.indexname
).length > 0
) {
indexInfo = ent.Indexes.filter(filterVal => {
return filterVal.name == resp.indexname;
})[0];
indexInfo = ent.Indexes.find(
filterVal => filterVal.name == resp.indexname
)!;
} else {
indexInfo.columns = <IndexColumnInfo[]>[];
indexInfo.name = resp.indexname;
@ -486,9 +482,9 @@ export class PostgresDriver extends AbstractDriver {
and rc.constraint_name= con.conname`)).rows;
let relationsTemp: RelationTempInfo[] = <RelationTempInfo[]>[];
response.forEach(resp => {
let rels = relationsTemp.find(val => {
return val.object_id == resp.object_id;
});
let rels = relationsTemp.find(
val => val.object_id == resp.object_id
);
if (rels == undefined) {
rels = <RelationTempInfo>{};
rels.ownerColumnsNames = [];

View File

@ -217,9 +217,9 @@ export class SqliteDriver extends AbstractDriver {
return filterVal.name == resp.name;
}).length > 0
) {
indexInfo = ent.Indexes.filter(filterVal => {
return filterVal.name == resp.name;
})[0];
indexInfo = ent.Indexes.find(
filterVal => filterVal.name == resp.name
)!;
} else {
indexInfo.columns = <IndexColumnInfo[]>[];
indexInfo.name = resp.name;

View File

@ -9,7 +9,7 @@ export class EntityInfo {
Schema: string;
GenerateConstructor: boolean;
relationImports(): any {
relationImports() {
var imports: string[] = [];
this.Columns.forEach(column => {
column.relations.forEach(relation => {
@ -17,8 +17,8 @@ export class EntityInfo {
imports.push(relation.relatedTable);
});
});
this.UniqueImports = imports.filter(function(elem, index, self) {
return index == self.indexOf(elem);
});
this.UniqueImports = imports.filter(
(elem, index, self) => index == self.indexOf(elem)
);
}
}

View File

@ -67,8 +67,8 @@ describe("Platform specyfic types", async function () {
await engine.createModelFromDatabase()
let filesGenPath = path.resolve(resultsPath, 'entities')
let filesOrg = fs.readdirSync(filesOrgPathTS).filter(function (this, val, ind, arr) { return val.toString().endsWith('.ts') })
let filesGen = fs.readdirSync(filesGenPath).filter(function (this, val, ind, arr) { return val.toString().endsWith('.ts') })
let filesOrg = fs.readdirSync(filesOrgPathTS).filter((val) => val.toString().endsWith('.ts'))
let filesGen = fs.readdirSync(filesGenPath).filter((val) => val.toString().endsWith('.ts'))
expect(filesOrg, 'Errors detected in model comparision').to.be.deep.equal(filesGen)
@ -79,9 +79,7 @@ describe("Platform specyfic types", async function () {
expect(jsonEntityGen, `Error in file ${file}`).to.containSubset(jsonEntityOrg)
}
const currentDirectoryFiles = fs.readdirSync(filesGenPath).
filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts").map(v => {
return path.resolve(filesGenPath, v)
})
filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts").map(v => path.resolve(filesGenPath, v))
let compileErrors = GTU.compileTsFiles(currentDirectoryFiles, {
experimentalDecorators: true,
sourceMap: false,

View File

@ -89,8 +89,8 @@ describe("GitHub issues", async function () {
await engine.createModelFromDatabase()
let filesGenPath = path.resolve(resultsPath, 'entities')
let filesOrg = fs.readdirSync(filesOrgPathTS).filter(function (this, val) { return val.toString().endsWith('.ts') })
let filesGen = fs.readdirSync(filesGenPath).filter(function (this, val) { return val.toString().endsWith('.ts') })
let filesOrg = fs.readdirSync(filesOrgPathTS).filter((val) => val.toString().endsWith('.ts'))
let filesGen = fs.readdirSync(filesGenPath).filter((val) => val.toString().endsWith('.ts'))
expect(filesOrg, 'Errors detected in model comparision').to.be.deep.equal(filesGen)
@ -101,9 +101,7 @@ describe("GitHub issues", async function () {
expect(jsonEntityGen, `Error in file ${file}`).to.containSubset(jsonEntityOrg)
}
const currentDirectoryFiles = fs.readdirSync(filesGenPath).
filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts").map(v => {
return path.resolve(filesGenPath, v)
})
filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts").map(v => path.resolve(filesGenPath, v))
let compileErrors = GTU.compileTsFiles(currentDirectoryFiles, {
experimentalDecorators: true,
sourceMap: false,

View File

@ -69,8 +69,8 @@ describe("TypeOrm examples", async function () {
await engine.createModelFromDatabase()
let filesGenPath = path.resolve(resultsPath, 'entities')
let filesOrg = fs.readdirSync(filesOrgPathTS).filter(function (this, val) { return val.toString().endsWith('.ts') })
let filesGen = fs.readdirSync(filesGenPath).filter(function (this, val) { return val.toString().endsWith('.ts') })
let filesOrg = fs.readdirSync(filesOrgPathTS).filter((val) => val.toString().endsWith('.ts'))
let filesGen = fs.readdirSync(filesGenPath).filter((val) => val.toString().endsWith('.ts'))
expect(filesOrg, 'Errors detected in model comparision').to.be.deep.equal(filesGen)
@ -81,9 +81,7 @@ describe("TypeOrm examples", async function () {
expect(jsonEntityGen, `Error in file ${file}`).to.containSubset(jsonEntityOrg)
}
const currentDirectoryFiles = fs.readdirSync(filesGenPath).
filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts").map(v => {
return path.resolve(filesGenPath, v)
})
filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts").map(v => path.resolve(filesGenPath, v))
let compileErrors = GTU.compileTsFiles(currentDirectoryFiles, {
experimentalDecorators: true,
sourceMap: false,

View File

@ -3,9 +3,7 @@ export class EntityFileToJson {
getEntityOptions(trimmedLine: string, ent: EntityJson) {
let decoratorParameters = trimmedLine.slice(trimmedLine.indexOf('(') + 1, trimmedLine.lastIndexOf(')'))
if (decoratorParameters.length > 0) {
if (decoratorParameters[0] == '"' && decoratorParameters.endsWith('"')) {
} else {
if (decoratorParameters[0] != '"' || !decoratorParameters.endsWith('"')) {
let badJSON = decoratorParameters.substring(decoratorParameters.indexOf(',') + 1).trim()
if (badJSON.lastIndexOf(',') == badJSON.length - 3) {
badJSON = badJSON.slice(0, badJSON.length - 3) + badJSON[badJSON.length - 2] + badJSON[badJSON.length - 1]
@ -19,9 +17,7 @@ export class EntityFileToJson {
let primaryGeneratedColumn = trimmedLine.substring(0, trimmedLine.indexOf('('))=='@PrimaryGeneratedColumn'
if (decoratorParameters.length > 0) {
if (decoratorParameters.search(',') > 0 && !primaryGeneratedColumn) {
col.columnTypes = decoratorParameters.substring(0, decoratorParameters.indexOf(',')).trim().split('|').map(function (x) {
return x;
});
col.columnTypes = decoratorParameters.substring(0, decoratorParameters.indexOf(',')).trim().split('|');
let badJSON = decoratorParameters.substring(decoratorParameters.indexOf(',') + 1).trim()
if (badJSON.lastIndexOf(',') == badJSON.length - 3) {
badJSON = badJSON.slice(0, badJSON.length - 3) + badJSON[badJSON.length - 2] + badJSON[badJSON.length - 1]
@ -29,10 +25,7 @@ export class EntityFileToJson {
col.columnOptions = JSON.parse(badJSON.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": '))
} else {
if (decoratorParameters[0] == '"' && decoratorParameters.endsWith('"')) {
col.columnTypes = decoratorParameters.split('|').map(function (x) {
x = x.trim();
return x;
});
col.columnTypes = decoratorParameters.split('|').map( x=>x.trim())
} else {
let badJSON = !primaryGeneratedColumn ? decoratorParameters.substring(decoratorParameters.indexOf(',') + 1) : decoratorParameters
badJSON = badJSON.trim()
@ -54,8 +47,6 @@ export class EntityFileToJson {
badJSON = badJSON.slice(0, badJSON.length - 3) + badJSON[badJSON.length - 2] + badJSON[badJSON.length - 1]
}
col.columnOptions = JSON.parse(badJSON.replace(/(')/g,`"`).replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": '))
} else {
}
}
}
@ -65,7 +56,7 @@ export class EntityFileToJson {
if (decoratorParameters.length > 0) {
let containsTables = decoratorParameters.search('\\[') > -1
let containsOptions = decoratorParameters.search('{') > -1
let containsName = decoratorParameters.search('"') > -1//TODO:no name, but fields as string[]
let containsName = decoratorParameters.search('"') > -1
if (containsName) {
ind.indexName = decoratorParameters.slice(decoratorParameters.indexOf('"') + 1, decoratorParameters.substr(decoratorParameters.indexOf('"') + 1).indexOf('"'))
}
@ -79,9 +70,7 @@ export class EntityFileToJson {
colName = val.slice(val.indexOf('"') + 1, val.lastIndexOf('"'))
}
return colName
}).filter(v => {
return v.length > 0
}))
}).filter(v => v.length > 0))
}
if (containsOptions) {
let optionsStr = decoratorParameters.slice(decoratorParameters.indexOf('{') + 1, decoratorParameters.indexOf('}'))
@ -307,9 +296,8 @@ export class EntityFileToJson {
return x;
});
if (!retVal.columns[retVal.columns.length - 1].columnTypes.some(function (this, val, ind, arr) {
return val == "null" ? true : false;
})) retVal.columns[retVal.columns.length - 1].columnTypes.push('null')
if (!retVal.columns[retVal.columns.length - 1].columnTypes.some( (val) => val == "null" ? true : false))
retVal.columns[retVal.columns.length - 1].columnTypes.push('null')
if (retVal.indicies.length > 0 && retVal.indicies[retVal.indicies.length - 1].columnNames.length == 0) {
retVal.indicies[retVal.indicies.length - 1].columnNames.push(retVal.columns[retVal.columns.length - 1].columnName)
}