@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.
- package/dist/cjs/src/helpers/cli/generateFactoryContent.js +6 -4
- package/dist/cjs/src/types/associations/belongsTo.js +2 -0
- package/dist/cjs/src/types/associations/hasMany.js +2 -0
- package/dist/cjs/src/types/associations/hasOne.js +2 -0
- package/dist/cjs/src/types/associations/shared.js +2 -0
- package/dist/cjs/src/types/db.js +2 -0
- package/dist/cjs/src/types/dream.js +2 -0
- package/dist/cjs/src/types/lifecycle.js +2 -0
- package/dist/cjs/src/types/logger.js +2 -0
- package/dist/cjs/src/types/openapi.js +2 -0
- package/dist/cjs/src/types/query.js +2 -0
- package/dist/cjs/src/types/utils.js +2 -0
- package/dist/cjs/src/types/validation.js +2 -0
- package/dist/cjs/src/types/variadic.js +2 -0
- package/dist/esm/src/helpers/cli/generateFactoryContent.js +6 -4
- package/dist/esm/src/types/associations/belongsTo.js +1 -0
- package/dist/esm/src/types/associations/hasMany.js +1 -0
- package/dist/esm/src/types/associations/hasOne.js +1 -0
- package/dist/esm/src/types/associations/shared.js +1 -0
- package/dist/esm/src/types/db.js +1 -0
- package/dist/esm/src/types/dream.js +1 -0
- package/dist/esm/src/types/lifecycle.js +1 -0
- package/dist/esm/src/types/logger.js +1 -0
- package/dist/esm/src/types/openapi.js +1 -0
- package/dist/esm/src/types/query.js +1 -0
- package/dist/esm/src/types/utils.js +1 -0
- package/dist/esm/src/types/validation.js +1 -0
- package/dist/esm/src/types/variadic.js +1 -0
- package/dist/types/src/types/associations/belongsTo.d.ts +28 -73
- package/dist/types/src/types/associations/belongsTo.ts +76 -0
- package/dist/types/src/types/associations/hasMany.d.ts +15 -79
- package/dist/types/src/types/associations/hasMany.ts +80 -0
- package/dist/types/src/types/associations/hasOne.d.ts +8 -26
- package/dist/types/src/types/associations/hasOne.ts +26 -0
- package/dist/types/src/types/associations/shared.d.ts +98 -444
- package/dist/types/src/types/associations/shared.ts +450 -0
- package/dist/types/src/types/db.d.ts +9 -14
- package/dist/types/src/types/db.ts +14 -0
- package/dist/types/src/types/dream.d.ts +124 -510
- package/dist/types/src/types/dream.ts +521 -0
- package/dist/types/src/types/lifecycle.d.ts +23 -42
- package/dist/types/src/types/lifecycle.ts +50 -0
- package/dist/types/src/types/logger.d.ts +6 -40
- package/dist/types/src/types/logger.ts +42 -0
- package/dist/types/src/types/openapi.d.ts +105 -222
- package/dist/types/src/types/openapi.ts +255 -0
- package/dist/types/src/types/query.d.ts +53 -161
- package/dist/types/src/types/query.ts +165 -0
- package/dist/types/src/types/utils.d.ts +83 -141
- package/dist/types/src/types/utils.ts +173 -0
- package/dist/types/src/types/validation.d.ts +17 -18
- package/dist/types/src/types/validation.ts +20 -0
- package/dist/types/src/types/variadic.d.ts +42 -444
- package/dist/types/src/types/variadic.ts +447 -0
- package/docs/classes/Benchmark.html +2 -2
- package/docs/classes/CalendarDate.html +2 -2
- package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
- package/docs/classes/Decorators.html +19 -19
- package/docs/classes/Dream.html +132 -132
- package/docs/classes/DreamApp.html +4 -4
- package/docs/classes/DreamBin.html +2 -2
- package/docs/classes/DreamCLI.html +4 -4
- package/docs/classes/DreamImporter.html +2 -2
- package/docs/classes/DreamLogos.html +2 -2
- package/docs/classes/DreamMigrationHelpers.html +7 -7
- package/docs/classes/DreamSerializer.html +2 -2
- package/docs/classes/DreamTransaction.html +2 -2
- package/docs/classes/Encrypt.html +2 -2
- package/docs/classes/Env.html +2 -2
- package/docs/classes/GlobalNameNotSet.html +3 -3
- package/docs/classes/NonLoadedAssociation.html +3 -3
- package/docs/classes/Query.html +52 -52
- package/docs/classes/Range.html +2 -2
- package/docs/classes/RecordNotFound.html +3 -3
- package/docs/classes/ValidationError.html +3 -3
- package/docs/functions/Attribute.html +1 -1
- package/docs/functions/RendersMany.html +1 -1
- package/docs/functions/RendersOne.html +1 -1
- package/docs/functions/ReplicaSafe.html +1 -1
- package/docs/functions/STI.html +1 -1
- package/docs/functions/SoftDelete.html +1 -1
- package/docs/functions/camelize.html +1 -1
- package/docs/functions/capitalize.html +1 -1
- package/docs/functions/closeAllDbConnections.html +1 -1
- package/docs/functions/compact.html +1 -1
- package/docs/functions/dreamDbConnections.html +1 -1
- package/docs/functions/dreamPath.html +1 -1
- package/docs/functions/generateDream.html +1 -1
- package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
- package/docs/functions/hyphenize.html +1 -1
- package/docs/functions/inferSerializerFromDreamClassOrViewModelClass.html +1 -1
- package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
- package/docs/functions/isEmpty.html +1 -1
- package/docs/functions/loadRepl.html +1 -1
- package/docs/functions/lookupClassByGlobalName.html +1 -1
- package/docs/functions/pascalize.html +1 -1
- package/docs/functions/pgErrorType.html +1 -1
- package/docs/functions/range-1.html +1 -1
- package/docs/functions/relativeDreamPath.html +1 -1
- package/docs/functions/round.html +1 -1
- package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
- package/docs/functions/sharedPathPrefix.html +1 -1
- package/docs/functions/snakeify.html +1 -1
- package/docs/functions/sort.html +1 -1
- package/docs/functions/sortBy.html +1 -1
- package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
- package/docs/functions/uncapitalize.html +1 -1
- package/docs/functions/uniq.html +1 -1
- package/docs/functions/untypedDb.html +1 -1
- package/docs/functions/validateColumn.html +1 -1
- package/docs/functions/validateTable.html +1 -1
- package/docs/interfaces/AttributeStatement.html +2 -2
- package/docs/interfaces/DecoratorContext.html +2 -2
- package/docs/interfaces/DreamAppInitOptions.html +2 -2
- package/docs/interfaces/DreamAppOpts.html +2 -2
- package/docs/interfaces/DreamSerializerAssociationStatement.html +2 -2
- package/docs/interfaces/EncryptOptions.html +2 -2
- package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
- package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
- package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
- package/docs/types/Camelized.html +1 -1
- package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
- package/docs/types/DateTime.html +1 -1
- package/docs/types/DbConnectionType.html +1 -1
- package/docs/types/DreamAssociationMetadata.html +1 -1
- package/docs/types/DreamAttributes.html +1 -1
- package/docs/types/DreamClassColumn.html +1 -1
- package/docs/types/DreamColumn.html +1 -1
- package/docs/types/DreamColumnNames.html +1 -1
- package/docs/types/DreamLogLevel.html +1 -1
- package/docs/types/DreamLogger.html +1 -1
- package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
- package/docs/types/DreamParamSafeAttributes.html +1 -1
- package/docs/types/DreamParamSafeColumnNames.html +1 -1
- package/docs/types/DreamSerializerKey.html +1 -1
- package/docs/types/DreamSerializers.html +1 -1
- package/docs/types/DreamTableSchema.html +1 -1
- package/docs/types/DreamVirtualColumns.html +1 -1
- package/docs/types/EncryptAlgorithm.html +1 -1
- package/docs/types/Hyphenized.html +1 -1
- package/docs/types/IdType.html +1 -1
- package/docs/types/OpenapiAllTypes.html +1 -1
- package/docs/types/OpenapiFormats.html +1 -1
- package/docs/types/OpenapiNumberFormats.html +1 -1
- package/docs/types/OpenapiPrimitiveTypes.html +1 -1
- package/docs/types/OpenapiSchemaArray.html +1 -1
- package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
- package/docs/types/OpenapiSchemaBase.html +1 -1
- package/docs/types/OpenapiSchemaBody.html +1 -1
- package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
- package/docs/types/OpenapiSchemaCommonFields.html +1 -1
- package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
- package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
- package/docs/types/OpenapiSchemaInteger.html +1 -1
- package/docs/types/OpenapiSchemaNull.html +1 -1
- package/docs/types/OpenapiSchemaNumber.html +1 -1
- package/docs/types/OpenapiSchemaObject.html +1 -1
- package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectBase.html +1 -1
- package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
- package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
- package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
- package/docs/types/OpenapiSchemaString.html +1 -1
- package/docs/types/OpenapiShorthandAllTypes.html +1 -1
- package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
- package/docs/types/OpenapiTypeField.html +1 -1
- package/docs/types/Pascalized.html +1 -1
- package/docs/types/PrimaryKeyType.html +1 -1
- package/docs/types/RoundingPrecision.html +1 -1
- package/docs/types/SerializableClassOrSerializerCallback.html +1 -1
- package/docs/types/SerializableDreamClassOrViewModelClass.html +1 -1
- package/docs/types/SerializableDreamOrViewModel.html +1 -1
- package/docs/types/SerializableTypes.html +1 -1
- package/docs/types/Snakeified.html +1 -1
- package/docs/types/Timestamp.html +1 -1
- package/docs/types/UpdateableAssociationProperties.html +1 -1
- package/docs/types/UpdateableProperties.html +1 -1
- package/docs/types/ValidationType.html +1 -1
- package/docs/types/ViewModelSerializerKey.html +1 -1
- package/docs/types/WhereStatementForDream.html +1 -1
- package/docs/types/WhereStatementForDreamClass.html +1 -1
- package/docs/variables/DateTime-1.html +1 -1
- package/docs/variables/DreamConst.html +1 -1
- package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
- package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
- package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
- package/docs/variables/ops.html +1 -1
- package/docs/variables/primaryKeyTypes.html +1 -1
- package/package.json +1 -1
|
@@ -1,447 +1,45 @@
|
|
|
1
|
-
import { Camelized } from '../helpers/stringCasing.
|
|
2
|
-
import { AssociationTableNames } from './db.js'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
type
|
|
12
|
-
type
|
|
13
|
-
type
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export type VariadicLoadArgs<
|
|
22
|
-
DB,
|
|
23
|
-
Schema,
|
|
24
|
-
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
25
|
-
ConcreteArgs extends readonly unknown[],
|
|
26
|
-
//
|
|
27
|
-
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
28
|
-
AllowedNextArgValues =
|
|
29
|
-
| (keyof SchemaAssociations & string)
|
|
30
|
-
| AliasedSchemaAssociation<Schema, ConcreteTableName>,
|
|
31
|
-
> = VariadicCheckThenRecurse<
|
|
32
|
-
DB,
|
|
33
|
-
Schema,
|
|
34
|
-
ConcreteTableName,
|
|
35
|
-
ConcreteArgs,
|
|
36
|
-
'load',
|
|
37
|
-
ConcreteTableName,
|
|
38
|
-
0,
|
|
39
|
-
null,
|
|
40
|
-
never,
|
|
41
|
-
AllowedNextArgValues | Readonly<AllowedNextArgValues[]>
|
|
42
|
-
>
|
|
43
|
-
///////////////////////////////
|
|
44
|
-
// end: VARIADIC LOAD
|
|
45
|
-
///////////////////////////////
|
|
46
|
-
///////////////////////////////
|
|
47
|
-
// VARIADIC LEFT JOIN LOAD
|
|
48
|
-
///////////////////////////////
|
|
49
|
-
export type VariadicLeftJoinLoadArgs<
|
|
50
|
-
DB,
|
|
51
|
-
Schema,
|
|
52
|
-
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
53
|
-
ConcreteArgs extends readonly unknown[],
|
|
54
|
-
//
|
|
55
|
-
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
56
|
-
AllowedNextArgValues =
|
|
57
|
-
| (keyof SchemaAssociations & string)
|
|
58
|
-
| AliasedSchemaAssociation<Schema, ConcreteTableName>,
|
|
59
|
-
> = VariadicCheckThenRecurse<
|
|
60
|
-
DB,
|
|
61
|
-
Schema,
|
|
62
|
-
ConcreteTableName,
|
|
63
|
-
ConcreteArgs,
|
|
64
|
-
'leftJoinLoad',
|
|
65
|
-
// Dream configures Kysely to use camel case in Typescript land and
|
|
66
|
-
// convert to snake case in SQL; however, Dream reference snake-cased table names.
|
|
67
|
-
// Without camelizing, the table name of the starting model could conflict with the
|
|
68
|
-
// snake-cased version of an association name. By camelizing the table that goes
|
|
69
|
-
// into the UsedNamespaces, we prevent this from happeing at the type level.
|
|
70
|
-
Camelized<ConcreteTableName>,
|
|
71
|
-
0,
|
|
72
|
-
null,
|
|
73
|
-
never,
|
|
74
|
-
AllowedNextArgValues | Readonly<AllowedNextArgValues[]>
|
|
75
|
-
>
|
|
76
|
-
///////////////////////////////
|
|
77
|
-
// end:VARIADIC LEFT JOIN LOAD
|
|
78
|
-
///////////////////////////////
|
|
79
|
-
///////////////////////////////
|
|
80
|
-
// VARIADIC JOINS
|
|
81
|
-
///////////////////////////////
|
|
82
|
-
export type VariadicJoinsArgs<
|
|
83
|
-
DB,
|
|
84
|
-
Schema,
|
|
85
|
-
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
86
|
-
ConcreteArgs extends readonly unknown[],
|
|
87
|
-
//
|
|
88
|
-
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
89
|
-
AllowedNextArgValues =
|
|
90
|
-
| (keyof SchemaAssociations & string)
|
|
91
|
-
| AliasedSchemaAssociation<Schema, ConcreteTableName>,
|
|
92
|
-
> = VariadicCheckThenRecurse<
|
|
93
|
-
DB,
|
|
94
|
-
Schema,
|
|
95
|
-
ConcreteTableName,
|
|
96
|
-
ConcreteArgs,
|
|
97
|
-
'join',
|
|
98
|
-
// Dream configures Kysely to use camel case in Typescript land and
|
|
99
|
-
// convert to snake case in SQL; however, Dream reference snake-cased table names.
|
|
100
|
-
// Without camelizing, the table name of the starting model could conflict with the
|
|
101
|
-
// snake-cased version of an association name. By camelizing the table that goes
|
|
102
|
-
// into the UsedNamespaces, we prevent this from happeing at the type level.
|
|
103
|
-
// Camelized<ConcreteTableName>,
|
|
104
|
-
Camelized<ConcreteTableName>,
|
|
105
|
-
0,
|
|
106
|
-
null,
|
|
107
|
-
never,
|
|
108
|
-
AllowedNextArgValues
|
|
109
|
-
>
|
|
110
|
-
///////////////////////////////
|
|
111
|
-
// end: VARIADIC JOINS
|
|
112
|
-
///////////////////////////////
|
|
113
|
-
export type RequiredOnClauseKeys<
|
|
114
|
-
Schema,
|
|
115
|
-
TableName,
|
|
116
|
-
AssociationName,
|
|
117
|
-
Associations = TableName extends null
|
|
118
|
-
? null
|
|
119
|
-
: TableName extends keyof Schema & string
|
|
120
|
-
? Schema[TableName]['associations' & keyof Schema[TableName]]
|
|
121
|
-
: null,
|
|
122
|
-
Association = Associations extends null
|
|
123
|
-
? null
|
|
124
|
-
: AssociationName extends keyof Associations
|
|
125
|
-
? Associations[AssociationName]
|
|
126
|
-
: null,
|
|
127
|
-
RequiredOnClauses = Association extends null
|
|
128
|
-
? null
|
|
129
|
-
: Association['requiredOnClauses' & keyof Association] & (string[] | null),
|
|
130
|
-
> = RequiredOnClauses
|
|
131
|
-
type VariadicCheckThenRecurse<
|
|
132
|
-
DB,
|
|
133
|
-
Schema,
|
|
134
|
-
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
135
|
-
ConcreteArgs extends readonly unknown[],
|
|
136
|
-
RecursionType extends RecursionTypes,
|
|
137
|
-
UsedNamespaces,
|
|
138
|
-
Depth extends number,
|
|
139
|
-
//
|
|
140
|
-
PreviousConcreteTableName,
|
|
141
|
-
ConcreteAssociationName,
|
|
142
|
-
//
|
|
143
|
-
AssociationNamesOrOnClause,
|
|
144
|
-
//
|
|
145
|
-
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
146
|
-
NthArgument extends VALID | INVALID = ConcreteArgs['length'] extends 0
|
|
147
|
-
? VALID
|
|
148
|
-
: ConcreteArgs[0] extends keyof SchemaAssociations & string
|
|
149
|
-
? VALID
|
|
150
|
-
: ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
151
|
-
? VALID
|
|
152
|
-
: ConcreteArgs[0] extends JoinAndStatements<
|
|
153
|
-
DB,
|
|
154
|
-
Schema,
|
|
155
|
-
ConcreteTableName,
|
|
156
|
-
RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>
|
|
157
|
-
>
|
|
158
|
-
? VALID
|
|
159
|
-
: INVALID,
|
|
160
|
-
> = NthArgument extends INVALID
|
|
161
|
-
? `invalid where clause in argument ${Inc<Depth>}`
|
|
162
|
-
: ConcreteArgs['length'] extends 0
|
|
163
|
-
? AssociationNamesOrOnClause
|
|
164
|
-
: VariadicRecurse<
|
|
165
|
-
DB,
|
|
166
|
-
Schema,
|
|
167
|
-
ConcreteTableName,
|
|
168
|
-
ConcreteArgs,
|
|
169
|
-
RecursionType,
|
|
170
|
-
UsedNamespaces,
|
|
171
|
-
Depth,
|
|
172
|
-
PreviousConcreteTableName,
|
|
173
|
-
ConcreteAssociationName
|
|
174
|
-
>
|
|
175
|
-
|
|
176
|
-
export type AliasedSchemaAssociation<
|
|
177
|
-
Schema,
|
|
178
|
-
ConcreteTableName extends keyof Schema,
|
|
179
|
-
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
180
|
-
> = `${keyof SchemaAssociations & string} as ${string}`
|
|
181
|
-
type VariadicRecurse<
|
|
182
|
-
DB,
|
|
183
|
-
Schema,
|
|
184
|
-
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
185
|
-
ConcreteArgs extends readonly unknown[],
|
|
186
|
-
RecursionType extends RecursionTypes,
|
|
187
|
-
UsedNamespaces,
|
|
188
|
-
Depth extends number,
|
|
189
|
-
//
|
|
190
|
-
PreviousConcreteTableName,
|
|
191
|
-
ConcreteAssociationName,
|
|
192
|
-
//
|
|
193
|
-
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
194
|
-
ConcreteNthArg extends
|
|
195
|
-
| (keyof SchemaAssociations & string)
|
|
196
|
-
| AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
197
|
-
| null = ConcreteArgs[0] extends undefined
|
|
198
|
-
? null
|
|
199
|
-
: ConcreteArgs[0] extends null
|
|
200
|
-
? null
|
|
201
|
-
: ConcreteArgs[0] extends keyof SchemaAssociations & string
|
|
202
|
-
? ConcreteArgs[0] & keyof SchemaAssociations & string
|
|
203
|
-
: ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
204
|
-
? ConcreteArgs[0] & AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
205
|
-
: null,
|
|
206
|
-
NextUsedNamespaces = ConcreteArgs[0] extends undefined
|
|
207
|
-
? never
|
|
208
|
-
: ConcreteArgs[0] extends null
|
|
209
|
-
? never
|
|
210
|
-
: ConcreteArgs[0] extends keyof SchemaAssociations & string
|
|
211
|
-
? UsedNamespaces | ConcreteNthArg
|
|
212
|
-
: UsedNamespaces,
|
|
213
|
-
//
|
|
214
|
-
CurrentArgumentType extends
|
|
215
|
-
| IS_ASSOCIATION_NAME
|
|
216
|
-
| IS_ASSOCIATION_ALIAS
|
|
217
|
-
| IS_NOT_ASSOCIATION_NAME = ConcreteNthArg extends null
|
|
218
|
-
? IS_NOT_ASSOCIATION_NAME
|
|
219
|
-
: ConcreteNthArg extends keyof SchemaAssociations & string
|
|
220
|
-
? IS_ASSOCIATION_NAME
|
|
221
|
-
: ConcreteNthArg extends AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
222
|
-
? IS_ASSOCIATION_ALIAS
|
|
223
|
-
: IS_NOT_ASSOCIATION_NAME,
|
|
224
|
-
//
|
|
225
|
-
NextPreviousConcreteTableName = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
226
|
-
? ConcreteTableName
|
|
227
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
228
|
-
? ConcreteTableName
|
|
229
|
-
: PreviousConcreteTableName,
|
|
230
|
-
//
|
|
231
|
-
NextUnaliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
232
|
-
? ConcreteNthArg
|
|
233
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
234
|
-
? ConcreteNthArg extends `${infer AssocName extends string} as ${string}`
|
|
235
|
-
? AssocName & keyof SchemaAssociations & string
|
|
236
|
-
: never
|
|
237
|
-
: never,
|
|
238
|
-
//
|
|
239
|
-
NextAliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
240
|
-
? ConcreteNthArg
|
|
241
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
242
|
-
? ConcreteNthArg extends `${string} as ${infer AssocAlias extends string}`
|
|
243
|
-
? AssocAlias & string
|
|
244
|
-
: ConcreteAssociationName
|
|
245
|
-
: ConcreteAssociationName,
|
|
246
|
-
//
|
|
247
|
-
NextTableName extends keyof Schema &
|
|
248
|
-
AssociationTableNames<DB, Schema> &
|
|
249
|
-
keyof DB = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
250
|
-
? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName>
|
|
251
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
252
|
-
? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName>
|
|
253
|
-
: ConcreteTableName & AssociationTableNames<DB, Schema> & keyof DB,
|
|
254
|
-
//
|
|
255
|
-
AllowedNextArgValues = RecursionType extends 'load'
|
|
256
|
-
? AllowedNextArgValuesForLoad<
|
|
257
|
-
DB,
|
|
258
|
-
Schema,
|
|
259
|
-
NextTableName,
|
|
260
|
-
RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>
|
|
261
|
-
>
|
|
262
|
-
: RecursionType extends 'leftJoinLoad'
|
|
263
|
-
? AllowedNextArgValuesForLeftJoinLoad<
|
|
264
|
-
DB,
|
|
265
|
-
Schema,
|
|
266
|
-
NextTableName,
|
|
267
|
-
RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>,
|
|
268
|
-
NextUsedNamespaces
|
|
269
|
-
>
|
|
270
|
-
: RecursionType extends 'join'
|
|
271
|
-
? AllowedNextArgValuesForJoin<
|
|
272
|
-
DB,
|
|
273
|
-
Schema,
|
|
274
|
-
NextTableName,
|
|
275
|
-
RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>,
|
|
276
|
-
NextUsedNamespaces
|
|
277
|
-
>
|
|
278
|
-
: never,
|
|
279
|
-
> = Depth extends MAX_VARIADIC_DEPTH
|
|
280
|
-
? never
|
|
281
|
-
: VariadicCheckThenRecurse<
|
|
282
|
-
DB,
|
|
283
|
-
Schema,
|
|
284
|
-
NextTableName,
|
|
285
|
-
ReadonlyTail<ConcreteArgs>,
|
|
286
|
-
RecursionType,
|
|
287
|
-
NextUsedNamespaces,
|
|
288
|
-
Inc<Depth>,
|
|
289
|
-
NextPreviousConcreteTableName,
|
|
290
|
-
NextAliasedAssociationName,
|
|
291
|
-
AllowedNextArgValues
|
|
292
|
-
>
|
|
293
|
-
type AllowedNextArgValuesForLoad<
|
|
294
|
-
DB,
|
|
295
|
-
Schema,
|
|
296
|
-
TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
297
|
-
RequiredOnClauseKeysForThisAssociation,
|
|
298
|
-
> =
|
|
299
|
-
| AssociationNamesForTable<Schema, TableName>
|
|
300
|
-
| AssociationNamesForTable<Schema, TableName>[]
|
|
301
|
-
| JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
302
|
-
type AllowedNextArgValuesForLeftJoinLoad<
|
|
303
|
-
DB,
|
|
304
|
-
Schema,
|
|
305
|
-
TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
306
|
-
RequiredOnClauseKeysForThisAssociation,
|
|
307
|
-
UsedNamespaces,
|
|
308
|
-
> =
|
|
309
|
-
| Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>
|
|
310
|
-
| Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>[]
|
|
311
|
-
| JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
312
|
-
type AllowedNextArgValuesForJoin<
|
|
313
|
-
DB,
|
|
314
|
-
Schema,
|
|
315
|
-
TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
316
|
-
RequiredOnClauseKeysForThisAssociation,
|
|
317
|
-
UsedNamespaces,
|
|
318
|
-
> =
|
|
319
|
-
| Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>
|
|
320
|
-
| JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
321
|
-
|
|
1
|
+
import { Camelized } from '../helpers/stringCasing.js';
|
|
2
|
+
import { AssociationTableNames } from './db.js';
|
|
3
|
+
import { AssociationNamesForTable, AssociationTableName, JoinAndStatements, MAX_VARIADIC_DEPTH } from './dream.js';
|
|
4
|
+
import { Inc, ReadonlyTail } from './utils.js';
|
|
5
|
+
type VALID = 'valid';
|
|
6
|
+
type INVALID = 'invalid';
|
|
7
|
+
type IS_ASSOCIATION_ALIAS = 'association_alias';
|
|
8
|
+
type IS_ASSOCIATION_NAME = 'association_name';
|
|
9
|
+
type IS_NOT_ASSOCIATION_NAME = 'not_association_name';
|
|
10
|
+
type RecursionTypes = 'load' | 'leftJoinLoad' | 'join';
|
|
11
|
+
export type VariadicLoadArgs<DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], AllowedNextArgValues = (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName>> = VariadicCheckThenRecurse<DB, Schema, ConcreteTableName, ConcreteArgs, 'load', ConcreteTableName, 0, null, never, AllowedNextArgValues | Readonly<AllowedNextArgValues[]>>;
|
|
12
|
+
export type VariadicLeftJoinLoadArgs<DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], AllowedNextArgValues = (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName>> = VariadicCheckThenRecurse<DB, Schema, ConcreteTableName, ConcreteArgs, 'leftJoinLoad', Camelized<ConcreteTableName>, 0, null, never, AllowedNextArgValues | Readonly<AllowedNextArgValues[]>>;
|
|
13
|
+
export type VariadicJoinsArgs<DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], AllowedNextArgValues = (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName>> = VariadicCheckThenRecurse<DB, Schema, ConcreteTableName, ConcreteArgs, 'join', Camelized<ConcreteTableName>, 0, null, never, AllowedNextArgValues>;
|
|
14
|
+
export type RequiredOnClauseKeys<Schema, TableName, AssociationName, Associations = TableName extends null ? null : TableName extends keyof Schema & string ? Schema[TableName]['associations' & keyof Schema[TableName]] : null, Association = Associations extends null ? null : AssociationName extends keyof Associations ? Associations[AssociationName] : null, RequiredOnClauses = Association extends null ? null : Association['requiredOnClauses' & keyof Association] & (string[] | null)> = RequiredOnClauses;
|
|
15
|
+
type VariadicCheckThenRecurse<DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], RecursionType extends RecursionTypes, UsedNamespaces, Depth extends number, PreviousConcreteTableName, ConcreteAssociationName, AssociationNamesOrOnClause, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], NthArgument extends VALID | INVALID = ConcreteArgs['length'] extends 0 ? VALID : ConcreteArgs[0] extends keyof SchemaAssociations & string ? VALID : ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName> ? VALID : ConcreteArgs[0] extends JoinAndStatements<DB, Schema, ConcreteTableName, RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>> ? VALID : INVALID> = NthArgument extends INVALID ? `invalid where clause in argument ${Inc<Depth>}` : ConcreteArgs['length'] extends 0 ? AssociationNamesOrOnClause : VariadicRecurse<DB, Schema, ConcreteTableName, ConcreteArgs, RecursionType, UsedNamespaces, Depth, PreviousConcreteTableName, ConcreteAssociationName>;
|
|
16
|
+
export type AliasedSchemaAssociation<Schema, ConcreteTableName extends keyof Schema, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]]> = `${keyof SchemaAssociations & string} as ${string}`;
|
|
17
|
+
type VariadicRecurse<DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], RecursionType extends RecursionTypes, UsedNamespaces, Depth extends number, PreviousConcreteTableName, ConcreteAssociationName, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], ConcreteNthArg extends (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName> | null = ConcreteArgs[0] extends undefined ? null : ConcreteArgs[0] extends null ? null : ConcreteArgs[0] extends keyof SchemaAssociations & string ? ConcreteArgs[0] & keyof SchemaAssociations & string : ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName> ? ConcreteArgs[0] & AliasedSchemaAssociation<Schema, ConcreteTableName> : null, NextUsedNamespaces = ConcreteArgs[0] extends undefined ? never : ConcreteArgs[0] extends null ? never : ConcreteArgs[0] extends keyof SchemaAssociations & string ? UsedNamespaces | ConcreteNthArg : UsedNamespaces, CurrentArgumentType extends IS_ASSOCIATION_NAME | IS_ASSOCIATION_ALIAS | IS_NOT_ASSOCIATION_NAME = ConcreteNthArg extends null ? IS_NOT_ASSOCIATION_NAME : ConcreteNthArg extends keyof SchemaAssociations & string ? IS_ASSOCIATION_NAME : ConcreteNthArg extends AliasedSchemaAssociation<Schema, ConcreteTableName> ? IS_ASSOCIATION_ALIAS : IS_NOT_ASSOCIATION_NAME, NextPreviousConcreteTableName = CurrentArgumentType extends IS_ASSOCIATION_NAME ? ConcreteTableName : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? ConcreteTableName : PreviousConcreteTableName, NextUnaliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME ? ConcreteNthArg : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? ConcreteNthArg extends `${infer AssocName extends string} as ${string}` ? AssocName & keyof SchemaAssociations & string : never : never, NextAliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME ? ConcreteNthArg : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? ConcreteNthArg extends `${string} as ${infer AssocAlias extends string}` ? AssocAlias & string : ConcreteAssociationName : ConcreteAssociationName, NextTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB = CurrentArgumentType extends IS_ASSOCIATION_NAME ? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName> : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName> : ConcreteTableName & AssociationTableNames<DB, Schema> & keyof DB, AllowedNextArgValues = RecursionType extends 'load' ? AllowedNextArgValuesForLoad<DB, Schema, NextTableName, RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>> : RecursionType extends 'leftJoinLoad' ? AllowedNextArgValuesForLeftJoinLoad<DB, Schema, NextTableName, RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>, NextUsedNamespaces> : RecursionType extends 'join' ? AllowedNextArgValuesForJoin<DB, Schema, NextTableName, RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>, NextUsedNamespaces> : never> = Depth extends MAX_VARIADIC_DEPTH ? never : VariadicCheckThenRecurse<DB, Schema, NextTableName, ReadonlyTail<ConcreteArgs>, RecursionType, NextUsedNamespaces, Inc<Depth>, NextPreviousConcreteTableName, NextAliasedAssociationName, AllowedNextArgValues>;
|
|
18
|
+
type AllowedNextArgValuesForLoad<DB, Schema, TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, RequiredOnClauseKeysForThisAssociation> = AssociationNamesForTable<Schema, TableName> | AssociationNamesForTable<Schema, TableName>[] | JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>;
|
|
19
|
+
type AllowedNextArgValuesForLeftJoinLoad<DB, Schema, TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, RequiredOnClauseKeysForThisAssociation, UsedNamespaces> = Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces> | Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>[] | JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>;
|
|
20
|
+
type AllowedNextArgValuesForJoin<DB, Schema, TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, RequiredOnClauseKeysForThisAssociation, UsedNamespaces> = Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces> | JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>;
|
|
322
21
|
export interface JoinedAssociation {
|
|
323
|
-
|
|
324
|
-
|
|
22
|
+
table: string;
|
|
23
|
+
alias: string;
|
|
325
24
|
}
|
|
326
|
-
|
|
327
25
|
export type QueryTypeOptions = {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
//
|
|
349
|
-
ConcreteNthArg extends
|
|
350
|
-
| (keyof SchemaAssociations & string)
|
|
351
|
-
| AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
352
|
-
| Readonly<unknown[]>
|
|
353
|
-
| null = ConcreteArgs[0] extends undefined
|
|
354
|
-
? null
|
|
355
|
-
: ConcreteArgs[0] extends null
|
|
356
|
-
? null
|
|
357
|
-
: ConcreteArgs[0] extends keyof SchemaAssociations & string
|
|
358
|
-
? ConcreteArgs[0] & keyof SchemaAssociations & string
|
|
359
|
-
: ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
360
|
-
? ConcreteArgs[0] & AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
361
|
-
: ConcreteArgs[0] extends Readonly<unknown[]>
|
|
362
|
-
? Readonly<unknown[]>
|
|
363
|
-
: null,
|
|
364
|
-
//
|
|
365
|
-
CurrentArgumentType extends
|
|
366
|
-
| IS_ASSOCIATION_NAME
|
|
367
|
-
| IS_ASSOCIATION_ALIAS
|
|
368
|
-
| IS_NOT_ASSOCIATION_NAME = ConcreteNthArg extends null
|
|
369
|
-
? IS_NOT_ASSOCIATION_NAME
|
|
370
|
-
: ConcreteNthArg extends Readonly<unknown[]>
|
|
371
|
-
? IS_NOT_ASSOCIATION_NAME
|
|
372
|
-
: ConcreteNthArg extends keyof SchemaAssociations & string
|
|
373
|
-
? IS_ASSOCIATION_NAME
|
|
374
|
-
: ConcreteNthArg extends AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
375
|
-
? IS_ASSOCIATION_ALIAS
|
|
376
|
-
: IS_NOT_ASSOCIATION_NAME,
|
|
377
|
-
//
|
|
378
|
-
NextPreviousConcreteTableName = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
379
|
-
? ConcreteTableName
|
|
380
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
381
|
-
? ConcreteTableName
|
|
382
|
-
: PreviousConcreteTableName,
|
|
383
|
-
//
|
|
384
|
-
NextUnaliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
385
|
-
? ConcreteNthArg
|
|
386
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
387
|
-
? ConcreteNthArg extends `${infer AssocName extends string} as ${string}`
|
|
388
|
-
? AssocName & keyof SchemaAssociations
|
|
389
|
-
: never
|
|
390
|
-
: never,
|
|
391
|
-
//
|
|
392
|
-
NextAliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
393
|
-
? ConcreteNthArg
|
|
394
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
395
|
-
? ConcreteNthArg extends `${string} as ${infer Alias extends string}`
|
|
396
|
-
? Alias
|
|
397
|
-
: ConcreteAssociationName
|
|
398
|
-
: ConcreteAssociationName,
|
|
399
|
-
//
|
|
400
|
-
NextTableName extends keyof Schema &
|
|
401
|
-
AssociationTableNames<DB, Schema> &
|
|
402
|
-
keyof DB = CurrentArgumentType extends IS_ASSOCIATION_NAME
|
|
403
|
-
? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName>
|
|
404
|
-
: CurrentArgumentType extends IS_ASSOCIATION_ALIAS
|
|
405
|
-
? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName>
|
|
406
|
-
: ConcreteTableName & AssociationTableNames<DB, Schema> & keyof DB,
|
|
407
|
-
> = ConcreteArgs['length'] extends 0
|
|
408
|
-
? JoinedAssociationsType
|
|
409
|
-
: Depth extends MAX_VARIADIC_DEPTH
|
|
410
|
-
? never
|
|
411
|
-
: ConcreteArgs['length'] extends 1
|
|
412
|
-
? ConcreteNthArg extends Readonly<unknown[]>
|
|
413
|
-
? JoinedAssociationsType
|
|
414
|
-
: JoinedAssociationsTypeFromAssociations<
|
|
415
|
-
DB,
|
|
416
|
-
Schema,
|
|
417
|
-
NextTableName,
|
|
418
|
-
ReadonlyTail<ConcreteArgs>,
|
|
419
|
-
Inc<Depth>,
|
|
420
|
-
NextPreviousConcreteTableName,
|
|
421
|
-
NextAliasedAssociationName,
|
|
422
|
-
CurrentArgumentType extends IS_NOT_ASSOCIATION_NAME
|
|
423
|
-
? JoinedAssociationsType
|
|
424
|
-
: Readonly<
|
|
425
|
-
[
|
|
426
|
-
...JoinedAssociationsType,
|
|
427
|
-
{ table: NextTableName & string; alias: NextAliasedAssociationName & string },
|
|
428
|
-
]
|
|
429
|
-
>
|
|
430
|
-
>
|
|
431
|
-
: JoinedAssociationsTypeFromAssociations<
|
|
432
|
-
DB,
|
|
433
|
-
Schema,
|
|
434
|
-
NextTableName,
|
|
435
|
-
ReadonlyTail<ConcreteArgs>,
|
|
436
|
-
Inc<Depth>,
|
|
437
|
-
NextPreviousConcreteTableName,
|
|
438
|
-
NextAliasedAssociationName,
|
|
439
|
-
CurrentArgumentType extends IS_NOT_ASSOCIATION_NAME
|
|
440
|
-
? JoinedAssociationsType
|
|
441
|
-
: Readonly<
|
|
442
|
-
[
|
|
443
|
-
...JoinedAssociationsType,
|
|
444
|
-
{ table: NextTableName & string; alias: NextAliasedAssociationName & string },
|
|
445
|
-
]
|
|
446
|
-
>
|
|
447
|
-
>
|
|
26
|
+
joinedAssociations: Readonly<JoinedAssociation[]>;
|
|
27
|
+
rootTableName: string;
|
|
28
|
+
rootTableAlias: string;
|
|
29
|
+
allowPreload: boolean;
|
|
30
|
+
allowLeftJoinPreload: boolean;
|
|
31
|
+
};
|
|
32
|
+
export type JoinedAssociationsTypeFromAssociations<DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], Depth extends number = 0, PreviousConcreteTableName = ConcreteTableName, ConcreteAssociationName = never, JoinedAssociationsType extends Readonly<JoinedAssociation[]> = Readonly<[]>, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], ConcreteNthArg extends (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName> | Readonly<unknown[]> | null = ConcreteArgs[0] extends undefined ? null : ConcreteArgs[0] extends null ? null : ConcreteArgs[0] extends keyof SchemaAssociations & string ? ConcreteArgs[0] & keyof SchemaAssociations & string : ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName> ? ConcreteArgs[0] & AliasedSchemaAssociation<Schema, ConcreteTableName> : ConcreteArgs[0] extends Readonly<unknown[]> ? Readonly<unknown[]> : null, CurrentArgumentType extends IS_ASSOCIATION_NAME | IS_ASSOCIATION_ALIAS | IS_NOT_ASSOCIATION_NAME = ConcreteNthArg extends null ? IS_NOT_ASSOCIATION_NAME : ConcreteNthArg extends Readonly<unknown[]> ? IS_NOT_ASSOCIATION_NAME : ConcreteNthArg extends keyof SchemaAssociations & string ? IS_ASSOCIATION_NAME : ConcreteNthArg extends AliasedSchemaAssociation<Schema, ConcreteTableName> ? IS_ASSOCIATION_ALIAS : IS_NOT_ASSOCIATION_NAME, NextPreviousConcreteTableName = CurrentArgumentType extends IS_ASSOCIATION_NAME ? ConcreteTableName : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? ConcreteTableName : PreviousConcreteTableName, NextUnaliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME ? ConcreteNthArg : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? ConcreteNthArg extends `${infer AssocName extends string} as ${string}` ? AssocName & keyof SchemaAssociations : never : never, NextAliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME ? ConcreteNthArg : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? ConcreteNthArg extends `${string} as ${infer Alias extends string}` ? Alias : ConcreteAssociationName : ConcreteAssociationName, NextTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB = CurrentArgumentType extends IS_ASSOCIATION_NAME ? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName> : CurrentArgumentType extends IS_ASSOCIATION_ALIAS ? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName> : ConcreteTableName & AssociationTableNames<DB, Schema> & keyof DB> = ConcreteArgs['length'] extends 0 ? JoinedAssociationsType : Depth extends MAX_VARIADIC_DEPTH ? never : ConcreteArgs['length'] extends 1 ? ConcreteNthArg extends Readonly<unknown[]> ? JoinedAssociationsType : JoinedAssociationsTypeFromAssociations<DB, Schema, NextTableName, ReadonlyTail<ConcreteArgs>, Inc<Depth>, NextPreviousConcreteTableName, NextAliasedAssociationName, CurrentArgumentType extends IS_NOT_ASSOCIATION_NAME ? JoinedAssociationsType : Readonly<[
|
|
33
|
+
...JoinedAssociationsType,
|
|
34
|
+
{
|
|
35
|
+
table: NextTableName & string;
|
|
36
|
+
alias: NextAliasedAssociationName & string;
|
|
37
|
+
}
|
|
38
|
+
]>> : JoinedAssociationsTypeFromAssociations<DB, Schema, NextTableName, ReadonlyTail<ConcreteArgs>, Inc<Depth>, NextPreviousConcreteTableName, NextAliasedAssociationName, CurrentArgumentType extends IS_NOT_ASSOCIATION_NAME ? JoinedAssociationsType : Readonly<[
|
|
39
|
+
...JoinedAssociationsType,
|
|
40
|
+
{
|
|
41
|
+
table: NextTableName & string;
|
|
42
|
+
alias: NextAliasedAssociationName & string;
|
|
43
|
+
}
|
|
44
|
+
]>>;
|
|
45
|
+
export {};
|