@mikro-orm/core 7.0.4-dev.9 → 7.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EntityManager.d.ts +884 -583
- package/EntityManager.js +1922 -1895
- package/MikroORM.d.ts +103 -74
- package/MikroORM.js +178 -179
- package/README.md +1 -1
- package/cache/CacheAdapter.d.ts +36 -36
- package/cache/FileCacheAdapter.d.ts +30 -24
- package/cache/FileCacheAdapter.js +80 -78
- package/cache/GeneratedCacheAdapter.d.ts +18 -20
- package/cache/GeneratedCacheAdapter.js +30 -30
- package/cache/MemoryCacheAdapter.d.ts +18 -20
- package/cache/MemoryCacheAdapter.js +35 -36
- package/cache/NullCacheAdapter.d.ts +16 -16
- package/cache/NullCacheAdapter.js +24 -24
- package/connections/Connection.d.ts +95 -84
- package/connections/Connection.js +165 -168
- package/drivers/DatabaseDriver.d.ts +186 -80
- package/drivers/DatabaseDriver.js +450 -443
- package/drivers/IDatabaseDriver.d.ts +440 -301
- package/entity/BaseEntity.d.ts +120 -83
- package/entity/BaseEntity.js +43 -43
- package/entity/Collection.d.ts +212 -179
- package/entity/Collection.js +727 -721
- package/entity/EntityAssigner.d.ts +88 -77
- package/entity/EntityAssigner.js +231 -230
- package/entity/EntityFactory.d.ts +66 -54
- package/entity/EntityFactory.js +425 -383
- package/entity/EntityHelper.d.ts +34 -22
- package/entity/EntityHelper.js +280 -267
- package/entity/EntityIdentifier.d.ts +4 -4
- package/entity/EntityIdentifier.js +10 -10
- package/entity/EntityLoader.d.ts +98 -72
- package/entity/EntityLoader.js +753 -723
- package/entity/EntityRepository.d.ts +316 -201
- package/entity/EntityRepository.js +213 -213
- package/entity/PolymorphicRef.d.ts +5 -5
- package/entity/PolymorphicRef.js +10 -10
- package/entity/Reference.d.ts +126 -82
- package/entity/Reference.js +278 -274
- package/entity/WrappedEntity.d.ts +115 -72
- package/entity/WrappedEntity.js +168 -166
- package/entity/defineEntity.d.ts +1315 -636
- package/entity/defineEntity.js +527 -518
- package/entity/utils.d.ts +13 -3
- package/entity/utils.js +71 -73
- package/entity/validators.js +43 -43
- package/entity/wrap.js +8 -8
- package/enums.d.ts +258 -253
- package/enums.js +251 -252
- package/errors.d.ts +114 -72
- package/errors.js +350 -253
- package/events/EventManager.d.ts +26 -14
- package/events/EventManager.js +79 -77
- package/events/EventSubscriber.d.ts +29 -29
- package/events/TransactionEventBroadcaster.d.ts +15 -8
- package/events/TransactionEventBroadcaster.js +14 -14
- package/exceptions.d.ts +23 -40
- package/exceptions.js +35 -52
- package/hydration/Hydrator.d.ts +42 -17
- package/hydration/Hydrator.js +43 -43
- package/hydration/ObjectHydrator.d.ts +50 -17
- package/hydration/ObjectHydrator.js +481 -416
- package/index.d.ts +116 -2
- package/index.js +10 -1
- package/logging/DefaultLogger.d.ts +34 -32
- package/logging/DefaultLogger.js +86 -86
- package/logging/Logger.d.ts +41 -41
- package/logging/SimpleLogger.d.ts +13 -11
- package/logging/SimpleLogger.js +22 -22
- package/logging/colors.d.ts +6 -6
- package/logging/colors.js +11 -10
- package/logging/inspect.js +7 -7
- package/metadata/EntitySchema.d.ts +211 -127
- package/metadata/EntitySchema.js +397 -398
- package/metadata/MetadataDiscovery.d.ts +114 -114
- package/metadata/MetadataDiscovery.js +1951 -1863
- package/metadata/MetadataProvider.d.ts +24 -21
- package/metadata/MetadataProvider.js +82 -84
- package/metadata/MetadataStorage.d.ts +38 -32
- package/metadata/MetadataStorage.js +118 -118
- package/metadata/MetadataValidator.d.ts +39 -39
- package/metadata/MetadataValidator.js +381 -338
- package/metadata/discover-entities.d.ts +5 -2
- package/metadata/discover-entities.js +35 -27
- package/metadata/types.d.ts +615 -531
- package/naming-strategy/AbstractNamingStrategy.d.ts +54 -39
- package/naming-strategy/AbstractNamingStrategy.js +90 -85
- package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
- package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
- package/naming-strategy/MongoNamingStrategy.d.ts +6 -6
- package/naming-strategy/MongoNamingStrategy.js +18 -18
- package/naming-strategy/NamingStrategy.d.ts +109 -99
- package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
- package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
- package/not-supported.js +7 -4
- package/package.json +1 -1
- package/platforms/ExceptionConverter.d.ts +1 -1
- package/platforms/ExceptionConverter.js +4 -4
- package/platforms/Platform.d.ts +310 -299
- package/platforms/Platform.js +663 -636
- package/serialization/EntitySerializer.d.ts +49 -26
- package/serialization/EntitySerializer.js +224 -218
- package/serialization/EntityTransformer.d.ts +10 -6
- package/serialization/EntityTransformer.js +219 -217
- package/serialization/SerializationContext.d.ts +27 -23
- package/serialization/SerializationContext.js +105 -105
- package/types/ArrayType.d.ts +8 -8
- package/types/ArrayType.js +33 -33
- package/types/BigIntType.d.ts +17 -10
- package/types/BigIntType.js +37 -37
- package/types/BlobType.d.ts +3 -3
- package/types/BlobType.js +13 -13
- package/types/BooleanType.d.ts +4 -4
- package/types/BooleanType.js +12 -12
- package/types/CharacterType.d.ts +2 -2
- package/types/CharacterType.js +6 -6
- package/types/DateTimeType.d.ts +5 -5
- package/types/DateTimeType.js +15 -15
- package/types/DateType.d.ts +5 -5
- package/types/DateType.js +15 -15
- package/types/DecimalType.d.ts +7 -7
- package/types/DecimalType.js +26 -26
- package/types/DoubleType.d.ts +3 -3
- package/types/DoubleType.js +12 -12
- package/types/EnumArrayType.d.ts +5 -5
- package/types/EnumArrayType.js +24 -24
- package/types/EnumType.d.ts +3 -3
- package/types/EnumType.js +11 -11
- package/types/FloatType.d.ts +3 -3
- package/types/FloatType.js +9 -9
- package/types/IntegerType.d.ts +3 -3
- package/types/IntegerType.js +9 -9
- package/types/IntervalType.d.ts +4 -4
- package/types/IntervalType.js +12 -12
- package/types/JsonType.d.ts +8 -8
- package/types/JsonType.js +32 -32
- package/types/MediumIntType.d.ts +1 -1
- package/types/MediumIntType.js +3 -3
- package/types/SmallIntType.d.ts +3 -3
- package/types/SmallIntType.js +9 -9
- package/types/StringType.d.ts +4 -4
- package/types/StringType.js +12 -12
- package/types/TextType.d.ts +3 -3
- package/types/TextType.js +9 -9
- package/types/TimeType.d.ts +5 -5
- package/types/TimeType.js +17 -17
- package/types/TinyIntType.d.ts +3 -3
- package/types/TinyIntType.js +10 -10
- package/types/Type.d.ts +83 -79
- package/types/Type.js +82 -82
- package/types/Uint8ArrayType.d.ts +4 -4
- package/types/Uint8ArrayType.js +21 -21
- package/types/UnknownType.d.ts +4 -4
- package/types/UnknownType.js +12 -12
- package/types/UuidType.d.ts +5 -5
- package/types/UuidType.js +19 -19
- package/types/index.d.ts +75 -49
- package/types/index.js +52 -26
- package/typings.d.ts +1250 -737
- package/typings.js +244 -231
- package/unit-of-work/ChangeSet.d.ts +26 -26
- package/unit-of-work/ChangeSet.js +56 -56
- package/unit-of-work/ChangeSetComputer.d.ts +12 -12
- package/unit-of-work/ChangeSetComputer.js +178 -170
- package/unit-of-work/ChangeSetPersister.d.ts +63 -44
- package/unit-of-work/ChangeSetPersister.js +442 -421
- package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
- package/unit-of-work/CommitOrderCalculator.js +89 -88
- package/unit-of-work/IdentityMap.d.ts +31 -31
- package/unit-of-work/IdentityMap.js +105 -105
- package/unit-of-work/UnitOfWork.d.ts +181 -141
- package/unit-of-work/UnitOfWork.js +1200 -1183
- package/utils/AbstractMigrator.d.ts +111 -91
- package/utils/AbstractMigrator.js +275 -275
- package/utils/AbstractSchemaGenerator.d.ts +43 -34
- package/utils/AbstractSchemaGenerator.js +121 -122
- package/utils/AsyncContext.d.ts +3 -3
- package/utils/AsyncContext.js +34 -35
- package/utils/Configuration.d.ts +852 -808
- package/utils/Configuration.js +359 -344
- package/utils/Cursor.d.ts +40 -22
- package/utils/Cursor.js +135 -127
- package/utils/DataloaderUtils.d.ts +58 -43
- package/utils/DataloaderUtils.js +203 -198
- package/utils/EntityComparator.d.ts +98 -81
- package/utils/EntityComparator.js +828 -728
- package/utils/NullHighlighter.d.ts +1 -1
- package/utils/NullHighlighter.js +3 -3
- package/utils/QueryHelper.d.ts +79 -51
- package/utils/QueryHelper.js +372 -361
- package/utils/RawQueryFragment.d.ts +50 -34
- package/utils/RawQueryFragment.js +107 -105
- package/utils/RequestContext.d.ts +32 -32
- package/utils/RequestContext.js +52 -53
- package/utils/TransactionContext.d.ts +16 -16
- package/utils/TransactionContext.js +27 -27
- package/utils/TransactionManager.d.ts +58 -58
- package/utils/TransactionManager.js +199 -197
- package/utils/Utils.d.ts +204 -145
- package/utils/Utils.js +812 -810
- package/utils/clone.js +104 -113
- package/utils/env-vars.js +90 -88
- package/utils/fs-utils.d.ts +15 -15
- package/utils/fs-utils.js +180 -181
- package/utils/upsert-utils.d.ts +20 -5
- package/utils/upsert-utils.js +114 -116
|
@@ -2,43 +2,58 @@ import type { NamingStrategy } from './NamingStrategy.js';
|
|
|
2
2
|
import { type ReferenceKind } from '../enums.js';
|
|
3
3
|
/** Base class for naming strategies, providing default implementations for common naming conventions. */
|
|
4
4
|
export declare abstract class AbstractNamingStrategy implements NamingStrategy {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
getClassName(file: string, separator?: string): string;
|
|
6
|
+
classToMigrationName(timestamp: string, customMigrationName?: string): string;
|
|
7
|
+
indexName(
|
|
8
|
+
tableName: string,
|
|
9
|
+
columns: string[],
|
|
10
|
+
type: 'primary' | 'foreign' | 'unique' | 'index' | 'sequence' | 'check' | 'default',
|
|
11
|
+
): string;
|
|
12
|
+
/**
|
|
13
|
+
* @inheritDoc
|
|
14
|
+
*/
|
|
15
|
+
getEntityName(tableName: string, schemaName?: string): string;
|
|
16
|
+
columnNameToProperty(columnName: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* @inheritDoc
|
|
19
|
+
*/
|
|
20
|
+
getEnumClassName(columnName: string, tableName: string | undefined, schemaName?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
getEnumTypeName(columnName: string, tableName: string | undefined, schemaName?: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* @inheritDoc
|
|
27
|
+
*/
|
|
28
|
+
enumValueToEnumProperty(enumValue: string, columnName: string, tableName: string, schemaName?: string): string;
|
|
29
|
+
aliasName(entityName: string, index: number): string;
|
|
30
|
+
/**
|
|
31
|
+
* @inheritDoc
|
|
32
|
+
*/
|
|
33
|
+
inverseSideName(entityName: string, propertyName: string, kind: ReferenceKind): string;
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
manyToManyPropertyName(
|
|
38
|
+
ownerEntityName: string,
|
|
39
|
+
targetEntityName: string,
|
|
40
|
+
pivotTableName: string,
|
|
41
|
+
ownerTableName: string,
|
|
42
|
+
schemaName?: string,
|
|
43
|
+
): string;
|
|
44
|
+
/**
|
|
45
|
+
* @inheritDoc
|
|
46
|
+
*/
|
|
47
|
+
discriminatorColumnName(baseName: string): string;
|
|
48
|
+
abstract classToTableName(entityName: string, tableName?: string): string;
|
|
49
|
+
abstract joinColumnName(propertyName: string): string;
|
|
50
|
+
abstract joinKeyColumnName(
|
|
51
|
+
entityName: string,
|
|
52
|
+
referencedColumnName?: string,
|
|
53
|
+
composite?: boolean,
|
|
54
|
+
tableName?: string,
|
|
55
|
+
): string;
|
|
56
|
+
abstract joinTableName(sourceEntity: string, targetEntity: string, propertyName?: string, tableName?: string): string;
|
|
57
|
+
abstract propertyToColumnName(propertyName: string, object?: boolean): string;
|
|
58
|
+
abstract referenceColumnName(): string;
|
|
44
59
|
}
|
|
@@ -2,97 +2,102 @@ import { PopulatePath } from '../enums.js';
|
|
|
2
2
|
const populatePathMembers = Object.values(PopulatePath);
|
|
3
3
|
/** Base class for naming strategies, providing default implementations for common naming conventions. */
|
|
4
4
|
export class AbstractNamingStrategy {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
getClassName(file, separator = '-') {
|
|
6
|
+
const name = file.split('.')[0];
|
|
7
|
+
const ret = name.replace(new RegExp(`(?:${separator})+(\\w)`, 'ug'), (_, p1) => p1.toUpperCase());
|
|
8
|
+
return ret.charAt(0).toUpperCase() + ret.slice(1);
|
|
9
|
+
}
|
|
10
|
+
classToMigrationName(timestamp, customMigrationName) {
|
|
11
|
+
let migrationName = `Migration${timestamp}`;
|
|
12
|
+
if (customMigrationName) {
|
|
13
|
+
migrationName += `_${customMigrationName}`;
|
|
9
14
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
return migrationName;
|
|
16
|
+
}
|
|
17
|
+
indexName(tableName, columns, type) {
|
|
18
|
+
/* v8 ignore next */
|
|
19
|
+
if (tableName.includes('.')) {
|
|
20
|
+
tableName = tableName.substring(tableName.indexOf('.') + 1);
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (tableName.includes('.')) {
|
|
20
|
-
tableName = tableName.substring(tableName.indexOf('.') + 1);
|
|
21
|
-
}
|
|
22
|
-
if (type === 'primary') {
|
|
23
|
-
return `${tableName}_pkey`;
|
|
24
|
-
}
|
|
25
|
-
columns = columns.map(col => col.replace(/\./g, '_'));
|
|
26
|
-
if (type === 'sequence') {
|
|
27
|
-
return `${tableName}_${columns.join('_')}_seq`;
|
|
28
|
-
}
|
|
29
|
-
if (columns.length > 0) {
|
|
30
|
-
return `${tableName}_${columns.join('_')}_${type}`;
|
|
31
|
-
}
|
|
32
|
-
return `${tableName}_${type}`;
|
|
22
|
+
if (type === 'primary') {
|
|
23
|
+
return `${tableName}_pkey`;
|
|
33
24
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
getEntityName(tableName, schemaName) {
|
|
38
|
-
const name = /^[^$_\p{ID_Start}]/u.exec(tableName) ? `E_${tableName}` : tableName;
|
|
39
|
-
return this.getClassName(name.replaceAll(/[^\u200C\u200D\p{ID_Continue}]+/gu, r => r
|
|
40
|
-
.split('')
|
|
41
|
-
.map(c => `$${c.codePointAt(0)}`)
|
|
42
|
-
.join('')), '_');
|
|
25
|
+
columns = columns.map(col => col.replace(/\./g, '_'));
|
|
26
|
+
if (type === 'sequence') {
|
|
27
|
+
return `${tableName}_${columns.join('_')}_seq`;
|
|
43
28
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (populatePathMembers.includes(propName.replace(/^\${2,}/u, '$$').replace(/^\$\*$/u, '*'))) {
|
|
47
|
-
return `$${propName}`;
|
|
48
|
-
}
|
|
49
|
-
return propName;
|
|
29
|
+
if (columns.length > 0) {
|
|
30
|
+
return `${tableName}_${columns.join('_')}_${type}`;
|
|
50
31
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
32
|
+
return `${tableName}_${type}`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
getEntityName(tableName, schemaName) {
|
|
38
|
+
const name = /^[^$_\p{ID_Start}]/u.exec(tableName) ? `E_${tableName}` : tableName;
|
|
39
|
+
return this.getClassName(
|
|
40
|
+
name.replaceAll(/[^\u200C\u200D\p{ID_Continue}]+/gu, r =>
|
|
41
|
+
r
|
|
42
|
+
.split('')
|
|
43
|
+
.map(c => `$${c.codePointAt(0)}`)
|
|
44
|
+
.join(''),
|
|
45
|
+
),
|
|
46
|
+
'_',
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
columnNameToProperty(columnName) {
|
|
50
|
+
const propName = columnName.replace(/[_\- ]+(\w)/gu, (_, p1) => p1.toUpperCase());
|
|
51
|
+
if (populatePathMembers.includes(propName.replace(/^\${2,}/u, '$$').replace(/^\$\*$/u, '*'))) {
|
|
52
|
+
return `$${propName}`;
|
|
56
53
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
return propName;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @inheritDoc
|
|
58
|
+
*/
|
|
59
|
+
getEnumClassName(columnName, tableName, schemaName) {
|
|
60
|
+
return this.getEntityName(tableName ? `${tableName}_${columnName}` : columnName, schemaName);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @inheritDoc
|
|
64
|
+
*/
|
|
65
|
+
getEnumTypeName(columnName, tableName, schemaName) {
|
|
66
|
+
return 'T' + this.getEnumClassName(columnName, tableName, schemaName);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @inheritDoc
|
|
70
|
+
*/
|
|
71
|
+
enumValueToEnumProperty(enumValue, columnName, tableName, schemaName) {
|
|
72
|
+
return enumValue.toUpperCase();
|
|
73
|
+
}
|
|
74
|
+
aliasName(entityName, index) {
|
|
75
|
+
// Take only the first letter of the prefix to keep character counts down since some engines have character limits
|
|
76
|
+
return entityName.charAt(0).toLowerCase() + index;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @inheritDoc
|
|
80
|
+
*/
|
|
81
|
+
inverseSideName(entityName, propertyName, kind) {
|
|
82
|
+
if (kind === 'm:n') {
|
|
83
|
+
return propertyName + 'Inverse';
|
|
62
84
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
enumValueToEnumProperty(enumValue, columnName, tableName, schemaName) {
|
|
67
|
-
return enumValue.toUpperCase();
|
|
68
|
-
}
|
|
69
|
-
aliasName(entityName, index) {
|
|
70
|
-
// Take only the first letter of the prefix to keep character counts down since some engines have character limits
|
|
71
|
-
return entityName.charAt(0).toLowerCase() + index;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @inheritDoc
|
|
75
|
-
*/
|
|
76
|
-
inverseSideName(entityName, propertyName, kind) {
|
|
77
|
-
if (kind === 'm:n') {
|
|
78
|
-
return propertyName + 'Inverse';
|
|
79
|
-
}
|
|
80
|
-
const suffix = kind === '1:m' && !entityName.endsWith('Collection') ? 'Collection' : '';
|
|
81
|
-
if (entityName.length === 1) {
|
|
82
|
-
return entityName[0].toLowerCase() + suffix;
|
|
83
|
-
}
|
|
84
|
-
return entityName[0].toLowerCase() + entityName.substring(1) + suffix;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* @inheritDoc
|
|
88
|
-
*/
|
|
89
|
-
manyToManyPropertyName(ownerEntityName, targetEntityName, pivotTableName, ownerTableName, schemaName) {
|
|
90
|
-
return this.columnNameToProperty(pivotTableName.replace(new RegExp('^' + ownerTableName + '_'), ''));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* @inheritDoc
|
|
94
|
-
*/
|
|
95
|
-
discriminatorColumnName(baseName) {
|
|
96
|
-
return this.propertyToColumnName(baseName + 'Type');
|
|
85
|
+
const suffix = kind === '1:m' && !entityName.endsWith('Collection') ? 'Collection' : '';
|
|
86
|
+
if (entityName.length === 1) {
|
|
87
|
+
return entityName[0].toLowerCase() + suffix;
|
|
97
88
|
}
|
|
89
|
+
return entityName[0].toLowerCase() + entityName.substring(1) + suffix;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @inheritDoc
|
|
93
|
+
*/
|
|
94
|
+
manyToManyPropertyName(ownerEntityName, targetEntityName, pivotTableName, ownerTableName, schemaName) {
|
|
95
|
+
return this.columnNameToProperty(pivotTableName.replace(new RegExp('^' + ownerTableName + '_'), ''));
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @inheritDoc
|
|
99
|
+
*/
|
|
100
|
+
discriminatorColumnName(baseName) {
|
|
101
|
+
return this.propertyToColumnName(baseName + 'Type');
|
|
102
|
+
}
|
|
98
103
|
}
|
|
@@ -3,10 +3,10 @@ import { AbstractNamingStrategy } from './AbstractNamingStrategy.js';
|
|
|
3
3
|
* This strategy keeps original entity/property names for table/column.
|
|
4
4
|
*/
|
|
5
5
|
export declare class EntityCaseNamingStrategy extends AbstractNamingStrategy {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
classToTableName(entityName: string, tableName?: string): string;
|
|
7
|
+
joinColumnName(propertyName: string): string;
|
|
8
|
+
joinKeyColumnName(entityName: string, referencedColumnName?: string, composite?: boolean, tableName?: string): string;
|
|
9
|
+
joinTableName(sourceEntity: string, targetEntity: string, propertyName: string, tableName?: string): string;
|
|
10
|
+
propertyToColumnName(propertyName: string): string;
|
|
11
|
+
referenceColumnName(): string;
|
|
12
12
|
}
|
|
@@ -3,27 +3,27 @@ import { AbstractNamingStrategy } from './AbstractNamingStrategy.js';
|
|
|
3
3
|
* This strategy keeps original entity/property names for table/column.
|
|
4
4
|
*/
|
|
5
5
|
export class EntityCaseNamingStrategy extends AbstractNamingStrategy {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
return name;
|
|
19
|
-
}
|
|
20
|
-
joinTableName(sourceEntity, targetEntity, propertyName, tableName) {
|
|
21
|
-
return this.classToTableName(sourceEntity, tableName) + '_' + this.propertyToColumnName(propertyName);
|
|
22
|
-
}
|
|
23
|
-
propertyToColumnName(propertyName) {
|
|
24
|
-
return propertyName;
|
|
25
|
-
}
|
|
26
|
-
referenceColumnName() {
|
|
27
|
-
return 'id';
|
|
6
|
+
classToTableName(entityName, tableName) {
|
|
7
|
+
return tableName ?? entityName;
|
|
8
|
+
}
|
|
9
|
+
joinColumnName(propertyName) {
|
|
10
|
+
return propertyName;
|
|
11
|
+
}
|
|
12
|
+
joinKeyColumnName(entityName, referencedColumnName, composite, tableName) {
|
|
13
|
+
entityName = this.classToTableName(entityName, tableName);
|
|
14
|
+
const name = entityName.substring(0, 1).toLowerCase() + entityName.substring(1);
|
|
15
|
+
if (composite && referencedColumnName) {
|
|
16
|
+
return name + '_' + referencedColumnName;
|
|
28
17
|
}
|
|
18
|
+
return name;
|
|
19
|
+
}
|
|
20
|
+
joinTableName(sourceEntity, targetEntity, propertyName, tableName) {
|
|
21
|
+
return this.classToTableName(sourceEntity, tableName) + '_' + this.propertyToColumnName(propertyName);
|
|
22
|
+
}
|
|
23
|
+
propertyToColumnName(propertyName) {
|
|
24
|
+
return propertyName;
|
|
25
|
+
}
|
|
26
|
+
referenceColumnName() {
|
|
27
|
+
return 'id';
|
|
28
|
+
}
|
|
29
29
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AbstractNamingStrategy } from './AbstractNamingStrategy.js';
|
|
2
2
|
/** Naming strategy for MongoDB that uses camelCase property names and hyphenated collection names. */
|
|
3
3
|
export declare class MongoNamingStrategy extends AbstractNamingStrategy {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
classToTableName(entityName: string, tableName?: string): string;
|
|
5
|
+
joinColumnName(propertyName: string): string;
|
|
6
|
+
joinKeyColumnName(entityName: string, referencedColumnName?: string, composite?: boolean, tableName?: string): string;
|
|
7
|
+
joinTableName(sourceEntity: string, targetEntity: string, propertyName: string, tableName?: string): string;
|
|
8
|
+
propertyToColumnName(propertyName: string): string;
|
|
9
|
+
referenceColumnName(): string;
|
|
10
10
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { AbstractNamingStrategy } from './AbstractNamingStrategy.js';
|
|
2
2
|
/** Naming strategy for MongoDB that uses camelCase property names and hyphenated collection names. */
|
|
3
3
|
export class MongoNamingStrategy extends AbstractNamingStrategy {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
4
|
+
classToTableName(entityName, tableName) {
|
|
5
|
+
return tableName ?? entityName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
6
|
+
}
|
|
7
|
+
joinColumnName(propertyName) {
|
|
8
|
+
return propertyName;
|
|
9
|
+
}
|
|
10
|
+
joinKeyColumnName(entityName, referencedColumnName, composite, tableName) {
|
|
11
|
+
return tableName ?? entityName;
|
|
12
|
+
}
|
|
13
|
+
joinTableName(sourceEntity, targetEntity, propertyName, tableName) {
|
|
14
|
+
return this.classToTableName(sourceEntity, tableName) + '_' + this.propertyToColumnName(propertyName);
|
|
15
|
+
}
|
|
16
|
+
propertyToColumnName(propertyName) {
|
|
17
|
+
return propertyName;
|
|
18
|
+
}
|
|
19
|
+
referenceColumnName() {
|
|
20
|
+
return '_id';
|
|
21
|
+
}
|
|
22
22
|
}
|
|
@@ -1,102 +1,112 @@
|
|
|
1
1
|
import type { ReferenceKind } from '../enums.js';
|
|
2
2
|
export interface NamingStrategy {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Return a name of the class based on its file name
|
|
5
|
+
*/
|
|
6
|
+
getClassName(file: string, separator?: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Return a table name for an entity class
|
|
9
|
+
*/
|
|
10
|
+
classToTableName(entityName: string, tableName?: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Return a migration name. This name should allow ordering.
|
|
13
|
+
*/
|
|
14
|
+
classToMigrationName(timestamp: string, customMigrationName?: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Return a column name for a property
|
|
17
|
+
*/
|
|
18
|
+
propertyToColumnName(propertyName: string, object?: boolean): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get an enum class name.
|
|
21
|
+
*
|
|
22
|
+
* @param columnName The column name which has the enum.
|
|
23
|
+
* @param tableName The table name of the column.
|
|
24
|
+
* @param schemaName The schema name of the column.
|
|
25
|
+
*
|
|
26
|
+
* @return A new class name that will be used for the enum.
|
|
27
|
+
*/
|
|
28
|
+
getEnumClassName(columnName: string, tableName: string | undefined, schemaName?: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Get an enum type name. Used with `enumType: 'dictionary'` and `enumType: 'union-type'` entity generator option.
|
|
31
|
+
*
|
|
32
|
+
* @param columnName The column name which has the enum.
|
|
33
|
+
* @param tableName The table name of the column.
|
|
34
|
+
* @param schemaName The schema name of the column.
|
|
35
|
+
*
|
|
36
|
+
* @return A new type name that will be used for the enum.
|
|
37
|
+
*/
|
|
38
|
+
getEnumTypeName(columnName: string, tableName: string | undefined, schemaName?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Get an enum option name for a given enum value.
|
|
41
|
+
*
|
|
42
|
+
* @param enumValue The enum value to generate a name for.
|
|
43
|
+
* @param columnName The column name which has the enum.
|
|
44
|
+
* @param tableName The table name of the column.
|
|
45
|
+
* @param schemaName The schema name of the column.
|
|
46
|
+
*
|
|
47
|
+
* @return The name of the enum property that will hold the value.
|
|
48
|
+
*/
|
|
49
|
+
enumValueToEnumProperty(enumValue: string, columnName: string, tableName: string, schemaName?: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Return a name of the entity class based on database table name (used in `EntityGenerator`).
|
|
52
|
+
* Default implementation ignores the schema name.
|
|
53
|
+
*/
|
|
54
|
+
getEntityName(tableName: string, schemaName?: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Return a property for a column name (used in `EntityGenerator`).
|
|
57
|
+
*/
|
|
58
|
+
columnNameToProperty(columnName: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Return the default reference column name
|
|
61
|
+
*/
|
|
62
|
+
referenceColumnName(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Return a join column name for a property
|
|
65
|
+
*/
|
|
66
|
+
joinColumnName(propertyName: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Return a join table name
|
|
69
|
+
*/
|
|
70
|
+
joinTableName(sourceEntity: string, targetEntity: string, propertyName: string, tableName?: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Return the foreign key column name for the given parameters
|
|
73
|
+
*/
|
|
74
|
+
joinKeyColumnName(entityName: string, referencedColumnName?: string, composite?: boolean, tableName?: string): string;
|
|
75
|
+
/**
|
|
76
|
+
* Returns key/constraint name for the given type. Some drivers might not support all the types (e.g. mysql and sqlite enforce the PK name).
|
|
77
|
+
*/
|
|
78
|
+
indexName(
|
|
79
|
+
tableName: string,
|
|
80
|
+
columns: string[],
|
|
81
|
+
type: 'primary' | 'foreign' | 'unique' | 'index' | 'sequence' | 'check' | 'default',
|
|
82
|
+
): string;
|
|
83
|
+
/**
|
|
84
|
+
* Returns alias name for given entity. The alias needs to be unique across the query, which is by default
|
|
85
|
+
* ensured via appended index parameter. It is optional to use it as long as you ensure it will be unique.
|
|
86
|
+
*/
|
|
87
|
+
aliasName(entityName: string, index: number): string;
|
|
88
|
+
/**
|
|
89
|
+
* Returns the name of the inverse side property. Used in the `EntityGenerator` with `bidirectionalRelations` option.
|
|
90
|
+
*/
|
|
91
|
+
inverseSideName(entityName: string, propertyName: string, kind: ReferenceKind): string;
|
|
92
|
+
/**
|
|
93
|
+
* Return a property name for a many-to-many relation (used in `EntityGenerator`).
|
|
94
|
+
*
|
|
95
|
+
* @param ownerEntityName - The owner entity class name
|
|
96
|
+
* @param targetEntityName - The target entity class name
|
|
97
|
+
* @param pivotTableName - The pivot table name
|
|
98
|
+
* @param ownerTableName - The owner table name
|
|
99
|
+
* @param schemaName - The schema name (if any)
|
|
100
|
+
*/
|
|
101
|
+
manyToManyPropertyName(
|
|
102
|
+
ownerEntityName: string,
|
|
103
|
+
targetEntityName: string,
|
|
104
|
+
pivotTableName: string,
|
|
105
|
+
ownerTableName: string,
|
|
106
|
+
schemaName?: string,
|
|
107
|
+
): string;
|
|
108
|
+
/**
|
|
109
|
+
* Returns the discriminator column name for polymorphic relations.
|
|
110
|
+
*/
|
|
111
|
+
discriminatorColumnName(baseName: string): string;
|
|
102
112
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AbstractNamingStrategy } from './AbstractNamingStrategy.js';
|
|
2
2
|
/** Naming strategy that converts camelCase names to snake_case for table and column names. */
|
|
3
3
|
export declare class UnderscoreNamingStrategy extends AbstractNamingStrategy {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
classToTableName(entityName: string, tableName?: string): string;
|
|
5
|
+
joinColumnName(propertyName: string): string;
|
|
6
|
+
joinKeyColumnName(entityName: string, referencedColumnName?: string, composite?: boolean, tableName?: string): string;
|
|
7
|
+
joinTableName(sourceEntity: string, targetEntity: string, propertyName: string, tableName?: string): string;
|
|
8
|
+
propertyToColumnName(propertyName: string, object?: boolean): string;
|
|
9
|
+
referenceColumnName(): string;
|
|
10
|
+
private underscore;
|
|
11
11
|
}
|