@rvoh/dream 0.40.2 → 0.40.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/cjs/src/helpers/cli/generateFactoryContent.js +6 -4
  2. package/dist/cjs/src/types/associations/belongsTo.js +2 -0
  3. package/dist/cjs/src/types/associations/hasMany.js +2 -0
  4. package/dist/cjs/src/types/associations/hasOne.js +2 -0
  5. package/dist/cjs/src/types/associations/shared.js +2 -0
  6. package/dist/cjs/src/types/db.js +2 -0
  7. package/dist/cjs/src/types/dream.js +2 -0
  8. package/dist/cjs/src/types/lifecycle.js +2 -0
  9. package/dist/cjs/src/types/logger.js +2 -0
  10. package/dist/cjs/src/types/openapi.js +2 -0
  11. package/dist/cjs/src/types/query.js +2 -0
  12. package/dist/cjs/src/types/utils.js +2 -0
  13. package/dist/cjs/src/types/validation.js +2 -0
  14. package/dist/cjs/src/types/variadic.js +2 -0
  15. package/dist/esm/src/helpers/cli/generateFactoryContent.js +6 -4
  16. package/dist/esm/src/types/associations/belongsTo.js +1 -0
  17. package/dist/esm/src/types/associations/hasMany.js +1 -0
  18. package/dist/esm/src/types/associations/hasOne.js +1 -0
  19. package/dist/esm/src/types/associations/shared.js +1 -0
  20. package/dist/esm/src/types/db.js +1 -0
  21. package/dist/esm/src/types/dream.js +1 -0
  22. package/dist/esm/src/types/lifecycle.js +1 -0
  23. package/dist/esm/src/types/logger.js +1 -0
  24. package/dist/esm/src/types/openapi.js +1 -0
  25. package/dist/esm/src/types/query.js +1 -0
  26. package/dist/esm/src/types/utils.js +1 -0
  27. package/dist/esm/src/types/validation.js +1 -0
  28. package/dist/esm/src/types/variadic.js +1 -0
  29. package/dist/types/src/types/associations/belongsTo.d.ts +28 -73
  30. package/dist/types/src/types/associations/belongsTo.ts +76 -0
  31. package/dist/types/src/types/associations/hasMany.d.ts +15 -79
  32. package/dist/types/src/types/associations/hasMany.ts +80 -0
  33. package/dist/types/src/types/associations/hasOne.d.ts +8 -26
  34. package/dist/types/src/types/associations/hasOne.ts +26 -0
  35. package/dist/types/src/types/associations/shared.d.ts +98 -444
  36. package/dist/types/src/types/associations/shared.ts +450 -0
  37. package/dist/types/src/types/db.d.ts +9 -14
  38. package/dist/types/src/types/db.ts +14 -0
  39. package/dist/types/src/types/dream.d.ts +124 -510
  40. package/dist/types/src/types/dream.ts +521 -0
  41. package/dist/types/src/types/lifecycle.d.ts +23 -42
  42. package/dist/types/src/types/lifecycle.ts +50 -0
  43. package/dist/types/src/types/logger.d.ts +6 -40
  44. package/dist/types/src/types/logger.ts +42 -0
  45. package/dist/types/src/types/openapi.d.ts +105 -222
  46. package/dist/types/src/types/openapi.ts +255 -0
  47. package/dist/types/src/types/query.d.ts +53 -161
  48. package/dist/types/src/types/query.ts +165 -0
  49. package/dist/types/src/types/utils.d.ts +83 -141
  50. package/dist/types/src/types/utils.ts +173 -0
  51. package/dist/types/src/types/validation.d.ts +17 -18
  52. package/dist/types/src/types/validation.ts +20 -0
  53. package/dist/types/src/types/variadic.d.ts +42 -444
  54. package/dist/types/src/types/variadic.ts +447 -0
  55. package/docs/classes/Benchmark.html +2 -2
  56. package/docs/classes/CalendarDate.html +2 -2
  57. package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
  58. package/docs/classes/Decorators.html +19 -19
  59. package/docs/classes/Dream.html +132 -132
  60. package/docs/classes/DreamApp.html +4 -4
  61. package/docs/classes/DreamBin.html +2 -2
  62. package/docs/classes/DreamCLI.html +4 -4
  63. package/docs/classes/DreamImporter.html +2 -2
  64. package/docs/classes/DreamLogos.html +2 -2
  65. package/docs/classes/DreamMigrationHelpers.html +7 -7
  66. package/docs/classes/DreamSerializer.html +2 -2
  67. package/docs/classes/DreamTransaction.html +2 -2
  68. package/docs/classes/Encrypt.html +2 -2
  69. package/docs/classes/Env.html +2 -2
  70. package/docs/classes/GlobalNameNotSet.html +3 -3
  71. package/docs/classes/NonLoadedAssociation.html +3 -3
  72. package/docs/classes/Query.html +52 -52
  73. package/docs/classes/Range.html +2 -2
  74. package/docs/classes/RecordNotFound.html +3 -3
  75. package/docs/classes/ValidationError.html +3 -3
  76. package/docs/functions/Attribute.html +1 -1
  77. package/docs/functions/RendersMany.html +1 -1
  78. package/docs/functions/RendersOne.html +1 -1
  79. package/docs/functions/ReplicaSafe.html +1 -1
  80. package/docs/functions/STI.html +1 -1
  81. package/docs/functions/SoftDelete.html +1 -1
  82. package/docs/functions/camelize.html +1 -1
  83. package/docs/functions/capitalize.html +1 -1
  84. package/docs/functions/closeAllDbConnections.html +1 -1
  85. package/docs/functions/compact.html +1 -1
  86. package/docs/functions/dreamDbConnections.html +1 -1
  87. package/docs/functions/dreamPath.html +1 -1
  88. package/docs/functions/generateDream.html +1 -1
  89. package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
  90. package/docs/functions/hyphenize.html +1 -1
  91. package/docs/functions/inferSerializerFromDreamClassOrViewModelClass.html +1 -1
  92. package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
  93. package/docs/functions/isEmpty.html +1 -1
  94. package/docs/functions/loadRepl.html +1 -1
  95. package/docs/functions/lookupClassByGlobalName.html +1 -1
  96. package/docs/functions/pascalize.html +1 -1
  97. package/docs/functions/pgErrorType.html +1 -1
  98. package/docs/functions/range-1.html +1 -1
  99. package/docs/functions/relativeDreamPath.html +1 -1
  100. package/docs/functions/round.html +1 -1
  101. package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
  102. package/docs/functions/sharedPathPrefix.html +1 -1
  103. package/docs/functions/snakeify.html +1 -1
  104. package/docs/functions/sort.html +1 -1
  105. package/docs/functions/sortBy.html +1 -1
  106. package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
  107. package/docs/functions/uncapitalize.html +1 -1
  108. package/docs/functions/uniq.html +1 -1
  109. package/docs/functions/untypedDb.html +1 -1
  110. package/docs/functions/validateColumn.html +1 -1
  111. package/docs/functions/validateTable.html +1 -1
  112. package/docs/interfaces/AttributeStatement.html +2 -2
  113. package/docs/interfaces/DecoratorContext.html +2 -2
  114. package/docs/interfaces/DreamAppInitOptions.html +2 -2
  115. package/docs/interfaces/DreamAppOpts.html +2 -2
  116. package/docs/interfaces/DreamSerializerAssociationStatement.html +2 -2
  117. package/docs/interfaces/EncryptOptions.html +2 -2
  118. package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
  119. package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
  120. package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
  121. package/docs/types/Camelized.html +1 -1
  122. package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
  123. package/docs/types/DateTime.html +1 -1
  124. package/docs/types/DbConnectionType.html +1 -1
  125. package/docs/types/DreamAssociationMetadata.html +1 -1
  126. package/docs/types/DreamAttributes.html +1 -1
  127. package/docs/types/DreamClassColumn.html +1 -1
  128. package/docs/types/DreamColumn.html +1 -1
  129. package/docs/types/DreamColumnNames.html +1 -1
  130. package/docs/types/DreamLogLevel.html +1 -1
  131. package/docs/types/DreamLogger.html +1 -1
  132. package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
  133. package/docs/types/DreamParamSafeAttributes.html +1 -1
  134. package/docs/types/DreamParamSafeColumnNames.html +1 -1
  135. package/docs/types/DreamSerializerKey.html +1 -1
  136. package/docs/types/DreamSerializers.html +1 -1
  137. package/docs/types/DreamTableSchema.html +1 -1
  138. package/docs/types/DreamVirtualColumns.html +1 -1
  139. package/docs/types/EncryptAlgorithm.html +1 -1
  140. package/docs/types/Hyphenized.html +1 -1
  141. package/docs/types/IdType.html +1 -1
  142. package/docs/types/OpenapiAllTypes.html +1 -1
  143. package/docs/types/OpenapiFormats.html +1 -1
  144. package/docs/types/OpenapiNumberFormats.html +1 -1
  145. package/docs/types/OpenapiPrimitiveTypes.html +1 -1
  146. package/docs/types/OpenapiSchemaArray.html +1 -1
  147. package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
  148. package/docs/types/OpenapiSchemaBase.html +1 -1
  149. package/docs/types/OpenapiSchemaBody.html +1 -1
  150. package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
  151. package/docs/types/OpenapiSchemaCommonFields.html +1 -1
  152. package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
  153. package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
  154. package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
  155. package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
  156. package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  157. package/docs/types/OpenapiSchemaInteger.html +1 -1
  158. package/docs/types/OpenapiSchemaNull.html +1 -1
  159. package/docs/types/OpenapiSchemaNumber.html +1 -1
  160. package/docs/types/OpenapiSchemaObject.html +1 -1
  161. package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
  162. package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
  163. package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
  164. package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  165. package/docs/types/OpenapiSchemaObjectBase.html +1 -1
  166. package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
  167. package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
  168. package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
  169. package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
  170. package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
  171. package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  172. package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  173. package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  174. package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  175. package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  176. package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  177. package/docs/types/OpenapiSchemaString.html +1 -1
  178. package/docs/types/OpenapiShorthandAllTypes.html +1 -1
  179. package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
  180. package/docs/types/OpenapiTypeField.html +1 -1
  181. package/docs/types/Pascalized.html +1 -1
  182. package/docs/types/PrimaryKeyType.html +1 -1
  183. package/docs/types/RoundingPrecision.html +1 -1
  184. package/docs/types/SerializableClassOrSerializerCallback.html +1 -1
  185. package/docs/types/SerializableDreamClassOrViewModelClass.html +1 -1
  186. package/docs/types/SerializableDreamOrViewModel.html +1 -1
  187. package/docs/types/SerializableTypes.html +1 -1
  188. package/docs/types/Snakeified.html +1 -1
  189. package/docs/types/Timestamp.html +1 -1
  190. package/docs/types/UpdateableAssociationProperties.html +1 -1
  191. package/docs/types/UpdateableProperties.html +1 -1
  192. package/docs/types/ValidationType.html +1 -1
  193. package/docs/types/ViewModelSerializerKey.html +1 -1
  194. package/docs/types/WhereStatementForDream.html +1 -1
  195. package/docs/types/WhereStatementForDreamClass.html +1 -1
  196. package/docs/variables/DateTime-1.html +1 -1
  197. package/docs/variables/DreamConst.html +1 -1
  198. package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
  199. package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
  200. package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
  201. package/docs/variables/ops.html +1 -1
  202. package/docs/variables/primaryKeyTypes.html +1 -1
  203. package/package.json +1 -1
