@rvoh/dream 0.40.3 → 0.40.5

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 (229) hide show
  1. package/dist/cjs/src/Dream.js +64 -12
  2. package/dist/cjs/src/dream/DreamClassTransactionBuilder.js +46 -6
  3. package/dist/cjs/src/dream/DreamInstanceTransactionBuilder.js +2 -2
  4. package/dist/cjs/src/dream/LeftJoinLoadBuilder.js +3 -3
  5. package/dist/cjs/src/dream/LoadBuilder.js +3 -3
  6. package/dist/cjs/src/dream/internal/associations/createAssociation.js +1 -6
  7. package/dist/cjs/src/dream/internal/findOrCreateBy.js +16 -0
  8. package/dist/cjs/src/dream/internal/updateOrCreateBy.js +18 -0
  9. package/dist/cjs/src/errors/CreateOrUpdateByFailedToCreateAndUpdate.js +18 -0
  10. package/dist/cjs/src/types/associations/belongsTo.js +2 -0
  11. package/dist/cjs/src/types/associations/hasMany.js +2 -0
  12. package/dist/cjs/src/types/associations/hasOne.js +2 -0
  13. package/dist/cjs/src/types/associations/shared.js +2 -0
  14. package/dist/cjs/src/types/db.js +2 -0
  15. package/dist/cjs/src/types/dream.js +2 -0
  16. package/dist/cjs/src/types/lifecycle.js +2 -0
  17. package/dist/cjs/src/types/logger.js +2 -0
  18. package/dist/cjs/src/types/openapi.js +2 -0
  19. package/dist/cjs/src/types/query.js +2 -0
  20. package/dist/cjs/src/types/utils.js +2 -0
  21. package/dist/cjs/src/types/validation.js +2 -0
  22. package/dist/cjs/src/types/variadic.js +2 -0
  23. package/dist/esm/src/Dream.js +64 -12
  24. package/dist/esm/src/dream/DreamClassTransactionBuilder.js +46 -6
  25. package/dist/esm/src/dream/DreamInstanceTransactionBuilder.js +2 -2
  26. package/dist/esm/src/dream/LeftJoinLoadBuilder.js +3 -3
  27. package/dist/esm/src/dream/LoadBuilder.js +3 -3
  28. package/dist/esm/src/dream/internal/associations/createAssociation.js +1 -6
  29. package/dist/esm/src/dream/internal/findOrCreateBy.js +13 -0
  30. package/dist/esm/src/dream/internal/updateOrCreateBy.js +15 -0
  31. package/dist/esm/src/errors/CreateOrUpdateByFailedToCreateAndUpdate.js +15 -0
  32. package/dist/esm/src/types/associations/belongsTo.js +1 -0
  33. package/dist/esm/src/types/associations/hasMany.js +1 -0
  34. package/dist/esm/src/types/associations/hasOne.js +1 -0
  35. package/dist/esm/src/types/associations/shared.js +1 -0
  36. package/dist/esm/src/types/db.js +1 -0
  37. package/dist/esm/src/types/dream.js +1 -0
  38. package/dist/esm/src/types/lifecycle.js +1 -0
  39. package/dist/esm/src/types/logger.js +1 -0
  40. package/dist/esm/src/types/openapi.js +1 -0
  41. package/dist/esm/src/types/query.js +1 -0
  42. package/dist/esm/src/types/utils.js +1 -0
  43. package/dist/esm/src/types/validation.js +1 -0
  44. package/dist/esm/src/types/variadic.js +1 -0
  45. package/dist/types/src/Dream.d.ts +42 -9
  46. package/dist/types/src/dream/DreamClassTransactionBuilder.d.ts +72 -37
  47. package/dist/types/src/dream/DreamInstanceTransactionBuilder.d.ts +3 -3
  48. package/dist/types/src/dream/LeftJoinLoadBuilder.d.ts +2 -2
  49. package/dist/types/src/dream/LoadBuilder.d.ts +2 -2
  50. package/dist/types/src/dream/Query.d.ts +1 -1
  51. package/dist/types/src/dream/internal/findOrCreateBy.d.ts +4 -0
  52. package/dist/types/src/dream/internal/updateOrCreateBy.d.ts +4 -0
  53. package/dist/types/src/errors/CreateOrUpdateByFailedToCreateAndUpdate.d.ts +6 -0
  54. package/dist/types/src/types/associations/belongsTo.d.ts +28 -73
  55. package/dist/types/src/types/associations/belongsTo.ts +76 -0
  56. package/dist/types/src/types/associations/hasMany.d.ts +15 -79
  57. package/dist/types/src/types/associations/hasMany.ts +80 -0
  58. package/dist/types/src/types/associations/hasOne.d.ts +8 -26
  59. package/dist/types/src/types/associations/hasOne.ts +26 -0
  60. package/dist/types/src/types/associations/shared.d.ts +98 -444
  61. package/dist/types/src/types/associations/shared.ts +450 -0
  62. package/dist/types/src/types/db.d.ts +9 -14
  63. package/dist/types/src/types/db.ts +14 -0
  64. package/dist/types/src/types/dream.d.ts +130 -509
  65. package/dist/types/src/types/dream.ts +530 -0
  66. package/dist/types/src/types/lifecycle.d.ts +23 -42
  67. package/dist/types/src/types/lifecycle.ts +50 -0
  68. package/dist/types/src/types/logger.d.ts +6 -40
  69. package/dist/types/src/types/logger.ts +42 -0
  70. package/dist/types/src/types/openapi.d.ts +105 -222
  71. package/dist/types/src/types/openapi.ts +255 -0
  72. package/dist/types/src/types/query.d.ts +53 -161
  73. package/dist/types/src/types/query.ts +165 -0
  74. package/dist/types/src/types/utils.d.ts +83 -141
  75. package/dist/types/src/types/utils.ts +173 -0
  76. package/dist/types/src/types/validation.d.ts +17 -18
  77. package/dist/types/src/types/validation.ts +20 -0
  78. package/dist/types/src/types/variadic.d.ts +42 -444
  79. package/dist/types/src/types/variadic.ts +447 -0
  80. package/docs/assets/search.js +1 -1
  81. package/docs/classes/Benchmark.html +2 -2
  82. package/docs/classes/CalendarDate.html +2 -2
  83. package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
  84. package/docs/classes/Decorators.html +19 -19
  85. package/docs/classes/Dream.html +205 -185
  86. package/docs/classes/DreamApp.html +4 -4
  87. package/docs/classes/DreamBin.html +2 -2
  88. package/docs/classes/DreamCLI.html +4 -4
  89. package/docs/classes/DreamImporter.html +2 -2
  90. package/docs/classes/DreamLogos.html +2 -2
  91. package/docs/classes/DreamMigrationHelpers.html +7 -7
  92. package/docs/classes/DreamSerializer.html +2 -2
  93. package/docs/classes/DreamTransaction.html +2 -2
  94. package/docs/classes/Encrypt.html +2 -2
  95. package/docs/classes/Env.html +2 -2
  96. package/docs/classes/GlobalNameNotSet.html +3 -3
  97. package/docs/classes/NonLoadedAssociation.html +3 -3
  98. package/docs/classes/Query.html +53 -53
  99. package/docs/classes/Range.html +2 -2
  100. package/docs/classes/RecordNotFound.html +3 -3
  101. package/docs/classes/ValidationError.html +3 -3
  102. package/docs/functions/Attribute.html +1 -1
  103. package/docs/functions/RendersMany.html +1 -1
  104. package/docs/functions/RendersOne.html +1 -1
  105. package/docs/functions/ReplicaSafe.html +1 -1
  106. package/docs/functions/STI.html +1 -1
  107. package/docs/functions/SoftDelete.html +1 -1
  108. package/docs/functions/camelize.html +1 -1
  109. package/docs/functions/capitalize.html +1 -1
  110. package/docs/functions/closeAllDbConnections.html +1 -1
  111. package/docs/functions/compact.html +1 -1
  112. package/docs/functions/dreamDbConnections.html +1 -1
  113. package/docs/functions/dreamPath.html +1 -1
  114. package/docs/functions/generateDream.html +1 -1
  115. package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
  116. package/docs/functions/hyphenize.html +1 -1
  117. package/docs/functions/inferSerializerFromDreamClassOrViewModelClass.html +1 -1
  118. package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
  119. package/docs/functions/isEmpty.html +1 -1
  120. package/docs/functions/loadRepl.html +1 -1
  121. package/docs/functions/lookupClassByGlobalName.html +1 -1
  122. package/docs/functions/pascalize.html +1 -1
  123. package/docs/functions/pgErrorType.html +1 -1
  124. package/docs/functions/range-1.html +1 -1
  125. package/docs/functions/relativeDreamPath.html +1 -1
  126. package/docs/functions/round.html +1 -1
  127. package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
  128. package/docs/functions/sharedPathPrefix.html +1 -1
  129. package/docs/functions/snakeify.html +1 -1
  130. package/docs/functions/sort.html +1 -1
  131. package/docs/functions/sortBy.html +1 -1
  132. package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
  133. package/docs/functions/uncapitalize.html +1 -1
  134. package/docs/functions/uniq.html +1 -1
  135. package/docs/functions/untypedDb.html +1 -1
  136. package/docs/functions/validateColumn.html +1 -1
  137. package/docs/functions/validateTable.html +1 -1
  138. package/docs/interfaces/AttributeStatement.html +2 -2
  139. package/docs/interfaces/DecoratorContext.html +2 -2
  140. package/docs/interfaces/DreamAppInitOptions.html +2 -2
  141. package/docs/interfaces/DreamAppOpts.html +2 -2
  142. package/docs/interfaces/DreamSerializerAssociationStatement.html +2 -2
  143. package/docs/interfaces/EncryptOptions.html +2 -2
  144. package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
  145. package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
  146. package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
  147. package/docs/types/Camelized.html +1 -1
  148. package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
  149. package/docs/types/DateTime.html +1 -1
  150. package/docs/types/DbConnectionType.html +1 -1
  151. package/docs/types/DreamAssociationMetadata.html +1 -1
  152. package/docs/types/DreamAttributes.html +1 -1
  153. package/docs/types/DreamClassColumn.html +1 -1
  154. package/docs/types/DreamColumn.html +1 -1
  155. package/docs/types/DreamColumnNames.html +1 -1
  156. package/docs/types/DreamLogLevel.html +1 -1
  157. package/docs/types/DreamLogger.html +1 -1
  158. package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
  159. package/docs/types/DreamParamSafeAttributes.html +1 -1
  160. package/docs/types/DreamParamSafeColumnNames.html +1 -1
  161. package/docs/types/DreamSerializerKey.html +1 -1
  162. package/docs/types/DreamSerializers.html +1 -1
  163. package/docs/types/DreamTableSchema.html +1 -1
  164. package/docs/types/DreamVirtualColumns.html +1 -1
  165. package/docs/types/EncryptAlgorithm.html +1 -1
  166. package/docs/types/Hyphenized.html +1 -1
  167. package/docs/types/IdType.html +1 -1
  168. package/docs/types/OpenapiAllTypes.html +1 -1
  169. package/docs/types/OpenapiFormats.html +1 -1
  170. package/docs/types/OpenapiNumberFormats.html +1 -1
  171. package/docs/types/OpenapiPrimitiveTypes.html +1 -1
  172. package/docs/types/OpenapiSchemaArray.html +1 -1
  173. package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
  174. package/docs/types/OpenapiSchemaBase.html +1 -1
  175. package/docs/types/OpenapiSchemaBody.html +1 -1
  176. package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
  177. package/docs/types/OpenapiSchemaCommonFields.html +1 -1
  178. package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
  179. package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
  180. package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
  181. package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
  182. package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  183. package/docs/types/OpenapiSchemaInteger.html +1 -1
  184. package/docs/types/OpenapiSchemaNull.html +1 -1
  185. package/docs/types/OpenapiSchemaNumber.html +1 -1
  186. package/docs/types/OpenapiSchemaObject.html +1 -1
  187. package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
  188. package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
  189. package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
  190. package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  191. package/docs/types/OpenapiSchemaObjectBase.html +1 -1
  192. package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
  193. package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
  194. package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
  195. package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
  196. package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
  197. package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  198. package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  199. package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  200. package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  201. package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  202. package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  203. package/docs/types/OpenapiSchemaString.html +1 -1
  204. package/docs/types/OpenapiShorthandAllTypes.html +1 -1
  205. package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
  206. package/docs/types/OpenapiTypeField.html +1 -1
  207. package/docs/types/Pascalized.html +1 -1
  208. package/docs/types/PrimaryKeyType.html +1 -1
  209. package/docs/types/RoundingPrecision.html +1 -1
  210. package/docs/types/SerializableClassOrSerializerCallback.html +1 -1
  211. package/docs/types/SerializableDreamClassOrViewModelClass.html +1 -1
  212. package/docs/types/SerializableDreamOrViewModel.html +1 -1
  213. package/docs/types/SerializableTypes.html +1 -1
  214. package/docs/types/Snakeified.html +1 -1
  215. package/docs/types/Timestamp.html +1 -1
  216. package/docs/types/UpdateableAssociationProperties.html +1 -1
  217. package/docs/types/UpdateableProperties.html +1 -1
  218. package/docs/types/ValidationType.html +1 -1
  219. package/docs/types/ViewModelSerializerKey.html +1 -1
  220. package/docs/types/WhereStatementForDream.html +1 -1
  221. package/docs/types/WhereStatementForDreamClass.html +1 -1
  222. package/docs/variables/DateTime-1.html +1 -1
  223. package/docs/variables/DreamConst.html +1 -1
  224. package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
  225. package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
  226. package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
  227. package/docs/variables/ops.html +1 -1
  228. package/docs/variables/primaryKeyTypes.html +1 -1
  229. package/package.json +1 -1
