From 69a2362890084b25d3679976dada32cef8720c33 Mon Sep 17 00:00:00 2001 From: Kononnable Date: Thu, 6 Dec 2018 22:23:30 +0100 Subject: [PATCH] code cleanup --- src/Engine.ts | 40 ++---- src/NamingStrategy.ts | 9 +- src/Utils.ts | 1 - src/drivers/AbstractDriver.ts | 169 ++++++++++++-------------- src/drivers/MssqlDriver.ts | 12 +- src/drivers/MysqlDriver.ts | 26 ++-- src/drivers/OracleDriver.ts | 26 ++-- src/drivers/PostgresDriver.ts | 26 ++-- src/drivers/SqliteDriver.ts | 6 +- src/models/EntityInfo.ts | 8 +- test/integration/entityTypes.test.ts | 8 +- test/integration/githubIssues.test.ts | 8 +- test/integration/integration.test.ts | 8 +- test/utils/EntityFileToJson.ts | 26 ++-- 14 files changed, 150 insertions(+), 223 deletions(-) diff --git a/src/Engine.ts b/src/Engine.ts index fd80fda..cbd2727 100644 --- a/src/Engine.ts +++ b/src/Engine.ts @@ -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 }); } diff --git a/src/NamingStrategy.ts b/src/NamingStrategy.ts index 1cad9cb..33882ec 100644 --- a/src/NamingStrategy.ts +++ b/src/NamingStrategy.ts @@ -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() + diff --git a/src/Utils.ts b/src/Utils.ts index d6ba713..8e34d49 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -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 `${(packagejson).name}@${(packagejson).version}`; diff --git a/src/drivers/AbstractDriver.ts b/src/drivers/AbstractDriver.ts index c72895e..f84fb99 100644 --- a/src/drivers/AbstractDriver.ts +++ b/src/drivers/AbstractDriver.ts @@ -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; diff --git a/src/drivers/MssqlDriver.ts b/src/drivers/MssqlDriver.ts index ac64a13..7d3fe8c 100644 --- a/src/drivers/MssqlDriver.ts +++ b/src/drivers/MssqlDriver.ts @@ -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 = {}; let indexColumnInfo: IndexColumnInfo = {}; @@ -299,9 +297,9 @@ order by TableWithForeignKey, FK_PartNo`)).recordset; let relationsTemp: 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 = {}; 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; diff --git a/src/drivers/MysqlDriver.ts b/src/drivers/MysqlDriver.ts index b4ffe98..2fa3bf3 100644 --- a/src/drivers/MysqlDriver.ts +++ b/src/drivers/MysqlDriver.ts @@ -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 = {}; let 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 = []; indexInfo.name = resp.IndexName; @@ -286,9 +282,9 @@ export class MysqlDriver extends AbstractDriver { `); let relationsTemp: 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 = {}; rels.ownerColumnsNames = []; diff --git a/src/drivers/OracleDriver.ts b/src/drivers/OracleDriver.ts index 751967c..4ac6580 100644 --- a/src/drivers/OracleDriver.ts +++ b/src/drivers/OracleDriver.ts @@ -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 = {}; let 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 = []; indexInfo.name = resp.INDEX_NAME; @@ -256,9 +252,9 @@ export class OracleDriver extends AbstractDriver { let relationsTemp: 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 = {}; rels.ownerColumnsNames = []; diff --git a/src/drivers/PostgresDriver.ts b/src/drivers/PostgresDriver.ts index b117522..d91411d 100644 --- a/src/drivers/PostgresDriver.ts +++ b/src/drivers/PostgresDriver.ts @@ -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 = {}; let 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 = []; indexInfo.name = resp.indexname; @@ -486,9 +482,9 @@ export class PostgresDriver extends AbstractDriver { and rc.constraint_name= con.conname`)).rows; let relationsTemp: 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 = {}; rels.ownerColumnsNames = []; diff --git a/src/drivers/SqliteDriver.ts b/src/drivers/SqliteDriver.ts index 9768316..f9ac79d 100644 --- a/src/drivers/SqliteDriver.ts +++ b/src/drivers/SqliteDriver.ts @@ -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 = []; indexInfo.name = resp.name; diff --git a/src/models/EntityInfo.ts b/src/models/EntityInfo.ts index 024a0e0..ecae01c 100644 --- a/src/models/EntityInfo.ts +++ b/src/models/EntityInfo.ts @@ -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) + ); } } diff --git a/test/integration/entityTypes.test.ts b/test/integration/entityTypes.test.ts index 10e570f..e95fabc 100644 --- a/test/integration/entityTypes.test.ts +++ b/test/integration/entityTypes.test.ts @@ -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, diff --git a/test/integration/githubIssues.test.ts b/test/integration/githubIssues.test.ts index 1c348ed..03099e5 100644 --- a/test/integration/githubIssues.test.ts +++ b/test/integration/githubIssues.test.ts @@ -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, diff --git a/test/integration/integration.test.ts b/test/integration/integration.test.ts index d75bb1a..5c11403 100644 --- a/test/integration/integration.test.ts +++ b/test/integration/integration.test.ts @@ -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, diff --git a/test/utils/EntityFileToJson.ts b/test/utils/EntityFileToJson.ts index 89c6d84..0a1ac1f 100644 --- a/test/utils/EntityFileToJson.ts +++ b/test/utils/EntityFileToJson.ts @@ -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) }