@joktec/mysql
Version:
JokTec - MySql Service
49 lines • 2.49 kB
JavaScript
;
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