@mikro-orm/core 7.0.4 → 7.0.5-dev.0

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 +583 -884
  2. package/EntityManager.js +1895 -1922
  3. package/MikroORM.d.ts +74 -103
  4. package/MikroORM.js +179 -178
  5. package/README.md +1 -1
  6. package/cache/CacheAdapter.d.ts +36 -36
  7. package/cache/FileCacheAdapter.d.ts +24 -30
  8. package/cache/FileCacheAdapter.js +78 -80
  9. package/cache/GeneratedCacheAdapter.d.ts +20 -18
  10. package/cache/GeneratedCacheAdapter.js +30 -30
  11. package/cache/MemoryCacheAdapter.d.ts +20 -18
  12. package/cache/MemoryCacheAdapter.js +36 -35
  13. package/cache/NullCacheAdapter.d.ts +16 -16
  14. package/cache/NullCacheAdapter.js +24 -24
  15. package/connections/Connection.d.ts +84 -95
  16. package/connections/Connection.js +168 -165
  17. package/drivers/DatabaseDriver.d.ts +80 -186
  18. package/drivers/DatabaseDriver.js +443 -450
  19. package/drivers/IDatabaseDriver.d.ts +301 -440
  20. package/entity/BaseEntity.d.ts +83 -120
  21. package/entity/BaseEntity.js +43 -43
  22. package/entity/Collection.d.ts +179 -212
  23. package/entity/Collection.js +721 -727
  24. package/entity/EntityAssigner.d.ts +77 -88
  25. package/entity/EntityAssigner.js +230 -231
  26. package/entity/EntityFactory.d.ts +54 -66
  27. package/entity/EntityFactory.js +383 -425
  28. package/entity/EntityHelper.d.ts +22 -34
  29. package/entity/EntityHelper.js +267 -280
  30. package/entity/EntityIdentifier.d.ts +4 -4
  31. package/entity/EntityIdentifier.js +10 -10
  32. package/entity/EntityLoader.d.ts +72 -98
  33. package/entity/EntityLoader.js +723 -753
  34. package/entity/EntityRepository.d.ts +201 -316
  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 +82 -126
  39. package/entity/Reference.js +274 -278
  40. package/entity/WrappedEntity.d.ts +72 -115
  41. package/entity/WrappedEntity.js +166 -168
  42. package/entity/defineEntity.d.ts +636 -1315
  43. package/entity/defineEntity.js +518 -527
  44. package/entity/utils.d.ts +3 -13
  45. package/entity/utils.js +73 -71
  46. package/entity/validators.js +43 -43
  47. package/entity/wrap.js +8 -8
  48. package/enums.d.ts +253 -258
  49. package/enums.js +252 -251
  50. package/errors.d.ts +72 -114
  51. package/errors.js +253 -350
  52. package/events/EventManager.d.ts +14 -26
  53. package/events/EventManager.js +77 -79
  54. package/events/EventSubscriber.d.ts +29 -29
  55. package/events/TransactionEventBroadcaster.d.ts +8 -15
  56. package/events/TransactionEventBroadcaster.js +14 -14
  57. package/exceptions.d.ts +40 -23
  58. package/exceptions.js +52 -35
  59. package/hydration/Hydrator.d.ts +17 -42
  60. package/hydration/Hydrator.js +43 -43
  61. package/hydration/ObjectHydrator.d.ts +17 -50
  62. package/hydration/ObjectHydrator.js +416 -481
  63. package/index.d.ts +2 -116
  64. package/index.js +1 -10
  65. package/logging/DefaultLogger.d.ts +32 -34
  66. package/logging/DefaultLogger.js +86 -86
  67. package/logging/Logger.d.ts +41 -41
  68. package/logging/SimpleLogger.d.ts +11 -13
  69. package/logging/SimpleLogger.js +22 -22
  70. package/logging/colors.d.ts +6 -6
  71. package/logging/colors.js +10 -11
  72. package/logging/inspect.js +7 -7
  73. package/metadata/EntitySchema.d.ts +127 -211
  74. package/metadata/EntitySchema.js +398 -397
  75. package/metadata/MetadataDiscovery.d.ts +114 -114
  76. package/metadata/MetadataDiscovery.js +1870 -1951
  77. package/metadata/MetadataProvider.d.ts +21 -24
  78. package/metadata/MetadataProvider.js +84 -82
  79. package/metadata/MetadataStorage.d.ts +32 -38
  80. package/metadata/MetadataStorage.js +118 -118
  81. package/metadata/MetadataValidator.d.ts +39 -39
  82. package/metadata/MetadataValidator.js +338 -381
  83. package/metadata/discover-entities.d.ts +2 -5
  84. package/metadata/discover-entities.js +37 -35
  85. package/metadata/types.d.ts +531 -615
  86. package/naming-strategy/AbstractNamingStrategy.d.ts +39 -54
  87. package/naming-strategy/AbstractNamingStrategy.js +85 -90
  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 +99 -109
  93. package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
  94. package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
  95. package/not-supported.js +4 -7
  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 +301 -310
  100. package/platforms/Platform.js +640 -663
  101. package/serialization/EntitySerializer.d.ts +26 -49
  102. package/serialization/EntitySerializer.js +218 -224
  103. package/serialization/EntityTransformer.d.ts +6 -10
  104. package/serialization/EntityTransformer.js +217 -219
  105. package/serialization/SerializationContext.d.ts +23 -27
  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 +10 -17
  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 +79 -83
  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 +49 -75
  158. package/types/index.js +26 -52
  159. package/typings.d.ts +737 -1250
  160. package/typings.js +231 -244
  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 +170 -178
  165. package/unit-of-work/ChangeSetPersister.d.ts +44 -63
  166. package/unit-of-work/ChangeSetPersister.js +421 -442
  167. package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
  168. package/unit-of-work/CommitOrderCalculator.js +88 -89
  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 +141 -181
  172. package/unit-of-work/UnitOfWork.js +1183 -1200
  173. package/utils/AbstractMigrator.d.ts +91 -111
  174. package/utils/AbstractMigrator.js +275 -275
  175. package/utils/AbstractSchemaGenerator.d.ts +34 -43
  176. package/utils/AbstractSchemaGenerator.js +122 -121
  177. package/utils/AsyncContext.d.ts +3 -3
  178. package/utils/AsyncContext.js +35 -34
  179. package/utils/Configuration.d.ts +808 -852
  180. package/utils/Configuration.js +344 -359
  181. package/utils/Cursor.d.ts +22 -40
  182. package/utils/Cursor.js +127 -135
  183. package/utils/DataloaderUtils.d.ts +43 -58
  184. package/utils/DataloaderUtils.js +198 -203
  185. package/utils/EntityComparator.d.ts +81 -98
  186. package/utils/EntityComparator.js +732 -828
  187. package/utils/NullHighlighter.d.ts +1 -1
  188. package/utils/NullHighlighter.js +3 -3
  189. package/utils/QueryHelper.d.ts +51 -79
  190. package/utils/QueryHelper.js +361 -372
  191. package/utils/RawQueryFragment.d.ts +34 -50
  192. package/utils/RawQueryFragment.js +105 -107
  193. package/utils/RequestContext.d.ts +32 -32
  194. package/utils/RequestContext.js +53 -52
  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 +197 -199
  199. package/utils/Utils.d.ts +145 -204
  200. package/utils/Utils.js +812 -812
  201. package/utils/clone.js +113 -104
  202. package/utils/env-vars.js +88 -90
  203. package/utils/fs-utils.d.ts +15 -15
  204. package/utils/fs-utils.js +181 -180
  205. package/utils/upsert-utils.d.ts +5 -20
  206. package/utils/upsert-utils.js +116 -114
