Feature - support richer derivation of column & entity name (#176)
Feature - support richer derivation of column & entity name
This commit is contained in:
commit
b00ec56118
@ -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;
|
||||
}
|
||||
|
@ -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 => {
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user