File

src/utils/strategies/snake-naming.strategy.ts

Extends

DefaultNamingStrategy

Implements

NamingStrategyInterface

Index

Methods

Methods

classTableInheritanceParentColumnName
classTableInheritanceParentColumnName(parentTableName: string, parentTableIdPropertyName: string)
Parameters :
Name Type Optional
parentTableName string No
parentTableIdPropertyName string No
Returns : string
columnName
columnName(propertyName: string, customName: string, embeddedPrefixes: string[])
Parameters :
Name Type Optional
propertyName string No
customName string No
embeddedPrefixes string[] No
Returns : string
joinColumnName
joinColumnName(relationName: string, referencedColumnName: string)
Parameters :
Name Type Optional
relationName string No
referencedColumnName string No
Returns : string
joinTableColumnName
joinTableColumnName(tableName: string, propertyName: string, columnName?: string)
Parameters :
Name Type Optional
tableName string No
propertyName string No
columnName string Yes
Returns : string
joinTableName
joinTableName(firstTableName: string, secondTableName: string, firstPropertyName: string, _secondPropertyName: string)
Parameters :
Name Type Optional
firstTableName string No
secondTableName string No
firstPropertyName string No
_secondPropertyName string No
Returns : string
relationName
relationName(propertyName: string)
Parameters :
Name Type Optional
propertyName string No
Returns : string
tableName
tableName(className: string, customName: string)
Parameters :
Name Type Optional
className string No
customName string No
Returns : string
import { DefaultNamingStrategy, NamingStrategyInterface } from 'typeorm';
import { snakeCase } from 'typeorm/util/StringUtils';

export class SnakeNamingStrategy extends DefaultNamingStrategy
  implements NamingStrategyInterface {
  tableName(className: string, customName: string): string {
    return customName ? customName : snakeCase(className);
  }

  columnName(
    propertyName: string,
    customName: string,
    embeddedPrefixes: string[],
  ): string {
    return (
      snakeCase(embeddedPrefixes.join('_')) +
      (customName ? customName : snakeCase(propertyName))
    );
  }

  relationName(propertyName: string): string {
    return snakeCase(propertyName);
  }

  joinColumnName(relationName: string, referencedColumnName: string): string {
    return snakeCase(relationName + '_' + referencedColumnName);
  }

  joinTableName(
    firstTableName: string,
    secondTableName: string,
    firstPropertyName: string,
    _secondPropertyName: string,
  ): string {
    return snakeCase(
      firstTableName +
        '_' +
        firstPropertyName.replace(/\./gi, '_') +
        '_' +
        secondTableName,
    );
  }

  joinTableColumnName(
    tableName: string,
    propertyName: string,
    columnName?: string,
  ): string {
    return snakeCase(
      tableName + '_' + (columnName ? columnName : propertyName),
    );
  }

  classTableInheritanceParentColumnName(
    parentTableName: string,
    parentTableIdPropertyName: string,
  ): string {
    return snakeCase(`${parentTableName}_${parentTableIdPropertyName}`);
  }
}

result-matching ""

    No results matching ""