From be9d8925bf32cfbeb5fa04abd9d472596ac77d09 Mon Sep 17 00:00:00 2001 From: CatsMiaow Date: Thu, 20 Feb 2020 13:26:47 +0900 Subject: [PATCH 1/2] Fix type NamingStrategy --- src/ModelCustomization.ts | 17 +++++------------ src/NamingStrategy.ts | 12 ++++++++---- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/ModelCustomization.ts b/src/ModelCustomization.ts index 46f80d0..75f2b50 100644 --- a/src/ModelCustomization.ts +++ b/src/ModelCustomization.ts @@ -4,20 +4,13 @@ import { Entity } from "./models/Entity"; import IGenerationOptions from "./IGenerationOptions"; import * as NamingStrategy from "./NamingStrategy"; import * as TomgUtils from "./Utils"; -import { Relation } from "./models/Relation"; -import { RelationId } from "./models/RelationId"; -import { Column } from "./models/Column"; type NamingStrategy = { - enablePluralization: (value: boolean) => void; - relationIdName: ( - relationId: RelationId, - relation: Relation, - owner: Entity - ) => string; - relationName: (relation: Relation, owner: Entity) => string; - columnName: (columnName: string, column?: Column) => string; - entityName: (entityName: string, entity?: Entity) => string; + enablePluralization: typeof NamingStrategy.enablePluralization; + relationIdName: typeof NamingStrategy.relationIdName; + relationName: typeof NamingStrategy.relationName; + columnName: typeof NamingStrategy.columnName; + entityName: typeof NamingStrategy.entityName; }; export default function modelCustomizationPhase( diff --git a/src/NamingStrategy.ts b/src/NamingStrategy.ts index 4836377..e9edbba 100644 --- a/src/NamingStrategy.ts +++ b/src/NamingStrategy.ts @@ -1,7 +1,10 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { plural } from "pluralize"; import * as changeCase from "change-case"; import { Relation } from "./models/Relation"; import { RelationId } from "./models/RelationId"; +import { Entity } from "./models/Entity"; +import { Column } from "./models/Column"; let pluralize: boolean; @@ -11,7 +14,8 @@ export function enablePluralization(value: boolean) { export function relationIdName( relationId: RelationId, - relation: Relation + relation: Relation, + owner?: Entity ): string { const columnOldName = relationId.fieldName; @@ -35,7 +39,7 @@ export function relationIdName( return newColumnName; } -export function relationName(relation: Relation): string { +export function relationName(relation: Relation, owner?: Entity): string { const columnOldName = relation.fieldName; const isRelationToMany = @@ -66,10 +70,10 @@ export function relationName(relation: Relation): string { return newColumnName; } -export function entityName(oldEntityName: string): string { +export function entityName(oldEntityName: string, entity?: Entity): string { return oldEntityName; } -export function columnName(oldColumnName: string): string { +export function columnName(oldColumnName: string, column?: Column): string { return oldColumnName; } From a8ef75f7659adc2d4e8dcbe5e4979026750d1ee7 Mon Sep 17 00:00:00 2001 From: Kononnable Date: Sat, 29 Feb 2020 18:51:40 +0100 Subject: [PATCH 2/2] remove duplicated type definition --- src/ModelCustomization.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/ModelCustomization.ts b/src/ModelCustomization.ts index 75f2b50..befd219 100644 --- a/src/ModelCustomization.ts +++ b/src/ModelCustomization.ts @@ -5,20 +5,12 @@ import IGenerationOptions from "./IGenerationOptions"; import * as NamingStrategy from "./NamingStrategy"; import * as TomgUtils from "./Utils"; -type NamingStrategy = { - enablePluralization: typeof NamingStrategy.enablePluralization; - relationIdName: typeof NamingStrategy.relationIdName; - relationName: typeof NamingStrategy.relationName; - columnName: typeof NamingStrategy.columnName; - entityName: typeof NamingStrategy.entityName; -}; - export default function modelCustomizationPhase( dbModel: Entity[], generationOptions: IGenerationOptions, defaultValues: DataTypeDefaults ): Entity[] { - const namingStrategy: NamingStrategy = { + const namingStrategy: typeof NamingStrategy = { enablePluralization: NamingStrategy.enablePluralization, columnName: NamingStrategy.columnName, entityName: NamingStrategy.entityName, @@ -32,7 +24,7 @@ export default function modelCustomizationPhase( // TODO: change form of logging const req = TomgUtils.requireLocalFile( generationOptions.customNamingStrategyPath - ) as Partial; + ) as Partial; if (req.columnName) { console.log( `[${new Date().toLocaleTimeString()}] Using custom naming strategy for column names.` @@ -235,7 +227,7 @@ function addImportsAndGenerationOptions( } function applyNamingStrategy( - namingStrategy: NamingStrategy, + namingStrategy: typeof NamingStrategy, dbModel: Entity[] ): Entity[] { let retVal = changeRelationNames(dbModel);