@@ -34,16 +34,16 @@ function generateFactoryContent({ fullyQualifiedModelName, columnsWithTypes, })
34
34
  belongsToNames.push(associationName);
35
35
  belongsToTypedNames.push(`${associationName}: ${associationModelName}`);
36
36
  additionalImports.push(associationFactoryImportStatement);
37
- associationCreationStatements.push(`attrs.${associationName} ??= await create${associationModelName}()`);
37
+ associationCreationStatements.push(`${associationName}: await create${associationModelName}(),`);
38
38
  break;
39
39
  case 'string':
40
40
  case 'text':
41
41
  case 'citext':
42
- stringAttributes.push(`attrs.${(0, camelize_js_1.default)(attributeName)} ??= \`${fullyQualifiedModelName} ${(0, camelize_js_1.default)(attributeName)} ${firstStringAttr ? '${++counter}' : '${counter}'}\``);
42
+ stringAttributes.push(`${(0, camelize_js_1.default)(attributeName)}: \`${fullyQualifiedModelName} ${(0, camelize_js_1.default)(attributeName)} ${firstStringAttr ? '${++counter}' : '${counter}'}\`,`);
43
43
  firstStringAttr = false;
44
44
  break;
45
45
  case 'enum':
46
- stringAttributes.push(`attrs.${(0, camelize_js_1.default)(attributeName)} ??= '${(descriptors[descriptors.length - 1] || '<tbd>').split(',')[0]}'`);
46
+ stringAttributes.push(`${(0, camelize_js_1.default)(attributeName)}: '${(descriptors[descriptors.length - 1] || '<tbd>').split(',')[0]}',`);
47
47
  break;