@@ -2,58 +2,43 @@ 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(
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;
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;
59
44
  }
@@ -2,102 +2,97 @@ 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);
9
- }
10
- classToMigrationName(timestamp, customMigrationName) {
11
- let migrationName = `Migration${timestamp}`;
12
- if (customMigrationName) {
13
- migrationName += `_${customMigrationName}`;
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);
14
9
  }
15
- return migrationName;
16
- }
17
- indexName(tableName, columns, type) {
18
- /* v8 ignore next */
19
- if (tableName.includes('.')) {
20
- tableName = tableName.substring(tableName.indexOf('.') + 1);
10
+ classToMigrationName(timestamp, customMigrationName) {
11
+ let migrationName = `Migration${timestamp}`;
12
+ if (customMigrationName) {
13
+ migrationName += `_${customMigrationName}`;
14
+ }
15
+ return migrationName;
21
16
  }
22
- if (type === 'primary') {
23
- return `${tableName}_pkey`;
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}`;
24
33
  }
25
- columns = columns.map(col => col.replace(/\./g, '_'));
26
- if (type === 'sequence') {
27
- return `${tableName}_${columns.join('_')}_seq`;
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('')), '_');
28
43
  }
29
- if (columns.length > 0) {
30
- return `${tableName}_${columns.join('_')}_${type}`;
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;
31
50
  }
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}`;
51
+ /**
52
+ * @inheritDoc
53
+ */
54
+ getEnumClassName(columnName, tableName, schemaName) {
55
+ return this.getEntityName(tableName ? `${tableName}_${columnName}` : columnName, schemaName);
53
56
  }
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';
57
+ /**
58
+ * @inheritDoc
59
+ */
60
+ getEnumTypeName(columnName, tableName, schemaName) {
61
+ return 'T' + this.getEnumClassName(columnName, tableName, schemaName);
84
62
  }
85
- const suffix = kind === '1:m' && !entityName.endsWith('Collection') ? 'Collection' : '';
86
- if (entityName.length === 1) {
87
- return entityName[0].toLowerCase() + suffix;
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');
88
97
  }
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
- }
103
98
  }
@@ -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;
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';
17
28
  }
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,112 +1,102 @@
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(
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;
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;
112
102
  }
@@ -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
  }