UNPKG

@joktec/mysql

Version:

JokTec - MySql Service

49 lines 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MysqlNamingStrategy = void 0; const utils_1 = require("@joktec/utils"); const typeorm_1 = require("typeorm"); const StringUtils_1 = require("typeorm/util/StringUtils"); class MysqlNamingStrategy extends typeorm_1.DefaultNamingStrategy { tableName(className, customName) { return customName ? customName : (0, StringUtils_1.snakeCase)((0, utils_1.toPlural)(className)); } columnName(propertyName, customName, embeddedPrefixes) { return (0, StringUtils_1.snakeCase)(embeddedPrefixes.concat('').join('_')) + (customName ? customName : (0, StringUtils_1.snakeCase)(propertyName)); } relationName(propertyName) { return (0, StringUtils_1.snakeCase)(propertyName); } joinColumnName(relationName, referencedColumnName) { return (0, StringUtils_1.snakeCase)(relationName + '_' + referencedColumnName); } joinTableName(firstTableName, secondTableName, firstPropertyName, secondPropertyName) { return (0, StringUtils_1.snakeCase)(firstTableName + '_' + firstPropertyName.replace(/\./gi, '_') + '_' + secondTableName); } joinTableColumnName(tableName, propertyName, columnName) { return (0, StringUtils_1.snakeCase)(tableName + '_' + (columnName ? columnName : propertyName)); } indexName(tableOrName, columnNames) { return `idx_${tableOrName}_${columnNames.join('_')}`; } uniqueConstraintName(tableOrName, columnNames) { return `unq_${tableOrName}_${columnNames.join('_')}`; } foreignKeyName(tableOrName, columnNames, _referencedTablePath, _referencedColumnNames) { const baseForeignKeyName = `fk_${tableOrName}_${columnNames.join('_')}`; if (_referencedTablePath && _referencedColumnNames) { const referencedTable = _referencedTablePath; const referencedColumns = _referencedColumnNames.join('_'); return `${baseForeignKeyName}_to_${referencedTable}_${referencedColumns}`; } return baseForeignKeyName; } classTableInheritanceParentColumnName(parentTableName, parentTableIdPropertyName) { return (0, StringUtils_1.snakeCase)(parentTableName + '_' + parentTableIdPropertyName); } eagerJoinRelationAlias(alias, propertyPath) { return alias + '__' + propertyPath.replace('.', '_'); } } exports.MysqlNamingStrategy = MysqlNamingStrategy; //# sourceMappingURL=mysql.strategy.js.map