schangxiang@126.com
2025-09-19 0821aa23eabe557c0d9ef5dbe6989c68be35d1fe
1
{"version":3,"sources":["../browser/src/naming-strategy/DefaultNamingStrategy.ts"],"names":[],"mappings":"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","file":"DefaultNamingStrategy.js","sourcesContent":["import {NamingStrategyInterface} from \"./NamingStrategyInterface\";\nimport {RandomGenerator} from \"../util/RandomGenerator\";\nimport {camelCase, snakeCase, titleCase} from \"../util/StringUtils\";\nimport {Table} from \"../schema-builder/table/Table\";\n\n/**\n * Naming strategy that is used by default.\n */\nexport class DefaultNamingStrategy implements NamingStrategyInterface {\n\n    /**\n     * Normalizes table name.\n     *\n     * @param targetName Name of the target entity that can be used to generate a table name.\n     * @param userSpecifiedName For example if user specified a table name in a decorator, e.g. @Entity(\"name\")\n     */\n    tableName(targetName: string, userSpecifiedName: string|undefined): string {\n        return userSpecifiedName ? userSpecifiedName : snakeCase(targetName);\n    }\n\n    /**\n     * Creates a table name for a junction table of a closure table.\n     *\n     * @param originalClosureTableName Name of the closure table which owns this junction table.\n     */\n    closureJunctionTableName(originalClosureTableName: string): string {\n        return originalClosureTableName + \"_closure\";\n    }\n\n    columnName(propertyName: string, customName: string, embeddedPrefixes: string[]): string { // todo: simplify\n        if (embeddedPrefixes.length)\n            return camelCase(embeddedPrefixes.join(\"_\")) + (customName ? titleCase(customName) : titleCase(propertyName));\n\n        return customName ? customName : propertyName;\n    }\n\n    relationName(propertyName: string): string {\n        return propertyName;\n    }\n\n    primaryKeyName(tableOrName: Table|string, columnNames: string[]): string {\n        // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n        const clonedColumnNames = [...columnNames];\n        clonedColumnNames.sort();\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n        return \"PK_\" + RandomGenerator.sha1(key).substr(0, 27);\n    }\n\n    uniqueConstraintName(tableOrName: Table|string, columnNames: string[]): string {\n        // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n        const clonedColumnNames = [...columnNames];\n        clonedColumnNames.sort();\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n        return \"UQ_\" + RandomGenerator.sha1(key).substr(0, 27);\n    }\n\n    relationConstraintName(tableOrName: Table|string, columnNames: string[], where?: string): string {\n        // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n        const clonedColumnNames = [...columnNames];\n        clonedColumnNames.sort();\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        let key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n        if (where)\n            key += `_${where}`;\n\n        return \"REL_\" + RandomGenerator.sha1(key).substr(0, 26);\n    }\n\n    defaultConstraintName(tableOrName: Table|string, columnName: string): string {\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        const key = `${replacedTableName}_${columnName}`;\n        return \"DF_\" + RandomGenerator.sha1(key).substr(0, 27);\n    }\n\n    foreignKeyName(tableOrName: Table|string, columnNames: string[]): string {\n        // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n        const clonedColumnNames = [...columnNames];\n        clonedColumnNames.sort();\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n        return \"FK_\" + RandomGenerator.sha1(key).substr(0, 27);\n    }\n\n    indexName(tableOrName: Table|string, columnNames: string[], where?: string): string {\n        // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n        const clonedColumnNames = [...columnNames];\n        clonedColumnNames.sort();\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        let key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n        if (where)\n            key += `_${where}`;\n\n        return \"IDX_\" + RandomGenerator.sha1(key).substr(0, 26);\n    }\n\n    checkConstraintName(tableOrName: Table|string, expression: string): string {\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        const key = `${replacedTableName}_${expression}`;\n        return \"CHK_\" + RandomGenerator.sha1(key).substr(0, 26);\n    }\n\n    exclusionConstraintName(tableOrName: Table|string, expression: string): string {\n        const tableName = tableOrName instanceof Table ? tableOrName.name : tableOrName;\n        const replacedTableName = tableName.replace(\".\", \"_\");\n        const key = `${replacedTableName}_${expression}`;\n        return \"XCL_\" + RandomGenerator.sha1(key).substr(0, 26);\n    }\n\n    joinColumnName(relationName: string, referencedColumnName: string): string {\n        return camelCase(relationName + \"_\" + referencedColumnName);\n    }\n\n    joinTableName(firstTableName: string,\n                  secondTableName: string,\n                  firstPropertyName: string,\n                  secondPropertyName: string): string {\n        return snakeCase(firstTableName + \"_\" + firstPropertyName.replace(/\\./gi, \"_\") + \"_\" + secondTableName);\n    }\n\n    joinTableColumnDuplicationPrefix(columnName: string, index: number): string {\n        return columnName + \"_\" + index;\n    }\n\n    joinTableColumnName(tableName: string, propertyName: string, columnName?: string): string {\n        return camelCase(tableName + \"_\" + (columnName ? columnName : propertyName));\n    }\n\n    joinTableInverseColumnName(tableName: string, propertyName: string, columnName?: string): string {\n        return this.joinTableColumnName(tableName, propertyName, columnName);\n    }\n\n    /**\n     * Adds globally set prefix to the table name.\n     * This method is executed no matter if prefix was set or not.\n     * Table name is either user's given table name, either name generated from entity target.\n     * Note that table name comes here already normalized by #tableName method.\n     */\n    prefixTableName(prefix: string, tableName: string): string {\n        return prefix + tableName;\n    }\n\n}\n"],"sourceRoot":".."}