diff --git a/src/AbstractNamingStrategy.ts b/src/AbstractNamingStrategy.ts index b2b9783..b568992 100644 --- a/src/AbstractNamingStrategy.ts +++ b/src/AbstractNamingStrategy.ts @@ -1,5 +1,6 @@ import RelationInfo from "./models/RelationInfo"; import EntityInfo from "./models/EntityInfo"; +import ColumnInfo from "./models/ColumnInfo"; export default abstract class AbstractNamingStrategy { public abstract relationName( @@ -8,7 +9,7 @@ export default 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 2111e00..e477e6f 100644 --- a/src/Engine.ts +++ b/src/Engine.ts @@ -12,6 +12,7 @@ import MysqlDriver from "./drivers/MysqlDriver"; import OracleDriver from "./drivers/OracleDriver"; import SqliteDriver from "./drivers/SqliteDriver"; import NamingStrategy from "./NamingStrategy"; +import AbstractNamingStrategy from "./AbstractNamingStrategy"; import changeCase = require("change-case"); import fs = require("fs"); @@ -69,7 +70,7 @@ export function modelCustomizationPhase( generationOptions: IGenerationOptions, defaultValues: DataTypeDefaults ) { - let namingStrategy: NamingStrategy; + let namingStrategy: AbstractNamingStrategy; if ( generationOptions.customNamingStrategyPath && generationOptions.customNamingStrategyPath !== "" @@ -365,7 +366,7 @@ function createTypeOrmConfig( } } function applyNamingStrategy( - namingStrategy: NamingStrategy, + namingStrategy: AbstractNamingStrategy, dbModel: EntityInfo[] ) { let retval = changeRelationNames(dbModel); @@ -424,7 +425,10 @@ 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) @@ -464,7 +468,10 @@ 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/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) {