@@ -4,8 +4,8 @@ import { PassthroughColumnNames } from '../types/dream.js';
4
4
  import { VariadicLoadArgs } from '../types/variadic.js';
5
5
  import DreamTransaction from './DreamTransaction.js';
6
6
  export default class LoadBuilder<DreamInstance extends Dream> {
7
+ private dreamTransaction?;
7
8
  private dream;
8
- private dreamTransaction;
9
9
  private query;
10
10
  /**
11
11
  * An intermediate class on the way to executing a load
@@ -17,7 +17,7 @@ export default class LoadBuilder<DreamInstance extends Dream> {
17
17
  * await user.load('settings').execute()
18
18
  * ```
19
19
  */
20
- constructor(dream: Dream, txn?: DreamTransaction<any>);
20
+ constructor(dream: Dream, dreamTransaction?: (DreamTransaction<any> | null) | undefined);
21
21
  passthrough<I extends LoadBuilder<DreamInstance>, PassthroughColumns extends PassthroughColumnNames<DreamInstance>>(this: I, passthroughWhereStatement: PassthroughOnClause<PassthroughColumns>): I;
22
22
  /**
23
23
  * Attaches a load statement to the load builder
@@ -649,7 +649,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
649
649
  * @returns A cloned Query with the transaction applied
650
650
  *
651
651
  */
652
- txn(dreamTransaction: DreamTransaction<Dream>): this;
652
+ txn(dreamTransaction: DreamTransaction<Dream> | null): this;
653
653
  /**
654
654
  * Retrieves the number of records in the database
655
655
  *
@@ -0,0 +1,4 @@
1
+ import Dream from '../../Dream.js';
2
+ import { CreateOrFindByExtraOpts, UpdateablePropertiesForClass } from '../../types/dream.js';
3
+ import DreamTransaction from '../DreamTransaction.js';
4
+ export default function findOrCreateBy<T extends typeof Dream>(dreamClass: T, txn: (DreamTransaction<InstanceType<T>> | null) | undefined, attributes: UpdateablePropertiesForClass<T>, extraOpts?: CreateOrFindByExtraOpts<T>): Promise<InstanceType<T>>;
@@ -0,0 +1,4 @@
1
+ import Dream from '../../Dream.js';
2
+ import { UpdateablePropertiesForClass, UpdateOrCreateByExtraOpts } from '../../types/dream.js';
3
+ import DreamTransaction from '../DreamTransaction.js';
4
+ export default function updateOrCreateBy<T extends typeof Dream>(dreamClass: T, txn: (DreamTransaction<InstanceType<T>> | null) | undefined, attributes: UpdateablePropertiesForClass<T>, extraOpts?: UpdateOrCreateByExtraOpts<T>): Promise<InstanceType<T>>;
@@ -0,0 +1,6 @@
1
+ import Dream from '../Dream.js';
2
+ export default class CreateOrUpdateByFailedToCreateAndUpdate extends Error {
3
+ private dreamClass;
4
+ constructor(dreamClass: typeof Dream);
5
+ get message(): string;
6
+ }
@@ -1,76 +1,31 @@
1
- import Dream from '../../Dream.ts'
2
- import { AssociationTableNames } from '../db.js'
3
- import {
4
- DefaultScopeName,
5
- DefaultScopeNameForTable,
6
- DreamColumnNames,
7
- GlobalModelNames,
8
- TableColumnNames,
9
- TableNameForGlobalModelName,
10
- } from '../dream.js'
11
-
12
- export interface BelongsToStatement<
13
- BaseInstance extends Dream,
14
- DB,
15
- Schema,
16
- TableName extends AssociationTableNames<DB, Schema> & keyof DB,
17
- > {
18
- modelCB: () => typeof Dream | (typeof Dream)[]
19
- globalAssociationNameOrNames: string[]
20
- type: 'BelongsTo'
21
- as: string
22
- primaryKey: (associationInstance?: Dream) => keyof DB[TableName] & string
23
- primaryKeyValue: (associationInstance: Dream | null) => any
24
- primaryKeyOverride?: (keyof DB[TableName] & string) | null
25
- foreignKey: () => DreamColumnNames<BaseInstance> & string
26
- foreignKeyTypeField: () => DreamColumnNames<BaseInstance> & string
27
- optional: boolean
28
- distinct: null
29
- polymorphic: boolean
30
- withoutDefaultScopes?: DefaultScopeName<BaseInstance>[]
1
+ import Dream from '../../Dream.js';
2
+ import { AssociationTableNames } from '../db.js';
3
+ import { DefaultScopeName, DefaultScopeNameForTable, DreamColumnNames, GlobalModelNames, TableColumnNames, TableNameForGlobalModelName } from '../dream.js';
4
+ export interface BelongsToStatement<BaseInstance extends Dream, DB, Schema, TableName extends AssociationTableNames<DB, Schema> & keyof DB> {
5
+ modelCB: () => typeof Dream | (typeof Dream)[];
6
+ globalAssociationNameOrNames: string[];
7
+ type: 'BelongsTo';
8
+ as: string;
9
+ primaryKey: (associationInstance?: Dream) => keyof DB[TableName] & string;
10
+ primaryKeyValue: (associationInstance: Dream | null) => any;
11
+ primaryKeyOverride?: (keyof DB[TableName] & string) | null;
12
+ foreignKey: () => DreamColumnNames<BaseInstance> & string;
13
+ foreignKeyTypeField: () => DreamColumnNames<BaseInstance> & string;
14
+ optional: boolean;
15
+ distinct: null;
16
+ polymorphic: boolean;
17
+ withoutDefaultScopes?: DefaultScopeName<BaseInstance>[];
31
18
  }
32
-
33
- export interface NonPolymorphicBelongsToOptions<
34
- BaseInstance extends Dream,
35
- AssociationGlobalNameOrNames extends
36
- | GlobalModelNames<BaseInstance>
37
- | readonly GlobalModelNames<BaseInstance>[],
38
- AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
39
- ? AssociationGlobalNameOrNames[0] & string
40
- : AssociationGlobalNameOrNames & string,
41
- AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
42
- keyof BaseInstance['DB'] = TableNameForGlobalModelName<
43
- BaseInstance,
44
- AssociationGlobalName & GlobalModelNames<BaseInstance>
45
- > &
46
- AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
47
- keyof BaseInstance['DB'],
48
- > {
49
- foreignKey?: DreamColumnNames<BaseInstance>
50
- primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
51
- optional?: boolean
52
- withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
19
+ export interface NonPolymorphicBelongsToOptions<BaseInstance extends Dream, AssociationGlobalNameOrNames extends GlobalModelNames<BaseInstance> | readonly GlobalModelNames<BaseInstance>[], AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]> ? AssociationGlobalNameOrNames[0] & string : AssociationGlobalNameOrNames & string, AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB'] = TableNameForGlobalModelName<BaseInstance, AssociationGlobalName & GlobalModelNames<BaseInstance>> & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> {
20
+ foreignKey?: DreamColumnNames<BaseInstance>;
21
+ primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null;
22
+ optional?: boolean;
23
+ withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[];
53
24
  }
54
-
55
- export interface PolymorphicBelongsToOptions<
56
- BaseInstance extends Dream,
57
- AssociationGlobalNameOrNames extends
58
- | GlobalModelNames<BaseInstance>
59
- | readonly GlobalModelNames<BaseInstance>[],
60
- AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
61
- ? AssociationGlobalNameOrNames[0] & string
62
- : AssociationGlobalNameOrNames & string,
63
- AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
64
- keyof BaseInstance['DB'] = TableNameForGlobalModelName<
65
- BaseInstance,
66
- AssociationGlobalName & GlobalModelNames<BaseInstance>
67
- > &
68
- AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
69
- keyof BaseInstance['DB'],
70
- > {
71
- foreignKey: DreamColumnNames<BaseInstance>
72
- primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
73
- optional?: boolean
74
- polymorphic: boolean
75
- withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
25
+ export interface PolymorphicBelongsToOptions<BaseInstance extends Dream, AssociationGlobalNameOrNames extends GlobalModelNames<BaseInstance> | readonly GlobalModelNames<BaseInstance>[], AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]> ? AssociationGlobalNameOrNames[0] & string : AssociationGlobalNameOrNames & string, AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB'] = TableNameForGlobalModelName<BaseInstance, AssociationGlobalName & GlobalModelNames<BaseInstance>> & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> {
26
+ foreignKey: DreamColumnNames<BaseInstance>;
27
+ primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null;
28
+ optional?: boolean;
29
+ polymorphic: boolean;
30
+ withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[];
76
31
  }
@@ -0,0 +1,76 @@
1
+ import Dream from '../../Dream.js'
2
+ import { AssociationTableNames } from '../db.js'
3
+ import {
4
+ DefaultScopeName,
5
+ DefaultScopeNameForTable,
6
+ DreamColumnNames,
7
+ GlobalModelNames,
8
+ TableColumnNames,
9
+ TableNameForGlobalModelName,
10
+ } from '../dream.js'
11
+
12
+ export interface BelongsToStatement<
13
+ BaseInstance extends Dream,
14
+ DB,
15
+ Schema,
16
+ TableName extends AssociationTableNames<DB, Schema> & keyof DB,
17
+ > {
18
+ modelCB: () => typeof Dream | (typeof Dream)[]
19
+ globalAssociationNameOrNames: string[]
20
+ type: 'BelongsTo'
21
+ as: string
22
+ primaryKey: (associationInstance?: Dream) => keyof DB[TableName] & string
23
+ primaryKeyValue: (associationInstance: Dream | null) => any
24
+ primaryKeyOverride?: (keyof DB[TableName] & string) | null
25
+ foreignKey: () => DreamColumnNames<BaseInstance> & string
26
+ foreignKeyTypeField: () => DreamColumnNames<BaseInstance> & string
27
+ optional: boolean
28
+ distinct: null
29
+ polymorphic: boolean
30
+ withoutDefaultScopes?: DefaultScopeName<BaseInstance>[]
31
+ }
32
+
33
+ export interface NonPolymorphicBelongsToOptions<
34
+ BaseInstance extends Dream,
35
+ AssociationGlobalNameOrNames extends
36
+ | GlobalModelNames<BaseInstance>
37
+ | readonly GlobalModelNames<BaseInstance>[],
38
+ AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
39
+ ? AssociationGlobalNameOrNames[0] & string
40
+ : AssociationGlobalNameOrNames & string,
41
+ AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
42
+ keyof BaseInstance['DB'] = TableNameForGlobalModelName<
43
+ BaseInstance,
44
+ AssociationGlobalName & GlobalModelNames<BaseInstance>
45
+ > &
46
+ AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
47
+ keyof BaseInstance['DB'],
48
+ > {
49
+ foreignKey?: DreamColumnNames<BaseInstance>
50
+ primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
51
+ optional?: boolean
52
+ withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
53
+ }
54
+
55
+ export interface PolymorphicBelongsToOptions<
56
+ BaseInstance extends Dream,
57
+ AssociationGlobalNameOrNames extends
58
+ | GlobalModelNames<BaseInstance>
59
+ | readonly GlobalModelNames<BaseInstance>[],
60
+ AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
61
+ ? AssociationGlobalNameOrNames[0] & string
62
+ : AssociationGlobalNameOrNames & string,
63
+ AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
64
+ keyof BaseInstance['DB'] = TableNameForGlobalModelName<
65
+ BaseInstance,
66
+ AssociationGlobalName & GlobalModelNames<BaseInstance>
67
+ > &
68
+ AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
69
+ keyof BaseInstance['DB'],
70
+ > {
71
+ foreignKey: DreamColumnNames<BaseInstance>
72
+ primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
73
+ optional?: boolean
74
+ polymorphic: boolean
75
+ withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
76
+ }
@@ -1,80 +1,16 @@
1
- import Dream from '../../Dream.ts'
2
- import { AssociationTableNames } from '../db.js'
3
- import {
4
- GlobalModelNames,
5
- GlobalModelNameTableMap,
6
- TableColumnNames,
7
- TableNameForGlobalModelName,
8
- } from '../dream.js'
9
- import {
10
- HasOptions,
11
- HasStatement,
12
- HasThroughOptions,
13
- OrderStatement,
14
- PolymorphicHasOptions,
15
- } from './shared.js'
16
-
17
- export type HasManyStatement<
18
- BaseInstance extends Dream,
19
- DB,
20
- Schema,
21
- ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
22
- > = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasMany'> & {
23
- distinct?: TableColumnNames<DB, ForeignTableName>
24
- order?: OrderStatement<DB, Schema, ForeignTableName>
1
+ import Dream from '../../Dream.js';
2
+ import { AssociationTableNames } from '../db.js';
3
+ import { GlobalModelNames, GlobalModelNameTableMap, TableColumnNames, TableNameForGlobalModelName } from '../dream.js';
4
+ import { HasOptions, HasStatement, HasThroughOptions, OrderStatement, PolymorphicHasOptions } from './shared.js';
5
+ export type HasManyStatement<BaseInstance extends Dream, DB, Schema, ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasMany'> & {
6
+ distinct?: TableColumnNames<DB, ForeignTableName>;
7
+ order?: OrderStatement<DB, Schema, ForeignTableName>;
8
+ };
9
+ interface HasManyOnlyOptions<BaseInstance extends Dream, AssociationGlobalNameOrNames extends GlobalModelNames<BaseInstance> | readonly GlobalModelNames<BaseInstance>[], AssociationGlobalName = AssociationGlobalNameOrNames extends any[] ? AssociationGlobalNameOrNames[0] & string : AssociationGlobalNameOrNames & string, AssociationTableName = TableNameForGlobalModelName<BaseInstance, AssociationGlobalName & GlobalModelNames<BaseInstance>>> {
10
+ distinct?: TableColumnNames<BaseInstance['DB'], AssociationTableName & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> | boolean;
11
+ order?: OrderStatement<BaseInstance['DB'], BaseInstance['schema'], AssociationTableName & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> | OrderStatement<BaseInstance['DB'], BaseInstance['schema'], AssociationTableName & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']>[];
25
12
  }
26
- interface HasManyOnlyOptions<
27
- BaseInstance extends Dream,
28
- AssociationGlobalNameOrNames extends
29
- | GlobalModelNames<BaseInstance>
30
- | readonly GlobalModelNames<BaseInstance>[],
31
- AssociationGlobalName = AssociationGlobalNameOrNames extends any[]
32
- ? AssociationGlobalNameOrNames[0] & string
33
- : AssociationGlobalNameOrNames & string,
34
- AssociationTableName = TableNameForGlobalModelName<
35
- BaseInstance,
36
- AssociationGlobalName & GlobalModelNames<BaseInstance>
37
- >,
38
- > {
39
- distinct?:
40
- | TableColumnNames<
41
- BaseInstance['DB'],
42
- AssociationTableName &
43
- AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
44
- keyof BaseInstance['DB']
45
- >
46
- | boolean
47
-
48
- order?:
49
- | OrderStatement<
50
- BaseInstance['DB'],
51
- BaseInstance['schema'],
52
- AssociationTableName &
53
- AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
54
- keyof BaseInstance['DB']
55
- >
56
- | OrderStatement<
57
- BaseInstance['DB'],
58
- BaseInstance['schema'],
59
- AssociationTableName &
60
- AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
61
- keyof BaseInstance['DB']
62
- >[]
63
- }
64
-
65
- export type HasManyOptions<
66
- BaseInstance extends Dream,
67
- AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
68
- > = HasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
69
-
70
- export type PolymorphicHasManyOptions<
71
- BaseInstance extends Dream,
72
- AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
73
- > = PolymorphicHasOptions<BaseInstance, AssociationGlobalName> &
74
- HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
75
-
76
- export type HasManyThroughOptions<
77
- BaseInstance extends Dream,
78
- AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
79
- > = HasThroughOptions<BaseInstance, AssociationGlobalName> &
80
- HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
13
+ export type HasManyOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>;
14
+ export type PolymorphicHasManyOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>;
15
+ export type HasManyThroughOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasThroughOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>;
16
+ export {};
@@ -0,0 +1,80 @@
1
+ import Dream from '../../Dream.js'
2
+ import { AssociationTableNames } from '../db.js'
3
+ import {
4
+ GlobalModelNames,
5
+ GlobalModelNameTableMap,
6
+ TableColumnNames,
7
+ TableNameForGlobalModelName,
8
+ } from '../dream.js'
9
+ import {
10
+ HasOptions,
11
+ HasStatement,
12
+ HasThroughOptions,
13
+ OrderStatement,
14
+ PolymorphicHasOptions,
15
+ } from './shared.js'
16
+
17
+ export type HasManyStatement<
18
+ BaseInstance extends Dream,
19
+ DB,
20
+ Schema,
21
+ ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
22
+ > = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasMany'> & {
23
+ distinct?: TableColumnNames<DB, ForeignTableName>
24
+ order?: OrderStatement<DB, Schema, ForeignTableName>
25
+ }
26
+ interface HasManyOnlyOptions<
27
+ BaseInstance extends Dream,
28
+ AssociationGlobalNameOrNames extends
29
+ | GlobalModelNames<BaseInstance>
30
+ | readonly GlobalModelNames<BaseInstance>[],
31
+ AssociationGlobalName = AssociationGlobalNameOrNames extends any[]
32
+ ? AssociationGlobalNameOrNames[0] & string
33
+ : AssociationGlobalNameOrNames & string,
34
+ AssociationTableName = TableNameForGlobalModelName<
35
+ BaseInstance,
36
+ AssociationGlobalName & GlobalModelNames<BaseInstance>
37
+ >,
38
+ > {
39
+ distinct?:
40
+ | TableColumnNames<
41
+ BaseInstance['DB'],
42
+ AssociationTableName &
43
+ AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
44
+ keyof BaseInstance['DB']
45
+ >
46
+ | boolean
47
+
48
+ order?:
49
+ | OrderStatement<
50
+ BaseInstance['DB'],
51
+ BaseInstance['schema'],
52
+ AssociationTableName &
53
+ AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
54
+ keyof BaseInstance['DB']
55
+ >
56
+ | OrderStatement<
57
+ BaseInstance['DB'],
58
+ BaseInstance['schema'],
59
+ AssociationTableName &
60
+ AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
61
+ keyof BaseInstance['DB']
62
+ >[]
63
+ }
64
+
65
+ export type HasManyOptions<
66
+ BaseInstance extends Dream,
67
+ AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
68
+ > = HasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
69
+
70
+ export type PolymorphicHasManyOptions<
71
+ BaseInstance extends Dream,
72
+ AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
73
+ > = PolymorphicHasOptions<BaseInstance, AssociationGlobalName> &
74
+ HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
75
+
76
+ export type HasManyThroughOptions<
77
+ BaseInstance extends Dream,
78
+ AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
79
+ > = HasThroughOptions<BaseInstance, AssociationGlobalName> &
80
+ HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
@@ -1,26 +1,8 @@
1
- import Dream from '../../Dream.ts'
2
- import { AssociationTableNames } from '../db.js'
3
- import { GlobalModelNameTableMap } from '../dream.js'
4
- import { HasOptions, HasStatement, HasThroughOptions, PolymorphicHasOptions } from './shared.js'
5
-
6
- export type HasOneStatement<
7
- BaseInstance extends Dream,
8
- DB,
9
- Schema,
10
- ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
11
- > = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasOne'>
12
-
13
- export type HasOneOptions<
14
- BaseInstance extends Dream,
15
- AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
16
- > = HasOptions<BaseInstance, AssociationGlobalName>
17
-
18
- export type PolymorphicHasOneOptions<
19
- BaseInstance extends Dream,
20
- AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
21
- > = PolymorphicHasOptions<BaseInstance, AssociationGlobalName>
22
-
23
- export type HasOneThroughOptions<
24
- BaseInstance extends Dream,
25
- AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
26
- > = HasThroughOptions<BaseInstance, AssociationGlobalName>
1
+ import Dream from '../../Dream.js';
2
+ import { AssociationTableNames } from '../db.js';
3
+ import { GlobalModelNameTableMap } from '../dream.js';
4
+ import { HasOptions, HasStatement, HasThroughOptions, PolymorphicHasOptions } from './shared.js';
5
+ export type HasOneStatement<BaseInstance extends Dream, DB, Schema, ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasOne'>;
6
+ export type HasOneOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasOptions<BaseInstance, AssociationGlobalName>;
7
+ export type PolymorphicHasOneOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName>;
8
+ export type HasOneThroughOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasThroughOptions<BaseInstance, AssociationGlobalName>;
@@ -0,0 +1,26 @@
1
+ import Dream from '../../Dream.js'
2
+ import { AssociationTableNames } from '../db.js'
3
+ import { GlobalModelNameTableMap } from '../dream.js'
4
+ import { HasOptions, HasStatement, HasThroughOptions, PolymorphicHasOptions } from './shared.js'
5
+
6
+ export type HasOneStatement<
7
+ BaseInstance extends Dream,
8
+ DB,
9
+ Schema,
10
+ ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
11
+ > = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasOne'>
12
+
13
+ export type HasOneOptions<
14
+ BaseInstance extends Dream,
15
+ AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
16
+ > = HasOptions<BaseInstance, AssociationGlobalName>
17
+
18
+ export type PolymorphicHasOneOptions<
19
+ BaseInstance extends Dream,
20
+ AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
21
+ > = PolymorphicHasOptions<BaseInstance, AssociationGlobalName>
22
+
23
+ export type HasOneThroughOptions<
24
+ BaseInstance extends Dream,
25
+ AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
26
+ > = HasThroughOptions<BaseInstance, AssociationGlobalName>