Merge pull request #249 from CatsMiaow/master

Fix type NamingStrategy
This commit is contained in:
Kononnable 2020-02-29 19:01:49 +01:00 committed by GitHub
commit 9ecc3dbbb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 22 deletions

View File

@ -4,28 +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;
};
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,
@ -39,7 +24,7 @@ export default function modelCustomizationPhase(
// TODO: change form of logging
const req = TomgUtils.requireLocalFile(
generationOptions.customNamingStrategyPath
) as Partial<NamingStrategy>;
) as Partial<typeof NamingStrategy>;
if (req.columnName) {
console.log(
`[${new Date().toLocaleTimeString()}] Using custom naming strategy for column names.`
@ -242,7 +227,7 @@ function addImportsAndGenerationOptions(
}
function applyNamingStrategy(
namingStrategy: NamingStrategy,
namingStrategy: typeof NamingStrategy,
dbModel: Entity[]
): Entity[] {
let retVal = changeRelationNames(dbModel);

View File

@ -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;
}