@rvoh/dream 0.36.3 → 0.37.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/README.md +1 -1
- package/dist/cjs/src/Dream.js +29 -23
- 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/cjs/src/serializer/index.js +6 -2
- package/dist/esm/src/Dream.js +29 -23
- 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/esm/src/serializer/index.js +6 -2
- package/dist/types/src/Dream.d.ts +11 -11
- 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/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 +126 -126
- 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
|
|
@@ -253,18 +253,22 @@ export default class DreamSerializer {
|
|
|
253
253
|
function unknownTypeToIsoDateString(date) {
|
|
254
254
|
if (date === undefined)
|
|
255
255
|
return undefined;
|
|
256
|
+
if (date === null)
|
|
257
|
+
return null;
|
|
256
258
|
if (date instanceof CalendarDate || date instanceof DateTime)
|
|
257
259
|
return date.toISODate();
|
|
258
|
-
return
|
|
260
|
+
return date;
|
|
259
261
|
}
|
|
260
262
|
function unknownTypeToIsoDatetimeString(dateTime) {
|
|
261
263
|
if (dateTime === undefined)
|
|
262
264
|
return undefined;
|
|
265
|
+
if (dateTime === null)
|
|
266
|
+
return null;
|
|
263
267
|
if (dateTime instanceof CalendarDate)
|
|
264
268
|
return DateTime.fromISO(dateTime.toISO()).toISO();
|
|
265
269
|
if (dateTime instanceof DateTime)
|
|
266
270
|
return dateTime.toISO();
|
|
267
|
-
return
|
|
271
|
+
return dateTime;
|
|
268
272
|
}
|
|
269
273
|
function unknownTypeToDecimal(decimalOrString, precision) {
|
|
270
274
|
if (decimalOrString === undefined)
|
|
@@ -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';
|
|
@@ -1925,24 +1925,24 @@ export default class Dream {
|
|
|
1925
1925
|
* @returns The created association
|
|
1926
1926
|
*/
|
|
1927
1927
|
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,
|
|
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> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
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> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
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> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
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> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
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> & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
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> & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
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, joinAndStatements: JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
|
|
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, joinAndStatements?: JoinAndStatements<DB, Schema, AssociationTableName, null>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
|
|
1936
1936
|
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
1937
|
bypassAllDefaultScopes?: boolean;
|
|
1938
1938
|
defaultScopesToBypass?: AllDefaultScopeNames<I>[];
|
|
1939
1939
|
skipHooks?: boolean;
|
|
1940
|
-
} &
|
|
1940
|
+
} & JoinAndStatements<DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
|
|
1941
1941
|
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
1942
|
bypassAllDefaultScopes?: boolean;
|
|
1943
1943
|
defaultScopesToBypass?: AllDefaultScopeNames<I>[];
|
|
1944
1944
|
skipHooks?: boolean;
|
|
1945
|
-
} &
|
|
1945
|
+
} & JoinAndStatements<DB, Schema, AssociationTableName, null>): Promise<number>;
|
|
1946
1946
|
/**
|
|
1947
1947
|
* Sends data through for use as passthrough data
|
|
1948
1948
|
* 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
|
}
|
|
@@ -3,7 +3,7 @@ import { AssociationTableNames } from './db.js'
|
|
|
3
3
|
import {
|
|
4
4
|
AssociationNamesForTable,
|
|
5
5
|
AssociationTableName,
|
|
6
|
-
|
|
6
|
+
JoinAndStatements,
|
|
7
7
|
MAX_VARIADIC_DEPTH,
|
|
8
8
|
} from './dream.js'
|
|
9
9
|
import { Inc, ReadonlyTail } from './utils.ts'
|
|
@@ -149,7 +149,7 @@ type VariadicCheckThenRecurse<
|
|
|
149
149
|
? VALID
|
|
150
150
|
: ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName>
|
|
151
151
|
? VALID
|
|
152
|
-
: ConcreteArgs[0] extends
|
|
152
|
+
: ConcreteArgs[0] extends JoinAndStatements<
|
|
153
153
|
DB,
|
|
154
154
|
Schema,
|
|
155
155
|
ConcreteTableName,
|
|
@@ -298,7 +298,7 @@ type AllowedNextArgValuesForLoad<
|
|
|
298
298
|
> =
|
|
299
299
|
| AssociationNamesForTable<Schema, TableName>
|
|
300
300
|
| AssociationNamesForTable<Schema, TableName>[]
|
|
301
|
-
|
|
|
301
|
+
| JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
302
302
|
type AllowedNextArgValuesForLeftJoinLoad<
|
|
303
303
|
DB,
|
|
304
304
|
Schema,
|
|
@@ -308,7 +308,7 @@ type AllowedNextArgValuesForLeftJoinLoad<
|
|
|
308
308
|
> =
|
|
309
309
|
| Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>
|
|
310
310
|
| Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>[]
|
|
311
|
-
|
|
|
311
|
+
| JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
312
312
|
type AllowedNextArgValuesForJoin<
|
|
313
313
|
DB,
|
|
314
314
|
Schema,
|
|
@@ -317,7 +317,7 @@ type AllowedNextArgValuesForJoin<
|
|
|
317
317
|
UsedNamespaces,
|
|
318
318
|
> =
|
|
319
319
|
| Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>
|
|
320
|
-
|
|
|
320
|
+
| JoinAndStatements<DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
|
|
321
321
|
|
|
322
322
|
export interface JoinedAssociation {
|
|
323
323
|
table: string
|