From 9ca015e377c4ff9032ea821a9bd1e20d98607dce Mon Sep 17 00:00:00 2001 From: Ng Tze Yang <ngty77@gmail.com> Date: Thu, 27 Jun 2019 09:27:08 +0800 Subject: [PATCH 1/3] feat: support richer derivation of column & entity name ; --- src/AbstractNamingStrategy.ts | 5 +++-- src/Engine.ts | 4 ++-- src/NamingStrategy.ts | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/AbstractNamingStrategy.ts b/src/AbstractNamingStrategy.ts index ee3b9ee..c523ad1 100644 --- a/src/AbstractNamingStrategy.ts +++ b/src/AbstractNamingStrategy.ts @@ -1,4 +1,5 @@ import { EntityInfo } from "./models/EntityInfo"; +import { ColumnInfo } from "./models/ColumnInfo"; import { RelationInfo } from "./models/RelationInfo"; export abstract class AbstractNamingStrategy { @@ -8,7 +9,7 @@ export abstract class AbstractNamingStrategy { dbModel: EntityInfo[] ): string; - public abstract entityName(entityName: string): string; + public abstract entityName(entityName: string, entity?: EntityInfo): string; - public abstract columnName(columnName: string): string; + public abstract columnName(columnName: string, column?: ColumnInfo): string; } diff --git a/src/Engine.ts b/src/Engine.ts index bf4efe6..19be9a6 100644 --- a/src/Engine.ts +++ b/src/Engine.ts @@ -419,7 +419,7 @@ function applyNamingStrategy( function changeColumnNames(model: EntityInfo[]) { model.forEach(entity => { entity.Columns.forEach(column => { - const newName = namingStrategy.columnName(column.tsName); + const newName = namingStrategy.columnName(column.tsName, column); entity.Indexes.forEach(index => { index.columns .filter(column2 => column2.name === column.tsName) @@ -453,7 +453,7 @@ function applyNamingStrategy( } function changeEntityNames(entities: EntityInfo[]) { entities.forEach(entity => { - const newName = namingStrategy.entityName(entity.tsEntityName); + const newName = namingStrategy.entityName(entity.tsEntityName, entity); entities.forEach(entity2 => { entity2.Columns.forEach(column => { column.relations.forEach(relation => { diff --git a/src/NamingStrategy.ts b/src/NamingStrategy.ts index 4e814d6..9b951d0 100644 --- a/src/NamingStrategy.ts +++ b/src/NamingStrategy.ts @@ -1,6 +1,7 @@ import changeCase = require("change-case"); import { AbstractNamingStrategy } from "./AbstractNamingStrategy"; import { EntityInfo } from "./models/EntityInfo"; +import { ColumnInfo } from "./models/ColumnInfo"; import { RelationInfo } from "./models/RelationInfo"; export class NamingStrategy extends AbstractNamingStrategy { @@ -60,11 +61,11 @@ export class NamingStrategy extends AbstractNamingStrategy { return columnName; } - public entityName(entityName: string): string { + public entityName(entityName: string, entity?: EntityInfo): string { return entityName; } - public columnName(columnName: string): string { + public columnName(columnName: string, column?: ColumnInfo): string { return columnName; } } From 4dc1bb387ecb87df4b570f452c41b5cab19666f7 Mon Sep 17 00:00:00 2001 From: Ng Tze Yang <ngty77@gmail.com> Date: Thu, 27 Jun 2019 11:02:41 +0800 Subject: [PATCH 2/3] refact: pretti-fying ; --- src/Engine.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Engine.ts b/src/Engine.ts index 19be9a6..5da5fc9 100644 --- a/src/Engine.ts +++ b/src/Engine.ts @@ -419,7 +419,10 @@ function applyNamingStrategy( function changeColumnNames(model: EntityInfo[]) { model.forEach(entity => { entity.Columns.forEach(column => { - const newName = namingStrategy.columnName(column.tsName, column); + const newName = namingStrategy.columnName( + column.tsName, + column + ); entity.Indexes.forEach(index => { index.columns .filter(column2 => column2.name === column.tsName) @@ -453,7 +456,10 @@ function applyNamingStrategy( } function changeEntityNames(entities: EntityInfo[]) { entities.forEach(entity => { - const newName = namingStrategy.entityName(entity.tsEntityName, entity); + const newName = namingStrategy.entityName( + entity.tsEntityName, + entity + ); entities.forEach(entity2 => { entity2.Columns.forEach(column => { column.relations.forEach(relation => { From b0842debf9391dcfbf83ddf855870c577acd7eaa Mon Sep 17 00:00:00 2001 From: Kononnable <kononnable@gmail.com> Date: Wed, 14 Aug 2019 13:09:06 +0200 Subject: [PATCH 3/3] fix tests on CI --- src/drivers/OracleDriver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/OracleDriver.ts b/src/drivers/OracleDriver.ts index 27dd884..2c7a208 100644 --- a/src/drivers/OracleDriver.ts +++ b/src/drivers/OracleDriver.ts @@ -27,7 +27,7 @@ export default class OracleDriver extends AbstractDriver { public constructor() { super(); try { - // eslint-disable-next-line import/no-extraneous-dependencies, global-require + // eslint-disable-next-line import/no-extraneous-dependencies, global-require, import/no-unresolved this.Oracle = require("oracledb"); this.Oracle.outFormat = this.Oracle.OBJECT; } catch (error) {