@mikro-orm/core 7.0.2 → 7.0.3-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 (205) hide show
  1. package/EntityManager.d.ts +583 -883
  2. package/EntityManager.js +1869 -1897
  3. package/MikroORM.d.ts +74 -103
  4. package/MikroORM.js +179 -178
  5. package/cache/CacheAdapter.d.ts +36 -36
  6. package/cache/FileCacheAdapter.d.ts +24 -30
  7. package/cache/FileCacheAdapter.js +78 -80
  8. package/cache/GeneratedCacheAdapter.d.ts +20 -18
  9. package/cache/GeneratedCacheAdapter.js +30 -30
  10. package/cache/MemoryCacheAdapter.d.ts +20 -18
  11. package/cache/MemoryCacheAdapter.js +36 -35
  12. package/cache/NullCacheAdapter.d.ts +16 -16
  13. package/cache/NullCacheAdapter.js +24 -24
  14. package/connections/Connection.d.ts +84 -95
  15. package/connections/Connection.js +168 -165
  16. package/drivers/DatabaseDriver.d.ts +80 -186
  17. package/drivers/DatabaseDriver.js +443 -450
  18. package/drivers/IDatabaseDriver.d.ts +301 -440
  19. package/entity/BaseEntity.d.ts +83 -120
  20. package/entity/BaseEntity.js +43 -43
  21. package/entity/Collection.d.ts +179 -212
  22. package/entity/Collection.js +721 -727
  23. package/entity/EntityAssigner.d.ts +77 -88
  24. package/entity/EntityAssigner.js +230 -231
  25. package/entity/EntityFactory.d.ts +54 -66
  26. package/entity/EntityFactory.js +383 -425
  27. package/entity/EntityHelper.d.ts +22 -34
  28. package/entity/EntityHelper.js +267 -280
  29. package/entity/EntityIdentifier.d.ts +4 -4
  30. package/entity/EntityIdentifier.js +10 -10
  31. package/entity/EntityLoader.d.ts +73 -103
  32. package/entity/EntityLoader.js +723 -753
  33. package/entity/EntityRepository.d.ts +201 -316
  34. package/entity/EntityRepository.js +213 -213
  35. package/entity/PolymorphicRef.d.ts +5 -5
  36. package/entity/PolymorphicRef.js +10 -10
  37. package/entity/Reference.d.ts +82 -126
  38. package/entity/Reference.js +274 -278
  39. package/entity/WrappedEntity.d.ts +72 -115
  40. package/entity/WrappedEntity.js +166 -168
  41. package/entity/defineEntity.d.ts +614 -1280
  42. package/entity/defineEntity.js +511 -520
  43. package/entity/utils.d.ts +3 -13
  44. package/entity/utils.js +73 -71
  45. package/entity/validators.js +43 -43
  46. package/entity/wrap.js +8 -8
  47. package/enums.d.ts +253 -258
  48. package/enums.js +252 -251
  49. package/errors.d.ts +72 -114
  50. package/errors.js +253 -350
  51. package/events/EventManager.d.ts +14 -26
  52. package/events/EventManager.js +77 -79
  53. package/events/EventSubscriber.d.ts +29 -29
  54. package/events/TransactionEventBroadcaster.d.ts +8 -15
  55. package/events/TransactionEventBroadcaster.js +14 -14
  56. package/exceptions.d.ts +40 -23
  57. package/exceptions.js +52 -35
  58. package/hydration/Hydrator.d.ts +17 -42
  59. package/hydration/Hydrator.js +43 -43
  60. package/hydration/ObjectHydrator.d.ts +17 -50
  61. package/hydration/ObjectHydrator.js +416 -479
  62. package/index.d.ts +2 -116
  63. package/index.js +1 -10
  64. package/logging/DefaultLogger.d.ts +32 -34
  65. package/logging/DefaultLogger.js +86 -86
  66. package/logging/Logger.d.ts +41 -41
  67. package/logging/SimpleLogger.d.ts +11 -13
  68. package/logging/SimpleLogger.js +22 -22
  69. package/logging/colors.d.ts +6 -6
  70. package/logging/colors.js +10 -11
  71. package/logging/inspect.js +7 -7
  72. package/metadata/EntitySchema.d.ts +127 -211
  73. package/metadata/EntitySchema.js +398 -397
  74. package/metadata/MetadataDiscovery.d.ts +114 -114
  75. package/metadata/MetadataDiscovery.js +1863 -1947
  76. package/metadata/MetadataProvider.d.ts +21 -24
  77. package/metadata/MetadataProvider.js +84 -82
  78. package/metadata/MetadataStorage.d.ts +32 -38
  79. package/metadata/MetadataStorage.js +118 -118
  80. package/metadata/MetadataValidator.d.ts +39 -39
  81. package/metadata/MetadataValidator.js +338 -381
  82. package/metadata/discover-entities.d.ts +2 -5
  83. package/metadata/discover-entities.js +27 -27
  84. package/metadata/types.d.ts +531 -615
  85. package/naming-strategy/AbstractNamingStrategy.d.ts +39 -54
  86. package/naming-strategy/AbstractNamingStrategy.js +85 -90
  87. package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
  88. package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
  89. package/naming-strategy/MongoNamingStrategy.d.ts +6 -6
  90. package/naming-strategy/MongoNamingStrategy.js +18 -18
  91. package/naming-strategy/NamingStrategy.d.ts +99 -109
  92. package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
  93. package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
  94. package/not-supported.js +4 -7
  95. package/package.json +1 -1
  96. package/platforms/ExceptionConverter.d.ts +1 -1
  97. package/platforms/ExceptionConverter.js +4 -4
  98. package/platforms/Platform.d.ts +299 -308
  99. package/platforms/Platform.js +636 -659
  100. package/serialization/EntitySerializer.d.ts +26 -48
  101. package/serialization/EntitySerializer.js +218 -224
  102. package/serialization/EntityTransformer.d.ts +6 -10
  103. package/serialization/EntityTransformer.js +217 -219
  104. package/serialization/SerializationContext.d.ts +23 -27
  105. package/serialization/SerializationContext.js +105 -105
  106. package/types/ArrayType.d.ts +8 -8
  107. package/types/ArrayType.js +33 -33
  108. package/types/BigIntType.d.ts +10 -17
  109. package/types/BigIntType.js +37 -37
  110. package/types/BlobType.d.ts +3 -3
  111. package/types/BlobType.js +13 -13
  112. package/types/BooleanType.d.ts +4 -4
  113. package/types/BooleanType.js +12 -12
  114. package/types/CharacterType.d.ts +2 -2
  115. package/types/CharacterType.js +6 -6
  116. package/types/DateTimeType.d.ts +5 -5
  117. package/types/DateTimeType.js +15 -15
  118. package/types/DateType.d.ts +5 -5
  119. package/types/DateType.js +15 -15
  120. package/types/DecimalType.d.ts +7 -7
  121. package/types/DecimalType.js +26 -26
  122. package/types/DoubleType.d.ts +3 -3
  123. package/types/DoubleType.js +12 -12
  124. package/types/EnumArrayType.d.ts +5 -5
  125. package/types/EnumArrayType.js +24 -24
  126. package/types/EnumType.d.ts +3 -3
  127. package/types/EnumType.js +11 -11
  128. package/types/FloatType.d.ts +3 -3
  129. package/types/FloatType.js +9 -9
  130. package/types/IntegerType.d.ts +3 -3
  131. package/types/IntegerType.js +9 -9
  132. package/types/IntervalType.d.ts +4 -4
  133. package/types/IntervalType.js +12 -12
  134. package/types/JsonType.d.ts +8 -8
  135. package/types/JsonType.js +32 -32
  136. package/types/MediumIntType.d.ts +1 -1
  137. package/types/MediumIntType.js +3 -3
  138. package/types/SmallIntType.d.ts +3 -3
  139. package/types/SmallIntType.js +9 -9
  140. package/types/StringType.d.ts +4 -4
  141. package/types/StringType.js +12 -12
  142. package/types/TextType.d.ts +3 -3
  143. package/types/TextType.js +9 -9
  144. package/types/TimeType.d.ts +5 -5
  145. package/types/TimeType.js +17 -17
  146. package/types/TinyIntType.d.ts +3 -3
  147. package/types/TinyIntType.js +10 -10
  148. package/types/Type.d.ts +79 -83
  149. package/types/Type.js +82 -82
  150. package/types/Uint8ArrayType.d.ts +4 -4
  151. package/types/Uint8ArrayType.js +21 -21
  152. package/types/UnknownType.d.ts +4 -4
  153. package/types/UnknownType.js +12 -12
  154. package/types/UuidType.d.ts +5 -5
  155. package/types/UuidType.js +19 -19
  156. package/types/index.d.ts +49 -75
  157. package/types/index.js +26 -52
  158. package/typings.d.ts +729 -1211
  159. package/typings.js +231 -244
  160. package/unit-of-work/ChangeSet.d.ts +26 -26
  161. package/unit-of-work/ChangeSet.js +56 -56
  162. package/unit-of-work/ChangeSetComputer.d.ts +12 -12
  163. package/unit-of-work/ChangeSetComputer.js +170 -178
  164. package/unit-of-work/ChangeSetPersister.d.ts +44 -63
  165. package/unit-of-work/ChangeSetPersister.js +421 -442
  166. package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
  167. package/unit-of-work/CommitOrderCalculator.js +88 -89
  168. package/unit-of-work/IdentityMap.d.ts +31 -31
  169. package/unit-of-work/IdentityMap.js +105 -105
  170. package/unit-of-work/UnitOfWork.d.ts +141 -181
  171. package/unit-of-work/UnitOfWork.js +1183 -1200
  172. package/utils/AbstractMigrator.d.ts +91 -111
  173. package/utils/AbstractMigrator.js +275 -275
  174. package/utils/AbstractSchemaGenerator.d.ts +34 -43
  175. package/utils/AbstractSchemaGenerator.js +122 -121
  176. package/utils/AsyncContext.d.ts +3 -3
  177. package/utils/AsyncContext.js +35 -34
  178. package/utils/Configuration.d.ts +808 -852
  179. package/utils/Configuration.js +344 -359
  180. package/utils/Cursor.d.ts +22 -40
  181. package/utils/Cursor.js +127 -135
  182. package/utils/DataloaderUtils.d.ts +43 -58
  183. package/utils/DataloaderUtils.js +198 -203
  184. package/utils/EntityComparator.d.ts +81 -98
  185. package/utils/EntityComparator.js +728 -824
  186. package/utils/NullHighlighter.d.ts +1 -1
  187. package/utils/NullHighlighter.js +3 -3
  188. package/utils/QueryHelper.d.ts +51 -79
  189. package/utils/QueryHelper.js +361 -372
  190. package/utils/RawQueryFragment.d.ts +34 -50
  191. package/utils/RawQueryFragment.js +105 -107
  192. package/utils/RequestContext.d.ts +32 -32
  193. package/utils/RequestContext.js +53 -52
  194. package/utils/TransactionContext.d.ts +16 -16
  195. package/utils/TransactionContext.js +27 -27
  196. package/utils/TransactionManager.d.ts +58 -58
  197. package/utils/TransactionManager.js +197 -199
  198. package/utils/Utils.d.ts +145 -204
  199. package/utils/Utils.js +813 -814
  200. package/utils/clone.js +113 -104
  201. package/utils/env-vars.js +88 -90
  202. package/utils/fs-utils.d.ts +15 -15
  203. package/utils/fs-utils.js +181 -180
  204. package/utils/upsert-utils.d.ts +5 -20
  205. 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
  }