UNPKG

quaerateum

Version:

Simple typescript ORM for node.js based on data-mapper, unit-of-work and identity-map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JS.

34 lines (24 loc) 1.03 kB
import { NamingStrategy } from './NamingStrategy'; export class UnderscoreNamingStrategy implements NamingStrategy { classToTableName(entityName: string): string { return this.underscore(entityName); } joinColumnName(propertyName: string, className?: string): string { return this.underscore(propertyName) + '_' + this.referenceColumnName(); } joinKeyColumnName(entityName: string, referencedColumnName?: string): string { return this.classToTableName(entityName) + '_' + (referencedColumnName || this.referenceColumnName()); } joinTableName(sourceEntity: string, targetEntity: string, propertyName?: string): string { return this.classToTableName(sourceEntity) + '_to_' + this.classToTableName(targetEntity); } propertyToColumnName(propertyName: string): string { return this.underscore(propertyName); } referenceColumnName(): string { return 'id'; } private underscore(name: string): string { return name.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(); } }