48
48
  default:
49
49
  // noop
@@ -56,7 +56,9 @@ import { ${(0, uniq_js_1.default)(dreamImports).join(', ')} } from '@rvoh/dream'
56
56
  import ${modelClassName} from '${relativePath}'${additionalImports.length ? '\n' + (0, uniq_js_1.default)(additionalImports).join('\n') : ''}
57
57
  ${stringAttributes.length ? '\nlet counter = 0\n' : ''}
58
58
  export default async function create${modelClassName}(attrs: UpdateableProperties<${modelClassName}> = {}) {
59
- ${associationCreationStatements.length ? associationCreationStatements.join('\n ') + '\n ' : ''}${stringAttributes.length ? stringAttributes.join('\n ') + '\n ' : ''}return await ${modelClassName}.create(attrs)
59
+ return await ${modelClassName}.create({
60
+ ${associationCreationStatements.length ? associationCreationStatements.join('\n ') + '\n ' : ''}${stringAttributes.length ? stringAttributes.join('\n ') + '\n ' : ''}...attrs,
61
+ })
60
62
  }
61
63
  `;
62
64
  }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -31,16 +31,16 @@ export default function generateFactoryContent({ fullyQualifiedModelName, column
31
31
  belongsToNames.push(associationName);
32
32
  belongsToTypedNames.push(`${associationName}: ${associationModelName}`);
33
33
  additionalImports.push(associationFactoryImportStatement);
34
- associationCreationStatements.push(`attrs.${associationName} ??= await create${associationModelName}()`);
34
+ associationCreationStatements.push(`${associationName}: await create${associationModelName}(),`);
35
35
  break;
36
36
  case 'string':
37
37
  case 'text':
38
38
  case 'citext':
39
- stringAttributes.push(`attrs.${camelize(attributeName)} ??= \`${fullyQualifiedModelName} ${camelize(attributeName)} ${firstStringAttr ? '${++counter}' : '${counter}'}\``);
39
+ stringAttributes.push(`${camelize(attributeName)}: \`${fullyQualifiedModelName} ${camelize(attributeName)} ${firstStringAttr ? '${++counter}' : '${counter}'}\`,`);
40
40
  firstStringAttr = false;
