@mikro-orm/core 7.0.4-dev.8 → 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.
Files changed (206) hide show
  1. package/EntityManager.d.ts +884 -583
  2. package/EntityManager.js +1922 -1895
  3. package/MikroORM.d.ts +103 -74
  4. package/MikroORM.js +178 -179
  5. package/README.md +1 -1
  6. package/cache/CacheAdapter.d.ts +36 -36
  7. package/cache/FileCacheAdapter.d.ts +30 -24
  8. package/cache/FileCacheAdapter.js +80 -78
  9. package/cache/GeneratedCacheAdapter.d.ts +18 -20
  10. package/cache/GeneratedCacheAdapter.js +30 -30
  11. package/cache/MemoryCacheAdapter.d.ts +18 -20
  12. package/cache/MemoryCacheAdapter.js +35 -36
  13. package/cache/NullCacheAdapter.d.ts +16 -16
  14. package/cache/NullCacheAdapter.js +24 -24
  15. package/connections/Connection.d.ts +95 -84
  16. package/connections/Connection.js +165 -168
  17. package/drivers/DatabaseDriver.d.ts +186 -80
  18. package/drivers/DatabaseDriver.js +450 -443
  19. package/drivers/IDatabaseDriver.d.ts +440 -301
  20. package/entity/BaseEntity.d.ts +120 -83
  21. package/entity/BaseEntity.js +43 -43
  22. package/entity/Collection.d.ts +212 -179
  23. package/entity/Collection.js +727 -721
  24. package/entity/EntityAssigner.d.ts +88 -77
  25. package/entity/EntityAssigner.js +231 -230
  26. package/entity/EntityFactory.d.ts +66 -54
  27. package/entity/EntityFactory.js +425 -383
  28. package/entity/EntityHelper.d.ts +34 -22
  29. package/entity/EntityHelper.js +280 -267
  30. package/entity/EntityIdentifier.d.ts +4 -4
  31. package/entity/EntityIdentifier.js +10 -10
  32. package/entity/EntityLoader.d.ts +98 -72
  33. package/entity/EntityLoader.js +753 -723
  34. package/entity/EntityRepository.d.ts +316 -201
  35. package/entity/EntityRepository.js +213 -213
  36. package/entity/PolymorphicRef.d.ts +5 -5
  37. package/entity/PolymorphicRef.js +10 -10
  38. package/entity/Reference.d.ts +126 -82
  39. package/entity/Reference.js +278 -274
  40. package/entity/WrappedEntity.d.ts +115 -72
  41. package/entity/WrappedEntity.js +168 -166
  42. package/entity/defineEntity.d.ts +1315 -636
  43. package/entity/defineEntity.js +527 -518
  44. package/entity/utils.d.ts +13 -3
  45. package/entity/utils.js +71 -73
  46. package/entity/validators.js +43 -43
  47. package/entity/wrap.js +8 -8
  48. package/enums.d.ts +258 -253
  49. package/enums.js +251 -252
  50. package/errors.d.ts +114 -72
  51. package/errors.js +350 -253
  52. package/events/EventManager.d.ts +26 -14
  53. package/events/EventManager.js +79 -77
  54. package/events/EventSubscriber.d.ts +29 -29
  55. package/events/TransactionEventBroadcaster.d.ts +15 -8
  56. package/events/TransactionEventBroadcaster.js +14 -14
  57. package/exceptions.d.ts +23 -40
  58. package/exceptions.js +35 -52
  59. package/hydration/Hydrator.d.ts +42 -17
  60. package/hydration/Hydrator.js +43 -43
  61. package/hydration/ObjectHydrator.d.ts +50 -17
  62. package/hydration/ObjectHydrator.js +481 -416
  63. package/index.d.ts +116 -2
  64. package/index.js +10 -1
  65. package/logging/DefaultLogger.d.ts +34 -32
  66. package/logging/DefaultLogger.js +86 -86
  67. package/logging/Logger.d.ts +41 -41
  68. package/logging/SimpleLogger.d.ts +13 -11
  69. package/logging/SimpleLogger.js +22 -22
  70. package/logging/colors.d.ts +6 -6
  71. package/logging/colors.js +11 -10
  72. package/logging/inspect.js +7 -7
  73. package/metadata/EntitySchema.d.ts +211 -127
  74. package/metadata/EntitySchema.js +397 -398
  75. package/metadata/MetadataDiscovery.d.ts +114 -114
  76. package/metadata/MetadataDiscovery.js +1951 -1863
  77. package/metadata/MetadataProvider.d.ts +24 -21
  78. package/metadata/MetadataProvider.js +82 -84
  79. package/metadata/MetadataStorage.d.ts +38 -32
  80. package/metadata/MetadataStorage.js +118 -118
  81. package/metadata/MetadataValidator.d.ts +39 -39
  82. package/metadata/MetadataValidator.js +381 -338
  83. package/metadata/discover-entities.d.ts +5 -2
  84. package/metadata/discover-entities.js +35 -27
  85. package/metadata/types.d.ts +615 -531
  86. package/naming-strategy/AbstractNamingStrategy.d.ts +54 -39
  87. package/naming-strategy/AbstractNamingStrategy.js +90 -85
  88. package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
  89. package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
  90. package/naming-strategy/MongoNamingStrategy.d.ts +6 -6
  91. package/naming-strategy/MongoNamingStrategy.js +18 -18
  92. package/naming-strategy/NamingStrategy.d.ts +109 -99
  93. package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
  94. package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
  95. package/not-supported.js +7 -4
  96. package/package.json +1 -1
  97. package/platforms/ExceptionConverter.d.ts +1 -1
  98. package/platforms/ExceptionConverter.js +4 -4
  99. package/platforms/Platform.d.ts +310 -299
  100. package/platforms/Platform.js +663 -636
  101. package/serialization/EntitySerializer.d.ts +49 -26
  102. package/serialization/EntitySerializer.js +224 -218
  103. package/serialization/EntityTransformer.d.ts +10 -6
  104. package/serialization/EntityTransformer.js +219 -217
  105. package/serialization/SerializationContext.d.ts +27 -23
  106. package/serialization/SerializationContext.js +105 -105
  107. package/types/ArrayType.d.ts +8 -8
  108. package/types/ArrayType.js +33 -33
  109. package/types/BigIntType.d.ts +17 -10
  110. package/types/BigIntType.js +37 -37
  111. package/types/BlobType.d.ts +3 -3
  112. package/types/BlobType.js +13 -13
  113. package/types/BooleanType.d.ts +4 -4
  114. package/types/BooleanType.js +12 -12
  115. package/types/CharacterType.d.ts +2 -2
  116. package/types/CharacterType.js +6 -6
  117. package/types/DateTimeType.d.ts +5 -5
  118. package/types/DateTimeType.js +15 -15
  119. package/types/DateType.d.ts +5 -5
  120. package/types/DateType.js +15 -15
  121. package/types/DecimalType.d.ts +7 -7
  122. package/types/DecimalType.js +26 -26
  123. package/types/DoubleType.d.ts +3 -3
  124. package/types/DoubleType.js +12 -12
  125. package/types/EnumArrayType.d.ts +5 -5
  126. package/types/EnumArrayType.js +24 -24
  127. package/types/EnumType.d.ts +3 -3
  128. package/types/EnumType.js +11 -11
  129. package/types/FloatType.d.ts +3 -3
  130. package/types/FloatType.js +9 -9
  131. package/types/IntegerType.d.ts +3 -3
  132. package/types/IntegerType.js +9 -9
  133. package/types/IntervalType.d.ts +4 -4
  134. package/types/IntervalType.js +12 -12
  135. package/types/JsonType.d.ts +8 -8
  136. package/types/JsonType.js +32 -32
  137. package/types/MediumIntType.d.ts +1 -1
  138. package/types/MediumIntType.js +3 -3
  139. package/types/SmallIntType.d.ts +3 -3
  140. package/types/SmallIntType.js +9 -9
  141. package/types/StringType.d.ts +4 -4
  142. package/types/StringType.js +12 -12
  143. package/types/TextType.d.ts +3 -3
  144. package/types/TextType.js +9 -9
  145. package/types/TimeType.d.ts +5 -5
  146. package/types/TimeType.js +17 -17
  147. package/types/TinyIntType.d.ts +3 -3
  148. package/types/TinyIntType.js +10 -10
  149. package/types/Type.d.ts +83 -79
  150. package/types/Type.js +82 -82
  151. package/types/Uint8ArrayType.d.ts +4 -4
  152. package/types/Uint8ArrayType.js +21 -21
  153. package/types/UnknownType.d.ts +4 -4
  154. package/types/UnknownType.js +12 -12
  155. package/types/UuidType.d.ts +5 -5
  156. package/types/UuidType.js +19 -19
  157. package/types/index.d.ts +75 -49
  158. package/types/index.js +52 -26
  159. package/typings.d.ts +1250 -737
  160. package/typings.js +244 -231
  161. package/unit-of-work/ChangeSet.d.ts +26 -26
  162. package/unit-of-work/ChangeSet.js +56 -56
  163. package/unit-of-work/ChangeSetComputer.d.ts +12 -12
  164. package/unit-of-work/ChangeSetComputer.js +178 -170
  165. package/unit-of-work/ChangeSetPersister.d.ts +63 -44
  166. package/unit-of-work/ChangeSetPersister.js +442 -421
  167. package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
  168. package/unit-of-work/CommitOrderCalculator.js +89 -88
  169. package/unit-of-work/IdentityMap.d.ts +31 -31
  170. package/unit-of-work/IdentityMap.js +105 -105
  171. package/unit-of-work/UnitOfWork.d.ts +181 -141
  172. package/unit-of-work/UnitOfWork.js +1200 -1183
  173. package/utils/AbstractMigrator.d.ts +111 -91
  174. package/utils/AbstractMigrator.js +275 -275
  175. package/utils/AbstractSchemaGenerator.d.ts +43 -34
  176. package/utils/AbstractSchemaGenerator.js +121 -122
  177. package/utils/AsyncContext.d.ts +3 -3
  178. package/utils/AsyncContext.js +34 -35
  179. package/utils/Configuration.d.ts +852 -808
  180. package/utils/Configuration.js +359 -344
  181. package/utils/Cursor.d.ts +40 -22
  182. package/utils/Cursor.js +135 -127
  183. package/utils/DataloaderUtils.d.ts +58 -43
  184. package/utils/DataloaderUtils.js +203 -198
  185. package/utils/EntityComparator.d.ts +98 -81
  186. package/utils/EntityComparator.js +828 -728
  187. package/utils/NullHighlighter.d.ts +1 -1
  188. package/utils/NullHighlighter.js +3 -3
  189. package/utils/QueryHelper.d.ts +79 -51
  190. package/utils/QueryHelper.js +372 -361
  191. package/utils/RawQueryFragment.d.ts +50 -34
  192. package/utils/RawQueryFragment.js +107 -105
  193. package/utils/RequestContext.d.ts +32 -32
  194. package/utils/RequestContext.js +52 -53
  195. package/utils/TransactionContext.d.ts +16 -16
  196. package/utils/TransactionContext.js +27 -27
  197. package/utils/TransactionManager.d.ts +58 -58
  198. package/utils/TransactionManager.js +199 -197
  199. package/utils/Utils.d.ts +204 -145
  200. package/utils/Utils.js +812 -810
  201. package/utils/clone.js +104 -113
  202. package/utils/env-vars.js +90 -88
  203. package/utils/fs-utils.d.ts +15 -15
  204. package/utils/fs-utils.js +180 -181
  205. package/utils/upsert-utils.d.ts +20 -5
  206. 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
