@rvoh/dream 0.36.4 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/src/Dream.js +42 -32
- package/dist/cjs/src/decorators/field/association/HasMany.js +12 -12
- package/dist/cjs/src/decorators/field/association/HasOne.js +12 -12
- package/dist/cjs/src/decorators/field/association/shared.js +7 -7
- package/dist/cjs/src/dream/DreamInstanceTransactionBuilder.js +31 -25
- package/dist/cjs/src/dream/Query.js +96 -88
- package/dist/cjs/src/dream/internal/associations/associationQuery.js +3 -3
- package/dist/cjs/src/dream/internal/associations/associationUpdateQuery.js +3 -3
- package/dist/cjs/src/dream/internal/associations/destroyAssociation.js +2 -2
- package/dist/cjs/src/dream/internal/associations/undestroyAssociation.js +2 -2
- package/dist/cjs/src/dream/internal/similarity/SimilarityBuilder.js +12 -12
- package/dist/cjs/src/errors/{CannotDefineAssociationWithBothDependentAndRequiredOnClause.js → CannotDefineAssociationWithBothDependentAndRequiredAndClause.js} +2 -2
- package/dist/cjs/src/errors/associations/{MissingRequiredAssociationOnClause.js → MissingRequiredAssociationAndClause.js} +4 -4
- package/dist/cjs/src/errors/associations/MissingRequiredPassthroughForAssociationAndClause.js +16 -0
- package/dist/cjs/src/helpers/cli/SchemaBuilder.js +1 -1
- package/dist/esm/src/Dream.js +42 -32
- package/dist/esm/src/decorators/field/association/HasMany.js +12 -12
- package/dist/esm/src/decorators/field/association/HasOne.js +12 -12
- package/dist/esm/src/decorators/field/association/shared.js +7 -7
- package/dist/esm/src/dream/DreamInstanceTransactionBuilder.js +31 -25
- package/dist/esm/src/dream/Query.js +96 -88
- package/dist/esm/src/dream/internal/associations/associationQuery.js +3 -3
- package/dist/esm/src/dream/internal/associations/associationUpdateQuery.js +3 -3
- package/dist/esm/src/dream/internal/associations/destroyAssociation.js +2 -2
- package/dist/esm/src/dream/internal/associations/undestroyAssociation.js +2 -2
- package/dist/esm/src/dream/internal/similarity/SimilarityBuilder.js +12 -12
- package/dist/esm/src/errors/{CannotDefineAssociationWithBothDependentAndRequiredOnClause.js → CannotDefineAssociationWithBothDependentAndRequiredAndClause.js} +1 -1
- package/dist/esm/src/errors/associations/{MissingRequiredAssociationOnClause.js → MissingRequiredAssociationAndClause.js} +3 -3
- package/dist/esm/src/errors/associations/MissingRequiredPassthroughForAssociationAndClause.js +13 -0
- package/dist/esm/src/helpers/cli/SchemaBuilder.js +1 -1
- package/dist/types/src/Dream.d.ts +25 -21
- package/dist/types/src/decorators/field/association/shared.d.ts +2 -2
- package/dist/types/src/dream/DreamInstanceTransactionBuilder.d.ts +11 -11
- package/dist/types/src/dream/Query.d.ts +15 -15
- package/dist/types/src/dream/internal/associations/associationQuery.d.ts +3 -3
- package/dist/types/src/dream/internal/associations/associationUpdateQuery.d.ts +3 -3
- package/dist/types/src/dream/internal/associations/destroyAssociation.d.ts +3 -3
- package/dist/types/src/dream/internal/associations/undestroyAssociation.d.ts +3 -3
- package/dist/types/src/dream/internal/similarity/SimilarityBuilder.d.ts +5 -5
- package/dist/types/src/errors/{CannotDefineAssociationWithBothDependentAndRequiredOnClause.d.ts → CannotDefineAssociationWithBothDependentAndRequiredAndClause.d.ts} +1 -1
- package/dist/types/src/errors/associations/{MissingRequiredAssociationOnClause.d.ts → MissingRequiredAssociationAndClause.d.ts} +1 -1
- package/dist/types/src/errors/associations/MissingRequiredPassthroughForAssociationAndClause.d.ts +5 -0
- package/dist/types/src/types/associations/shared.d.ts +16 -14
- package/dist/types/src/types/dream.d.ts +15 -15
- package/dist/types/src/types/variadic.d.ts +5 -5
- package/docs/assets/search.js +1 -1
- 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 +170 -163
- package/docs/classes/DreamApplication.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 +54 -54
- 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/debug.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/index.html +1 -1
- package/docs/interfaces/AttributeStatement.html +2 -2
- package/docs/interfaces/DecoratorContext.html +2 -2
- package/docs/interfaces/DreamApplicationInitOptions.html +2 -2
- package/docs/interfaces/DreamApplicationOpts.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
- package/dist/cjs/src/errors/associations/MissingRequiredPassthroughForAssociationOnClause.js +0 -16
- package/dist/esm/src/errors/associations/MissingRequiredPassthroughForAssociationOnClause.js +0 -13
- package/dist/types/src/errors/associations/MissingRequiredPassthroughForAssociationOnClause.d.ts +0 -5
|
@@ -257,7 +257,7 @@ may need to update the table getter in the corresponding Dream.
|
|
|
257
257
|
throw new FailedToIdentifyAssociation(model, associationMetaData.type, associationName, associationMetaData.globalAssociationNameOrNames);
|
|
258
258
|
const optional = associationMetaData.type === 'BelongsTo' ? associationMetaData.optional === true : null;
|
|
259
259
|
const where = associationMetaData.type === 'HasMany' || associationMetaData.type === 'HasOne'
|
|
260
|
-
? associationMetaData.
|
|
260
|
+
? associationMetaData.and || null
|
|
261
261
|
: null;
|
|
262
262
|
// NOTE
|
|
263
263
|
// this try-catch is here because the SchemaBuilder currently needs to be run twice to generate foreignKey
|
|
@@ -11,7 +11,7 @@ import LoadBuilder from './dream/LoadBuilder.js';
|
|
|
11
11
|
import Query from './dream/Query.js';
|
|
12
12
|
import { AssociationStatementsMap, PassthroughOnClause, WhereStatement } from './types/associations/shared.js';
|
|
13
13
|
import { AssociationTableNames, DbConnectionType } from './types/db.js';
|
|
14
|
-
import { AllDefaultScopeNames, AssociationNameToDream, AttributeKeys, DefaultOrNamedScopeName, DreamAssociationNames, DreamAssociationNamesWithoutRequiredOnClauses, DreamAttributes, DreamColumnNames, DreamParamSafeColumnNames, DreamSerializeOptions, IdType,
|
|
14
|
+
import { AllDefaultScopeNames, AssociationNameToDream, AttributeKeys, DefaultOrNamedScopeName, DreamAssociationNames, DreamAssociationNamesWithoutRequiredOnClauses, DreamAttributes, DreamColumnNames, DreamParamSafeColumnNames, DreamSerializeOptions, IdType, JoinAndStatements, NextPreloadArgumentType, OrderDir, PassthroughColumnNames, PluckEachArgs, PrimaryKeyForFind, TableColumnNames, UpdateableAssociationProperties, UpdateableProperties, UpdateablePropertiesForClass } from './types/dream.js';
|
|
15
15
|
import { HookStatement, HookStatementMap } from './types/lifecycle.js';
|
|
16
16
|
import { BaseModelColumnTypes, DefaultQueryTypeOptions, FindEachOpts, QueryWithJoinedAssociationsType, QueryWithJoinedAssociationsTypeAndNoPreload } from './types/query.js';
|
|
17
17
|
import { ValidationStatement, ValidationType } from './types/validation.js';
|
|
@@ -579,11 +579,14 @@ export default class Dream {
|
|
|
579
579
|
static findEach<T extends typeof Dream>(this: T, cb: (instance: InstanceType<T>) => void | Promise<void>, opts?: FindEachOpts): Promise<void>;
|
|
580
580
|
/**
|
|
581
581
|
* Returns a new instance of Query scoped to the given
|
|
582
|
-
* model class
|
|
582
|
+
* model class. Especially useful with {@link Query#toKysely}.
|
|
583
583
|
*
|
|
584
584
|
* ```ts
|
|
585
|
-
*
|
|
586
|
-
*
|
|
585
|
+
* await Balloon.query().toKysely('update').
|
|
586
|
+
* .set({
|
|
587
|
+
* multicolor: sql`array_remove(multicolor, ${colorToRemoveFromAllBalloons})`,
|
|
588
|
+
* })
|
|
589
|
+
* .execute()
|
|
587
590
|
* ```
|
|
588
591
|
*
|
|
589
592
|
* @returns A new Query instance scoped to this Dream class
|
|
@@ -591,20 +594,21 @@ export default class Dream {
|
|
|
591
594
|
*/
|
|
592
595
|
static query<T extends typeof Dream, I extends InstanceType<T>>(this: T): Query<I>;
|
|
593
596
|
/**
|
|
594
|
-
* @internal
|
|
595
|
-
*
|
|
596
597
|
* Returns a new instance of Query scoped to the given
|
|
597
|
-
*
|
|
598
|
+
* model class. Especially useful with {@link Query#toKysely}.
|
|
598
599
|
*
|
|
599
600
|
* ```ts
|
|
600
|
-
*
|
|
601
|
-
*
|
|
601
|
+
* await balloon.query().toKysely('update')
|
|
602
|
+
* .set({
|
|
603
|
+
* multicolor: sql`array_append(multicolor, 'red')`,
|
|
604
|
+
* })
|
|
605
|
+
* .execute()
|
|
602
606
|
* ```
|
|
603
607
|
*
|
|
604
|
-
* @returns A new Query instance scoped to this Dream
|
|
608
|
+
* @returns A new Query instance scoped to this Dream class
|
|
605
609
|
*
|
|
606
610
|
*/
|
|
607
|
-
|
|
611
|
+
query<I extends Dream>(this: I): Query<I>;
|
|
608
612
|
/**
|
|
609
613
|
* Finds the first record—ordered by primary key—matching
|
|
610
614
|
* the corresponding model and the specified where statement.
|
|
@@ -1925,24 +1929,24 @@ export default class Dream {
|
|
|
1925
1929
|
* @returns The created association
|
|
1926
1930
|
*/
|
|
1927
1931
|
createAssociation<I extends Dream, AssociationName extends DreamAssociationNames<I>, PossibleArrayAssociationType = I[AssociationName & keyof I], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes?: UpdateableAssociationProperties<I, RestrictedAssociationType>): Promise<NonNullable<AssociationType>>;
|
|
1928
|
-
destroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> &
|
|
1929
|
-
destroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> &
|
|
1930
|
-
reallyDestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> &
|
|
1931
|
-
reallyDestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> &
|
|
1932
|
-
undestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> &
|
|
1933
|
-
undestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> &
|
|
1934
|
-
associationQuery<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName,
|
|
1935
|
-
associationQuery<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName,
|
|
1932
|
+
destroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
1933
|
+
destroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
1934
|
+
reallyDestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
1935
|
+
reallyDestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
1936
|
+
undestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
1937
|
+
undestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
1938
|
+
associationQuery<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
|
|
1939
|
+
associationQuery<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements?: JoinAndStatements<DB, Schema, AssociationTableName, null>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
|
|
1936
1940
|
updateAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNames<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, attributes: Partial<DreamAttributes<AssociationNameToDream<I, AssociationName>>>, updateAssociationOptions: {
|
|
1937
1941
|
bypassAllDefaultScopes?: boolean;
|
|
1938
1942
|
defaultScopesToBypass?: AllDefaultScopeNames<I>[];
|
|
1939
1943
|
skipHooks?: boolean;
|
|
1940
|
-
} &
|
|
1944
|
+
} & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
1941
1945
|
updateAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, attributes: Partial<DreamAttributes<AssociationNameToDream<I, AssociationName>>>, updateAssociationOptions?: {
|
|
1942
1946
|
bypassAllDefaultScopes?: boolean;
|
|
1943
1947
|
defaultScopesToBypass?: AllDefaultScopeNames<I>[];
|
|
1944
1948
|
skipHooks?: boolean;
|
|
1945
|
-
} &
|
|
1949
|
+
} & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
1946
1950
|
/**
|
|
1947
1951
|
* Sends data through for use as passthrough data
|
|
1948
1952
|
* for the associations that require it.
|
|
@@ -11,9 +11,9 @@ export declare function applyGetterAndSetter(target: Dream, partialAssociation:
|
|
|
11
11
|
isBelongsTo?: boolean;
|
|
12
12
|
}): void;
|
|
13
13
|
export declare function associationPrimaryKeyAccessors(partialAssociation: Exclude<PartialAssociationStatement, 'primaryKey' | 'primaryKeyValue'>, dreamClass: typeof Dream): PartialAssociationStatement;
|
|
14
|
-
export declare function validateHasStatementArgs({ dreamClass, dependent, methodName,
|
|
14
|
+
export declare function validateHasStatementArgs({ dreamClass, dependent, methodName, and, }: {
|
|
15
15
|
dreamClass: typeof Dream;
|
|
16
16
|
dependent: DependentOptions | null;
|
|
17
17
|
methodName: string;
|
|
18
|
-
|
|
18
|
+
and: object | null;
|
|
19
19
|
}): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Dream from '../Dream.js';
|
|
2
|
-
import { AllDefaultScopeNames, AssociationNameToDream, DreamAssociationNames, DreamAssociationNamesWithoutRequiredOnClauses, DreamAttributes,
|
|
2
|
+
import { AllDefaultScopeNames, AssociationNameToDream, DreamAssociationNames, DreamAssociationNamesWithoutRequiredOnClauses, DreamAttributes, JoinAndStatements, UpdateableAssociationProperties, UpdateableProperties } from '../types/dream.js';
|
|
3
3
|
import { DefaultQueryTypeOptions, QueryWithJoinedAssociationsType } from '../types/query.js';
|
|
4
4
|
import { JoinedAssociation, JoinedAssociationsTypeFromAssociations, RequiredOnClauseKeys, VariadicJoinsArgs, VariadicLeftJoinLoadArgs, VariadicLoadArgs } from '../types/variadic.js';
|
|
5
5
|
import DreamTransaction from './DreamTransaction.js';
|
|
@@ -273,18 +273,18 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
|
|
|
273
273
|
save<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, { skipHooks }?: {
|
|
274
274
|
skipHooks?: boolean;
|
|
275
275
|
}): Promise<void>;
|
|
276
|
-
associationQuery<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName,
|
|
277
|
-
associationQuery<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName,
|
|
276
|
+
associationQuery<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
|
|
277
|
+
associationQuery<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements?: JoinAndStatements<DB, Schema, AssociationTableName, null>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
|
|
278
278
|
updateAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, attributes: Partial<DreamAttributes<AssociationNameToDream<DreamInstance, AssociationName>>>, updateAssociationOptions: {
|
|
279
279
|
bypassAllDefaultScopes?: boolean;
|
|
280
280
|
defaultScopesToBypass?: AllDefaultScopeNames<DreamInstance>[];
|
|
281
281
|
skipHooks?: boolean;
|
|
282
|
-
} &
|
|
282
|
+
} & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
283
283
|
updateAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, attributes: Partial<DreamAttributes<AssociationNameToDream<DreamInstance, AssociationName>>>, updateAssociationOptions?: {
|
|
284
284
|
bypassAllDefaultScopes?: boolean;
|
|
285
285
|
defaultScopesToBypass?: AllDefaultScopeNames<DreamInstance>[];
|
|
286
286
|
skipHooks?: boolean;
|
|
287
|
-
} &
|
|
287
|
+
} & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
288
288
|
/**
|
|
289
289
|
* Creates an association for an instance. Automatically
|
|
290
290
|
* handles setting foreign key and, in the case of polymorphism,
|
|
@@ -301,12 +301,12 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
|
|
|
301
301
|
* @returns The created association
|
|
302
302
|
*/
|
|
303
303
|
createAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, AssociationName extends DreamAssociationNames<DreamInstance>, PossibleArrayAssociationType = DreamInstance[AssociationName & keyof DreamInstance], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, opts?: UpdateableAssociationProperties<DreamInstance, RestrictedAssociationType>): Promise<NonNullable<AssociationType>>;
|
|
304
|
-
destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> &
|
|
305
|
-
destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> &
|
|
306
|
-
reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> &
|
|
307
|
-
reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> &
|
|
308
|
-
undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> &
|
|
309
|
-
undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> &
|
|
304
|
+
destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
305
|
+
destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
306
|
+
reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
307
|
+
reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
308
|
+
undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
309
|
+
undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
310
310
|
/**
|
|
311
311
|
* @internal
|
|
312
312
|
*
|
|
@@ -3,7 +3,7 @@ import ConnectedToDB from '../db/ConnectedToDB.js';
|
|
|
3
3
|
import Dream from '../Dream.js';
|
|
4
4
|
import { ColumnNamesAccountingForJoinedAssociations, LimitStatement, OffsetStatement, OrderQueryStatement, PassthroughOnClause, WhereStatement, WhereStatementForJoinedAssociation } from '../types/associations/shared.js';
|
|
5
5
|
import { DbConnectionType } from '../types/db.js';
|
|
6
|
-
import { AllDefaultScopeNames, DefaultScopeName, DreamColumnNames, DreamTableSchema, OrderDir, PassthroughColumnNames, PluckEachArgs, PrimaryKeyForFind,
|
|
6
|
+
import { AllDefaultScopeNames, DefaultScopeName, DreamColumnNames, DreamTableSchema, OrderDir, PassthroughColumnNames, PluckEachArgs, PrimaryKeyForFind, RelaxedJoinAndStatement, RelaxedJoinStatement, RelaxedPreloadOnStatement, RelaxedPreloadStatement, TableColumnNames, TableOrAssociationName } from '../types/dream.js';
|
|
7
7
|
import { DefaultQueryTypeOptions, ExtendQueryType, NamespacedOrBaseModelColumnTypes, QueryToKyselyDBType, QueryToKyselyTableNamesType } from '../types/query.js';
|
|
8
8
|
import { JoinedAssociation, JoinedAssociationsTypeFromAssociations, QueryTypeOptions, VariadicJoinsArgs, VariadicLeftJoinLoadArgs, VariadicLoadArgs } from '../types/variadic.js';
|
|
9
9
|
import DreamTransaction from './DreamTransaction.js';
|
|
@@ -113,7 +113,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
113
113
|
* stores the joins on statements applied to the
|
|
114
114
|
* current Query instance
|
|
115
115
|
*/
|
|
116
|
-
private readonly
|
|
116
|
+
private readonly innerJoinAndStatements;
|
|
117
117
|
/**
|
|
118
118
|
* @internal
|
|
119
119
|
*
|
|
@@ -127,7 +127,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
127
127
|
* stores the joins on statements applied to the
|
|
128
128
|
* current Query instance
|
|
129
129
|
*/
|
|
130
|
-
private readonly
|
|
130
|
+
private readonly leftJoinAndStatements;
|
|
131
131
|
/**
|
|
132
132
|
* @internal
|
|
133
133
|
*
|
|
@@ -309,7 +309,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
309
309
|
* // [Reply{id: 1}, Reply{id: 2}]
|
|
310
310
|
* ```
|
|
311
311
|
*
|
|
312
|
-
* @param args - A chain of association names and
|
|
312
|
+
* @param args - A chain of association names and and/andNot/andAny clauses
|
|
313
313
|
* @returns A cloned Query with the joinLoad statement applied
|
|
314
314
|
*/
|
|
315
315
|
leftJoinPreload<Q extends Query<DreamInstance, any>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], const LastArg extends VariadicLeftJoinLoadArgs<DB, Schema, TableName, Arr>, Incompatible extends Q['queryTypeOpts'] extends Readonly<{
|
|
@@ -328,7 +328,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
328
328
|
* // [Reply{id: 1}, Reply{id: 2}]
|
|
329
329
|
* ```
|
|
330
330
|
*
|
|
331
|
-
* @param args - A chain of association names and
|
|
331
|
+
* @param args - A chain of association names and and/andNot/andAny clauses
|
|
332
332
|
* @returns A cloned Query with the preload statement applied
|
|
333
333
|
*/
|
|
334
334
|
preload<Q extends Query<DreamInstance, any>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], Incompatible extends Q['queryTypeOpts'] extends Readonly<{
|
|
@@ -344,7 +344,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
344
344
|
* await User.query().innerJoin('posts').first()
|
|
345
345
|
* ```
|
|
346
346
|
*
|
|
347
|
-
* @param args - A chain of association names and
|
|
347
|
+
* @param args - A chain of association names and and/andNot/andAny clauses
|
|
348
348
|
* @returns A cloned Query with the joins clause applied
|
|
349
349
|
*/
|
|
350
350
|
innerJoin<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], const LastArg extends VariadicJoinsArgs<DB, Schema, TableName, Arr>, const JoinedAssociationsCandidate = JoinedAssociationsTypeFromAssociations<DB, Schema, TableName, [
|
|
@@ -356,7 +356,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
356
356
|
/**
|
|
357
357
|
* @internal
|
|
358
358
|
*
|
|
359
|
-
* @param args - A chain of association names and
|
|
359
|
+
* @param args - A chain of association names and and/andNot/andAny clauses
|
|
360
360
|
* @returns A cloned Query with the joins clause applied
|
|
361
361
|
*/
|
|
362
362
|
leftJoin<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], const LastArg extends VariadicJoinsArgs<DB, Schema, TableName, Arr>, const JoinedAssociationsCandidate = JoinedAssociationsTypeFromAssociations<DB, Schema, TableName, [
|
|
@@ -477,7 +477,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
477
477
|
* public localizedTexts: LocalizedText[]
|
|
478
478
|
*
|
|
479
479
|
* @deco.HasOne('LocalizedText', {
|
|
480
|
-
*
|
|
480
|
+
* and: { locale: DreamConst.passthrough },
|
|
481
481
|
* })
|
|
482
482
|
* public currentLocalizedText: LocalizedText
|
|
483
483
|
* }
|
|
@@ -1041,7 +1041,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
1041
1041
|
*/
|
|
1042
1042
|
private joinsBridgeThroughAssociations;
|
|
1043
1043
|
private applyOneJoin;
|
|
1044
|
-
private
|
|
1044
|
+
private applyAssociationAndStatementsToJoinStatement;
|
|
1045
1045
|
private conditionallyApplyDefaultScopesDependentOnAssociation;
|
|
1046
1046
|
private distinctColumnNameForAssociation;
|
|
1047
1047
|
private recursivelyJoin;
|
|
@@ -1052,10 +1052,10 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
1052
1052
|
private notInArrayWithNullExpressionBuilder;
|
|
1053
1053
|
private whereStatementToExpressionWrapper;
|
|
1054
1054
|
private dreamWhereStatementToExpressionBuilderParts;
|
|
1055
|
-
private
|
|
1056
|
-
private
|
|
1057
|
-
private
|
|
1058
|
-
private
|
|
1055
|
+
private applyJoinAndStatement;
|
|
1056
|
+
private _applyJoinAndStatements;
|
|
1057
|
+
private _applyJoinAndAnyStatements;
|
|
1058
|
+
private joinAndStatementToExpressionWrapper;
|
|
1059
1059
|
private buildCommon;
|
|
1060
1060
|
private checkForQueryViolations;
|
|
1061
1061
|
private aliasWhereStatements;
|
|
@@ -1088,9 +1088,9 @@ export interface QueryOpts<DreamInstance extends Dream, ColumnType extends Dream
|
|
|
1088
1088
|
distinctColumn?: ColumnType | null | undefined;
|
|
1089
1089
|
innerJoinDreamClasses?: readonly (typeof Dream)[] | undefined;
|
|
1090
1090
|
innerJoinStatements?: RelaxedJoinStatement | undefined;
|
|
1091
|
-
|
|
1091
|
+
innerJoinAndStatements?: RelaxedJoinAndStatement<DB, Schema> | undefined;
|
|
1092
1092
|
leftJoinStatements?: RelaxedJoinStatement | undefined;
|
|
1093
|
-
|
|
1093
|
+
leftJoinAndStatements?: RelaxedJoinAndStatement<DB, Schema> | undefined;
|
|
1094
1094
|
bypassAllDefaultScopes?: boolean | undefined;
|
|
1095
1095
|
bypassAllDefaultScopesExceptOnAssociations?: boolean | undefined;
|
|
1096
1096
|
defaultScopesToBypass?: AllDefaultScopeNames<DreamInstance>[] | undefined;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import Dream from '../../../Dream.js';
|
|
2
|
-
import { AssociationNameToDream, DreamAssociationNames,
|
|
2
|
+
import { AssociationNameToDream, DreamAssociationNames, JoinAndStatements } from '../../../types/dream.js';
|
|
3
3
|
import DreamTransaction from '../../DreamTransaction.js';
|
|
4
4
|
import Query from '../../Query.js';
|
|
5
|
-
export default function associationQuery<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], AssociationQuery = Query<AssociationNameToDream<DreamInstance, AssociationName>>>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, {
|
|
6
|
-
|
|
5
|
+
export default function associationQuery<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], AssociationQuery = Query<AssociationNameToDream<DreamInstance, AssociationName>>>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, { joinAndStatements, bypassAllDefaultScopes, defaultScopesToBypass, }: {
|
|
6
|
+
joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, null>;
|
|
7
7
|
bypassAllDefaultScopes: boolean;
|
|
8
8
|
defaultScopesToBypass: string[];
|
|
9
9
|
}): AssociationQuery;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import Dream from '../../../Dream.js';
|
|
2
|
-
import { AssociationNameToDream, DreamAssociationNames,
|
|
2
|
+
import { AssociationNameToDream, DreamAssociationNames, JoinAndStatements } from '../../../types/dream.js';
|
|
3
3
|
import DreamTransaction from '../../DreamTransaction.js';
|
|
4
4
|
import Query from '../../Query.js';
|
|
5
|
-
export default function associationUpdateQuery<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], AssociationQuery = Query<AssociationNameToDream<DreamInstance, AssociationName>>>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, {
|
|
6
|
-
|
|
5
|
+
export default function associationUpdateQuery<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], AssociationQuery = Query<AssociationNameToDream<DreamInstance, AssociationName>>>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, { joinAndStatements, bypassAllDefaultScopes, defaultScopesToBypass, }: {
|
|
6
|
+
joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, null>;
|
|
7
7
|
bypassAllDefaultScopes: boolean;
|
|
8
8
|
defaultScopesToBypass: string[];
|
|
9
9
|
}): AssociationQuery;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Dream from '../../../Dream.js';
|
|
2
|
-
import { AssociationNameToDream, DreamAssociationNames,
|
|
2
|
+
import { AssociationNameToDream, DreamAssociationNames, JoinAndStatements } from '../../../types/dream.js';
|
|
3
3
|
import DreamTransaction from '../../DreamTransaction.js';
|
|
4
|
-
export default function destroyAssociation<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, {
|
|
5
|
-
|
|
4
|
+
export default function destroyAssociation<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, { joinAndStatements, bypassAllDefaultScopes, defaultScopesToBypass, cascade, reallyDestroy, skipHooks, }: {
|
|
5
|
+
joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, null>;
|
|
6
6
|
bypassAllDefaultScopes: boolean;
|
|
7
7
|
defaultScopesToBypass: string[];
|
|
8
8
|
cascade: boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Dream from '../../../Dream.js';
|
|
2
|
-
import { AssociationNameToDream, DreamAssociationNames,
|
|
2
|
+
import { AssociationNameToDream, DreamAssociationNames, JoinAndStatements } from '../../../types/dream.js';
|
|
3
3
|
import DreamTransaction from '../../DreamTransaction.js';
|
|
4
|
-
export default function undestroyAssociation<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, {
|
|
5
|
-
|
|
4
|
+
export default function undestroyAssociation<DreamInstance extends Dream, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNames<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(dream: DreamInstance, txn: (DreamTransaction<Dream> | null) | undefined, associationName: AssociationName, { joinAndStatements, bypassAllDefaultScopes, defaultScopesToBypass, cascade, skipHooks, }: {
|
|
5
|
+
joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, null>;
|
|
6
6
|
bypassAllDefaultScopes: boolean;
|
|
7
7
|
defaultScopesToBypass: string[];
|
|
8
8
|
cascade: boolean;
|
|
@@ -3,12 +3,12 @@ import ConnectedToDB from '../../../db/ConnectedToDB.js';
|
|
|
3
3
|
import Dream from '../../../Dream.js';
|
|
4
4
|
import { WhereStatement } from '../../../types/associations/shared.js';
|
|
5
5
|
import { DbConnectionType } from '../../../types/db.js';
|
|
6
|
-
import {
|
|
6
|
+
import { JoinAndStatements, RelaxedJoinAndStatement, SimilarityStatement } from '../../../types/dream.js';
|
|
7
7
|
import DreamTransaction from '../../DreamTransaction.js';
|
|
8
8
|
export default class SimilarityBuilder<DreamInstance extends Dream, DB extends DreamInstance['DB'] = DreamInstance['DB'], Schema extends DreamInstance['schema'] = DreamInstance['schema']> extends ConnectedToDB<DreamInstance> {
|
|
9
9
|
readonly whereStatement: readonly WhereStatement<DB, Schema, any>[];
|
|
10
10
|
readonly whereNotStatement: readonly WhereStatement<DB, Schema, any>[];
|
|
11
|
-
readonly
|
|
11
|
+
readonly joinAndStatements: JoinAndStatements<DB, Schema, any, any>;
|
|
12
12
|
constructor(dreamInstance: DreamInstance, opts?: SimilarityBuilderOpts<DreamInstance>);
|
|
13
13
|
select<T extends SimilarityBuilder<DreamInstance>>(this: T, kyselyQuery: SelectQueryBuilder<DB, any, object>, { bypassOrder }?: {
|
|
14
14
|
bypassOrder?: boolean;
|
|
@@ -17,7 +17,7 @@ export default class SimilarityBuilder<DreamInstance extends Dream, DB extends D
|
|
|
17
17
|
get hasSimilarityClauses(): boolean;
|
|
18
18
|
whereStatementsWithSimilarityClauses(): SimilarityStatement[];
|
|
19
19
|
whereNotStatementsWithSimilarityClauses(): SimilarityStatement[];
|
|
20
|
-
|
|
20
|
+
joinAndStatementsWithSimilarityClauses(): SimilarityStatement[];
|
|
21
21
|
private recursiveJoinsOnFinder;
|
|
22
22
|
statementsWithSimilarityClauses(): SimilarityStatement[];
|
|
23
23
|
private addStatementToSelectQuery;
|
|
@@ -30,9 +30,9 @@ export default class SimilarityBuilder<DreamInstance extends Dream, DB extends D
|
|
|
30
30
|
export interface SimilarityBuilderOpts<DreamInstance extends Dream, DB extends DreamInstance['DB'] = DreamInstance['DB'], Schema extends DreamInstance['schema'] = DreamInstance['schema']> {
|
|
31
31
|
where?: WhereStatement<DB, Schema, any>[] | undefined;
|
|
32
32
|
whereNot?: WhereStatement<DB, Schema, any>[] | undefined;
|
|
33
|
-
|
|
33
|
+
joinAndStatements?: RelaxedJoinAndStatement<DB, Schema> | undefined;
|
|
34
34
|
transaction?: DreamTransaction<Dream> | null | undefined;
|
|
35
35
|
connection?: DbConnectionType | undefined;
|
|
36
36
|
}
|
|
37
|
-
export declare const SIMILARITY_TYPES: readonly ["where", "
|
|
37
|
+
export declare const SIMILARITY_TYPES: readonly ["where", "join_and"];
|
|
38
38
|
export type SimilarityStatementType = (typeof SIMILARITY_TYPES)[number];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Dream from '../Dream.js';
|
|
2
|
-
export default class
|
|
2
|
+
export default class CannotDefineAssociationWithBothDependentAndRequiredAndClause extends Error {
|
|
3
3
|
private dreamClass;
|
|
4
4
|
private associationName;
|
|
5
5
|
constructor(dreamClass: typeof Dream, associationName: string);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HasManyStatement } from '../../types/associations/hasMany.js';
|
|
2
2
|
import { HasOneStatement } from '../../types/associations/hasOne.js';
|
|
3
|
-
export default class
|
|
3
|
+
export default class MissingRequiredAssociationAndClause extends Error {
|
|
4
4
|
private association;
|
|
5
5
|
private column;
|
|
6
6
|
constructor(association: HasManyStatement<any, any, any, any> | HasOneStatement<any, any, any, any>, column: string | undefined);
|
|
@@ -295,9 +295,9 @@ export interface HasStatement<
|
|
|
295
295
|
foreignKey: () => keyof DB[ForeignTableName] & string
|
|
296
296
|
foreignKeyTypeField: () => keyof DB[ForeignTableName] & string
|
|
297
297
|
globalAssociationNameOrNames: string[]
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
298
|
+
and?: OnStatementForAssociationDefinition<DB, Schema, ForeignTableName>
|
|
299
|
+
andNot?: WhereStatement<DB, Schema, ForeignTableName>
|
|
300
|
+
andAny?: WhereStatement<DB, Schema, ForeignTableName>[]
|
|
301
301
|
// ATTENTION
|
|
302
302
|
//
|
|
303
303
|
// Using `order` with HasOne is tempting as an elegant API
|
|
@@ -313,13 +313,14 @@ export interface HasStatement<
|
|
|
313
313
|
primaryKey: (associationInstance?: Dream) => DreamColumnNames<BaseInstance>
|
|
314
314
|
primaryKeyOverride?: DreamColumnNames<BaseInstance> | null
|
|
315
315
|
primaryKeyValue: (associationInstance: Dream) => any
|
|
316
|
-
|
|
317
|
-
|
|
316
|
+
selfAnd?: SelfOnStatement<BaseInstance, DB, Schema, ForeignTableName>
|
|
317
|
+
selfAndNot?: SelfOnStatement<BaseInstance, DB, Schema, ForeignTableName>
|
|
318
318
|
source: string
|
|
319
319
|
through?: string
|
|
320
320
|
type: HasType
|
|
321
321
|
withoutDefaultScopes?: DefaultScopeName<BaseInstance>[]
|
|
322
322
|
}
|
|
323
|
+
|
|
323
324
|
interface HasOptionsBase<
|
|
324
325
|
BaseInstance extends Dream,
|
|
325
326
|
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
@@ -331,7 +332,7 @@ interface HasOptionsBase<
|
|
|
331
332
|
dependent?: DependentOptions
|
|
332
333
|
foreignKey?: TableColumnNames<BaseInstance['DB'], AssociationTableName & keyof BaseInstance['DB']>
|
|
333
334
|
|
|
334
|
-
|
|
335
|
+
and?: OnStatementForAssociationDefinition<
|
|
335
336
|
BaseInstance['DB'],
|
|
336
337
|
BaseInstance['schema'],
|
|
337
338
|
AssociationTableName &
|
|
@@ -339,7 +340,7 @@ interface HasOptionsBase<
|
|
|
339
340
|
keyof BaseInstance['DB']
|
|
340
341
|
>
|
|
341
342
|
|
|
342
|
-
|
|
343
|
+
andNot?: WhereStatement<
|
|
343
344
|
BaseInstance['DB'],
|
|
344
345
|
BaseInstance['schema'],
|
|
345
346
|
AssociationTableName &
|
|
@@ -347,7 +348,7 @@ interface HasOptionsBase<
|
|
|
347
348
|
keyof BaseInstance['DB']
|
|
348
349
|
>
|
|
349
350
|
|
|
350
|
-
|
|
351
|
+
andAny?: WhereStatement<
|
|
351
352
|
BaseInstance['DB'],
|
|
352
353
|
BaseInstance['schema'],
|
|
353
354
|
AssociationTableName &
|
|
@@ -359,7 +360,7 @@ interface HasOptionsBase<
|
|
|
359
360
|
preloadThroughColumns?: string[] | Record<string, string>
|
|
360
361
|
primaryKeyOverride?: DreamColumnNames<BaseInstance> | null
|
|
361
362
|
|
|
362
|
-
|
|
363
|
+
selfAnd?: SelfOnStatement<
|
|
363
364
|
BaseInstance,
|
|
364
365
|
BaseInstance['DB'],
|
|
365
366
|
BaseInstance['schema'],
|
|
@@ -368,7 +369,7 @@ interface HasOptionsBase<
|
|
|
368
369
|
keyof BaseInstance['DB']
|
|
369
370
|
>
|
|
370
371
|
|
|
371
|
-
|
|
372
|
+
selfAndNot?: SelfOnStatement<
|
|
372
373
|
BaseInstance,
|
|
373
374
|
BaseInstance['DB'],
|
|
374
375
|
BaseInstance['schema'],
|
|
@@ -431,10 +432,11 @@ type hasOneManySpecificFields =
|
|
|
431
432
|
| 'source'
|
|
432
433
|
| 'through'
|
|
433
434
|
| 'preloadThroughColumns'
|
|
434
|
-
| '
|
|
435
|
-
| '
|
|
436
|
-
| '
|
|
437
|
-
| '
|
|
435
|
+
| 'and'
|
|
436
|
+
| 'andNot'
|
|
437
|
+
| 'andAny'
|
|
438
|
+
| 'selfAnd'
|
|
439
|
+
| 'selfAndNot'
|
|
438
440
|
type belongsToSpecificFields = 'optional'
|
|
439
441
|
|
|
440
442
|
export type PartialAssociationStatement =
|
|
@@ -237,26 +237,26 @@ export type AssociationTableName<
|
|
|
237
237
|
AssociationData = MetadataForAssociation<Schema, TableName, AssociationName>,
|
|
238
238
|
> = (AssociationData['tables' & keyof AssociationData] & any[])[0] & keyof Schema
|
|
239
239
|
|
|
240
|
-
export type
|
|
240
|
+
export type JoinAndStatements<
|
|
241
241
|
DB,
|
|
242
242
|
Schema,
|
|
243
243
|
TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
244
244
|
RequiredOnClauseKeysForThisAssociation,
|
|
245
245
|
> = RequiredOnClauseKeysForThisAssociation extends null
|
|
246
246
|
? {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
//
|
|
250
|
-
|
|
251
|
-
//
|
|
247
|
+
and?: WhereStatement<DB, Schema, TableName>
|
|
248
|
+
andNot?: WhereStatement<DB, Schema, TableName>
|
|
249
|
+
// andNot?: WhereStatementWithoutSimilarityClauses<DB, Schema, TableName>
|
|
250
|
+
andAny?: WhereStatement<DB, Schema, TableName>[]
|
|
251
|
+
// andAny?: WhereStatementWithoutSimilarityClauses<DB, Schema, TableName>[]
|
|
252
252
|
}
|
|
253
253
|
: RequiredOnClauseKeysForThisAssociation extends string[]
|
|
254
254
|
? {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
//
|
|
258
|
-
|
|
259
|
-
//
|
|
255
|
+
and: OnStatementForAssociation<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
256
|
+
andNot?: WhereStatement<DB, Schema, TableName>
|
|
257
|
+
// andNot?: WhereStatementWithoutSimilarityClauses<DB, Schema, TableName>
|
|
258
|
+
andAny?: WhereStatement<DB, Schema, TableName>[]
|
|
259
|
+
// andAny?: WhereStatementWithoutSimilarityClauses<DB, Schema, TableName>[]
|
|
260
260
|
}
|
|
261
261
|
: never
|
|
262
262
|
////////////////////////////////
|
|
@@ -406,17 +406,17 @@ export type RelaxedPreloadOnStatement<DB, Schema, Depth extends number = 0> = De
|
|
|
406
406
|
: {
|
|
407
407
|
[key: string]:
|
|
408
408
|
| RelaxedPreloadOnStatement<DB, Schema, Inc<Depth>>
|
|
409
|
-
|
|
|
409
|
+
| JoinAndStatements<any, any, any, any>
|
|
410
410
|
| FakeOnClauseValue
|
|
411
411
|
| object
|
|
412
412
|
}
|
|
413
413
|
|
|
414
|
-
export type
|
|
414
|
+
export type RelaxedJoinAndStatement<DB, Schema, Depth extends number = 0> = Depth extends 7
|
|
415
415
|
? object
|
|
416
416
|
: {
|
|
417
417
|
[key: string]:
|
|
418
|
-
|
|
|
419
|
-
|
|
|
418
|
+
| RelaxedJoinAndStatement<DB, Schema, Inc<Depth>>
|
|
419
|
+
| JoinAndStatements<any, any, any, any>
|
|
420
420
|
| FakeOnClauseValue
|
|
421
421
|
| object
|
|
422
422
|
}
|