41
41
  break;
42
42
  case 'enum':
43
- stringAttributes.push(`attrs.${camelize(attributeName)} ??= '${(descriptors[descriptors.length - 1] || '<tbd>').split(',')[0]}'`);
43
+ stringAttributes.push(`${camelize(attributeName)}: '${(descriptors[descriptors.length - 1] || '<tbd>').split(',')[0]}',`);
44
44
  break;
45
45
  default:
46
46
  // noop
@@ -53,7 +53,9 @@ import { ${uniq(dreamImports).join(', ')} } from '@rvoh/dream'
53
53
  import ${modelClassName} from '${relativePath}'${additionalImports.length ? '\n' + uniq(additionalImports).join('\n') : ''}
54
54
  ${stringAttributes.length ? '\nlet counter = 0\n' : ''}
55
55
  export default async function create${modelClassName}(attrs: UpdateableProperties<${modelClassName}> = {}) {
56
- ${associationCreationStatements.length ? associationCreationStatements.join('\n ') + '\n ' : ''}${stringAttributes.length ? stringAttributes.join('\n ') + '\n ' : ''}return await ${modelClassName}.create(attrs)
56
+ return await ${modelClassName}.create({
57
+ ${associationCreationStatements.length ? associationCreationStatements.join('\n ') + '\n ' : ''}${stringAttributes.length ? stringAttributes.join('\n ') + '\n ' : ''}...attrs,
58
+ })
57
59
  }
58
60
  `;
59
61
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -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>