- getClassName(file: string, separator?: string): string;
6
- classToMigrationName(timestamp: string, customMigrationName?: string): string;
7
- indexName(tableName: string, columns: string[], type: 'primary' | 'foreign' | 'unique' | 'index' | 'sequence' | 'check' | 'default'): string;
8
- /**
9
- * @inheritDoc
10
- */
11
- getEntityName(tableName: string, schemaName?: string): string;
12
- columnNameToProperty(columnName: string): string;
13
- /**
14
- * @inheritDoc
15
- */
16
- getEnumClassName(columnName: string, tableName: string | undefined, schemaName?: string): string;
17
- /**
18
- * @inheritDoc
19
- */
20
- getEnumTypeName(columnName: string, tableName: string | undefined, schemaName?: string): string;
21
- /**
22
- * @inheritDoc
23
- */
24
- enumValueToEnumProperty(enumValue: string, columnName: string, tableName: string, schemaName?: string): string;
25
- aliasName(entityName: string, index: number): string;
26
- /**
27
- * @inheritDoc
28
- */
29
- inverseSideName(entityName: string, propertyName: string, kind: ReferenceKind): string;
30
- /**
31
- * @inheritDoc
32
- */
33
- manyToManyPropertyName(ownerEntityName: string, targetEntityName: string, pivotTableName: string, ownerTableName: string, schemaName?: string): string;
34
- /**
35
- * @inheritDoc
36
- */
37
- discriminatorColumnName(baseName: string): string;
38
- abstract classToTableName(entityName: string, tableName?: string): string;
39
- abstract joinColumnName(propertyName: string): string;
40
- abstract joinKeyColumnName(entityName: string, referencedColumnName?: string, composite?: boolean, tableName?: string): string;
41
- abstract joinTableName(sourceEntity: string, targetEntity: string, propertyName?: string, tableName?: string): string;
42
- abstract propertyToColumnName(propertyName: string, object?: boolean): string;
43
- abstract referenceColumnName(): string;
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
- 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);
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
- classToMigrationName(timestamp, customMigrationName) {
11
- let migrationName = `Migration${timestamp}`;
12
- if (customMigrationName) {
13
- migrationName += `_${customMigrationName}`;
14
- }
15
- return migrationName;
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
- indexName(tableName, columns, type) {
18
- /* v8 ignore next */
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
- * @inheritDoc
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
- columnNameToProperty(columnName) {
45
- const propName = columnName.replace(/[_\- ]+(\w)/gu, (_, p1) => p1.toUpperCase());
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
- * @inheritDoc
53
- */
54
- getEnumClassName(columnName, tableName, schemaName) {
55
- return this.getEntityName(tableName ? `${tableName}_${columnName}` : columnName, schemaName);
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
- * @inheritDoc
59
- */
60
- getEnumTypeName(columnName, tableName, schemaName) {
61
- return 'T' + this.getEnumClassName(columnName, tableName, schemaName);
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
- * @inheritDoc
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
- 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;
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
- 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;
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
- 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;
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
- 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
- }
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
- * 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(tableName: string, columns: string[], type: 'primary' | 'foreign' | 'unique' | 'index' | 'sequence' | 'check' | 'default'): string;
79
- /**
80
- * Returns alias name for given entity. The alias needs to be unique across the query, which is by default
81
- * ensured via appended index parameter. It is optional to use it as long as you ensure it will be unique.
82
- */
83
- aliasName(entityName: string, index: number): string;
84
- /**
85
- * Returns the name of the inverse side property. Used in the `EntityGenerator` with `bidirectionalRelations` option.
86
- */
87
- inverseSideName(entityName: string, propertyName: string, kind: ReferenceKind): string;
88
- /**
89
- * Return a property name for a many-to-many relation (used in `EntityGenerator`).
90
- *
91
- * @param ownerEntityName - The owner entity class name
92
- * @param targetEntityName - The target entity class name
93
- * @param pivotTableName - The pivot table name
94
- * @param ownerTableName - The owner table name
95
- * @param schemaName - The schema name (if any)
96
- */
97
- manyToManyPropertyName(ownerEntityName: string, targetEntityName: string, pivotTableName: string, ownerTableName: string, schemaName?: string): string;
98
- /**
99
- * Returns the discriminator column name for polymorphic relations.
100
- */
101
- discriminatorColumnName(baseName: string): string;
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
- 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;
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
  }