@rvoh/dream 0.40.3 → 0.40.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/Dream.js +64 -12
- package/dist/cjs/src/dream/DreamClassTransactionBuilder.js +46 -6
- package/dist/cjs/src/dream/DreamInstanceTransactionBuilder.js +2 -2
- package/dist/cjs/src/dream/LeftJoinLoadBuilder.js +3 -3
- package/dist/cjs/src/dream/LoadBuilder.js +3 -3
- package/dist/cjs/src/dream/internal/associations/createAssociation.js +1 -6
- package/dist/cjs/src/dream/internal/findOrCreateBy.js +16 -0
- package/dist/cjs/src/dream/internal/updateOrCreateBy.js +18 -0
- package/dist/cjs/src/errors/CreateOrUpdateByFailedToCreateAndUpdate.js +18 -0
- package/dist/cjs/src/types/associations/belongsTo.js +2 -0
- package/dist/cjs/src/types/associations/hasMany.js +2 -0
- package/dist/cjs/src/types/associations/hasOne.js +2 -0
- package/dist/cjs/src/types/associations/shared.js +2 -0
- package/dist/cjs/src/types/db.js +2 -0
- package/dist/cjs/src/types/dream.js +2 -0
- package/dist/cjs/src/types/lifecycle.js +2 -0
- package/dist/cjs/src/types/logger.js +2 -0
- package/dist/cjs/src/types/openapi.js +2 -0
- package/dist/cjs/src/types/query.js +2 -0
- package/dist/cjs/src/types/utils.js +2 -0
- package/dist/cjs/src/types/validation.js +2 -0
- package/dist/cjs/src/types/variadic.js +2 -0
- package/dist/esm/src/Dream.js +64 -12
- package/dist/esm/src/dream/DreamClassTransactionBuilder.js +46 -6
- package/dist/esm/src/dream/DreamInstanceTransactionBuilder.js +2 -2
- package/dist/esm/src/dream/LeftJoinLoadBuilder.js +3 -3
- package/dist/esm/src/dream/LoadBuilder.js +3 -3
- package/dist/esm/src/dream/internal/associations/createAssociation.js +1 -6
- package/dist/esm/src/dream/internal/findOrCreateBy.js +13 -0
- package/dist/esm/src/dream/internal/updateOrCreateBy.js +15 -0
- package/dist/esm/src/errors/CreateOrUpdateByFailedToCreateAndUpdate.js +15 -0
- package/dist/esm/src/types/associations/belongsTo.js +1 -0
- package/dist/esm/src/types/associations/hasMany.js +1 -0
- package/dist/esm/src/types/associations/hasOne.js +1 -0
- package/dist/esm/src/types/associations/shared.js +1 -0
- package/dist/esm/src/types/db.js +1 -0
- package/dist/esm/src/types/dream.js +1 -0
- package/dist/esm/src/types/lifecycle.js +1 -0
- package/dist/esm/src/types/logger.js +1 -0
- package/dist/esm/src/types/openapi.js +1 -0
- package/dist/esm/src/types/query.js +1 -0
- package/dist/esm/src/types/utils.js +1 -0
- package/dist/esm/src/types/validation.js +1 -0
- package/dist/esm/src/types/variadic.js +1 -0
- package/dist/types/src/Dream.d.ts +42 -9
- package/dist/types/src/dream/DreamClassTransactionBuilder.d.ts +72 -37
- package/dist/types/src/dream/DreamInstanceTransactionBuilder.d.ts +3 -3
- package/dist/types/src/dream/LeftJoinLoadBuilder.d.ts +2 -2
- package/dist/types/src/dream/LoadBuilder.d.ts +2 -2
- package/dist/types/src/dream/Query.d.ts +1 -1
- package/dist/types/src/dream/internal/findOrCreateBy.d.ts +4 -0
- package/dist/types/src/dream/internal/updateOrCreateBy.d.ts +4 -0
- package/dist/types/src/errors/CreateOrUpdateByFailedToCreateAndUpdate.d.ts +6 -0
- package/dist/types/src/types/associations/belongsTo.d.ts +28 -73
- package/dist/types/src/types/associations/belongsTo.ts +76 -0
- package/dist/types/src/types/associations/hasMany.d.ts +15 -79
- package/dist/types/src/types/associations/hasMany.ts +80 -0
- package/dist/types/src/types/associations/hasOne.d.ts +8 -26
- package/dist/types/src/types/associations/hasOne.ts +26 -0
- package/dist/types/src/types/associations/shared.d.ts +98 -444
- package/dist/types/src/types/associations/shared.ts +450 -0
- package/dist/types/src/types/db.d.ts +9 -14
- package/dist/types/src/types/db.ts +14 -0
- package/dist/types/src/types/dream.d.ts +130 -509
- package/dist/types/src/types/dream.ts +530 -0
- package/dist/types/src/types/lifecycle.d.ts +23 -42
- package/dist/types/src/types/lifecycle.ts +50 -0
- package/dist/types/src/types/logger.d.ts +6 -40
- package/dist/types/src/types/logger.ts +42 -0
- package/dist/types/src/types/openapi.d.ts +105 -222
- package/dist/types/src/types/openapi.ts +255 -0
- package/dist/types/src/types/query.d.ts +53 -161
- package/dist/types/src/types/query.ts +165 -0
- package/dist/types/src/types/utils.d.ts +83 -141
- package/dist/types/src/types/utils.ts +173 -0
- package/dist/types/src/types/validation.d.ts +17 -18
- package/dist/types/src/types/validation.ts +20 -0
- package/dist/types/src/types/variadic.d.ts +42 -444
- package/dist/types/src/types/variadic.ts +447 -0
- package/docs/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 +205 -185
- package/docs/classes/DreamApp.html +4 -4
- package/docs/classes/DreamBin.html +2 -2
- package/docs/classes/DreamCLI.html +4 -4
- package/docs/classes/DreamImporter.html +2 -2
- package/docs/classes/DreamLogos.html +2 -2
- package/docs/classes/DreamMigrationHelpers.html +7 -7
- package/docs/classes/DreamSerializer.html +2 -2
- package/docs/classes/DreamTransaction.html +2 -2
- package/docs/classes/Encrypt.html +2 -2
- package/docs/classes/Env.html +2 -2
- package/docs/classes/GlobalNameNotSet.html +3 -3
- package/docs/classes/NonLoadedAssociation.html +3 -3
- package/docs/classes/Query.html +53 -53
- package/docs/classes/Range.html +2 -2
- package/docs/classes/RecordNotFound.html +3 -3
- package/docs/classes/ValidationError.html +3 -3
- package/docs/functions/Attribute.html +1 -1
- package/docs/functions/RendersMany.html +1 -1
- package/docs/functions/RendersOne.html +1 -1
- package/docs/functions/ReplicaSafe.html +1 -1
- package/docs/functions/STI.html +1 -1
- package/docs/functions/SoftDelete.html +1 -1
- package/docs/functions/camelize.html +1 -1
- package/docs/functions/capitalize.html +1 -1
- package/docs/functions/closeAllDbConnections.html +1 -1
- package/docs/functions/compact.html +1 -1
- package/docs/functions/dreamDbConnections.html +1 -1
- package/docs/functions/dreamPath.html +1 -1
- package/docs/functions/generateDream.html +1 -1
- package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
- package/docs/functions/hyphenize.html +1 -1
- package/docs/functions/inferSerializerFromDreamClassOrViewModelClass.html +1 -1
- package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
- package/docs/functions/isEmpty.html +1 -1
- package/docs/functions/loadRepl.html +1 -1
- package/docs/functions/lookupClassByGlobalName.html +1 -1
- package/docs/functions/pascalize.html +1 -1
- package/docs/functions/pgErrorType.html +1 -1
- package/docs/functions/range-1.html +1 -1
- package/docs/functions/relativeDreamPath.html +1 -1
- package/docs/functions/round.html +1 -1
- package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
- package/docs/functions/sharedPathPrefix.html +1 -1
- package/docs/functions/snakeify.html +1 -1
- package/docs/functions/sort.html +1 -1
- package/docs/functions/sortBy.html +1 -1
- package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
- package/docs/functions/uncapitalize.html +1 -1
- package/docs/functions/uniq.html +1 -1
- package/docs/functions/untypedDb.html +1 -1
- package/docs/functions/validateColumn.html +1 -1
- package/docs/functions/validateTable.html +1 -1
- package/docs/interfaces/AttributeStatement.html +2 -2
- package/docs/interfaces/DecoratorContext.html +2 -2
- package/docs/interfaces/DreamAppInitOptions.html +2 -2
- package/docs/interfaces/DreamAppOpts.html +2 -2
- package/docs/interfaces/DreamSerializerAssociationStatement.html +2 -2
- package/docs/interfaces/EncryptOptions.html +2 -2
- package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
- package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
- package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
- package/docs/types/Camelized.html +1 -1
- package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
- package/docs/types/DateTime.html +1 -1
- package/docs/types/DbConnectionType.html +1 -1
- package/docs/types/DreamAssociationMetadata.html +1 -1
- package/docs/types/DreamAttributes.html +1 -1
- package/docs/types/DreamClassColumn.html +1 -1
- package/docs/types/DreamColumn.html +1 -1
- package/docs/types/DreamColumnNames.html +1 -1
- package/docs/types/DreamLogLevel.html +1 -1
- package/docs/types/DreamLogger.html +1 -1
- package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
- package/docs/types/DreamParamSafeAttributes.html +1 -1
- package/docs/types/DreamParamSafeColumnNames.html +1 -1
- package/docs/types/DreamSerializerKey.html +1 -1
- package/docs/types/DreamSerializers.html +1 -1
- package/docs/types/DreamTableSchema.html +1 -1
- package/docs/types/DreamVirtualColumns.html +1 -1
- package/docs/types/EncryptAlgorithm.html +1 -1
- package/docs/types/Hyphenized.html +1 -1
- package/docs/types/IdType.html +1 -1
- package/docs/types/OpenapiAllTypes.html +1 -1
- package/docs/types/OpenapiFormats.html +1 -1
- package/docs/types/OpenapiNumberFormats.html +1 -1
- package/docs/types/OpenapiPrimitiveTypes.html +1 -1
- package/docs/types/OpenapiSchemaArray.html +1 -1
- package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
- package/docs/types/OpenapiSchemaBase.html +1 -1
- package/docs/types/OpenapiSchemaBody.html +1 -1
- package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
- package/docs/types/OpenapiSchemaCommonFields.html +1 -1
- package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
- package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
- package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
- package/docs/types/OpenapiSchemaInteger.html +1 -1
- package/docs/types/OpenapiSchemaNull.html +1 -1
- package/docs/types/OpenapiSchemaNumber.html +1 -1
- package/docs/types/OpenapiSchemaObject.html +1 -1
- package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectBase.html +1 -1
- package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
- package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
- package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
- package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
- package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
- package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
- package/docs/types/OpenapiSchemaString.html +1 -1
- package/docs/types/OpenapiShorthandAllTypes.html +1 -1
- package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
- package/docs/types/OpenapiTypeField.html +1 -1
- package/docs/types/Pascalized.html +1 -1
- package/docs/types/PrimaryKeyType.html +1 -1
- package/docs/types/RoundingPrecision.html +1 -1
- package/docs/types/SerializableClassOrSerializerCallback.html +1 -1
- package/docs/types/SerializableDreamClassOrViewModelClass.html +1 -1
- package/docs/types/SerializableDreamOrViewModel.html +1 -1
- package/docs/types/SerializableTypes.html +1 -1
- package/docs/types/Snakeified.html +1 -1
- package/docs/types/Timestamp.html +1 -1
- package/docs/types/UpdateableAssociationProperties.html +1 -1
- package/docs/types/UpdateableProperties.html +1 -1
- package/docs/types/ValidationType.html +1 -1
- package/docs/types/ViewModelSerializerKey.html +1 -1
- package/docs/types/WhereStatementForDream.html +1 -1
- package/docs/types/WhereStatementForDreamClass.html +1 -1
- package/docs/variables/DateTime-1.html +1 -1
- package/docs/variables/DreamConst.html +1 -1
- package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
- package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
- package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
- package/docs/variables/ops.html +1 -1
- package/docs/variables/primaryKeyTypes.html +1 -1
- package/package.json +1 -1
|
@@ -4,8 +4,8 @@ import { PassthroughColumnNames } from '../types/dream.js';
|
|
|
4
4
|
import { VariadicLoadArgs } from '../types/variadic.js';
|
|
5
5
|
import DreamTransaction from './DreamTransaction.js';
|
|
6
6
|
export default class LoadBuilder<DreamInstance extends Dream> {
|
|
7
|
+
private dreamTransaction?;
|
|
7
8
|
private dream;
|
|
8
|
-
private dreamTransaction;
|
|
9
9
|
private query;
|
|
10
10
|
/**
|
|
11
11
|
* An intermediate class on the way to executing a load
|
|
@@ -17,7 +17,7 @@ export default class LoadBuilder<DreamInstance extends Dream> {
|
|
|
17
17
|
* await user.load('settings').execute()
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
constructor(dream: Dream,
|
|
20
|
+
constructor(dream: Dream, dreamTransaction?: (DreamTransaction<any> | null) | undefined);
|
|
21
21
|
passthrough<I extends LoadBuilder<DreamInstance>, PassthroughColumns extends PassthroughColumnNames<DreamInstance>>(this: I, passthroughWhereStatement: PassthroughOnClause<PassthroughColumns>): I;
|
|
22
22
|
/**
|
|
23
23
|
* Attaches a load statement to the load builder
|
|
@@ -649,7 +649,7 @@ export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Re
|
|
|
649
649
|
* @returns A cloned Query with the transaction applied
|
|
650
650
|
*
|
|
651
651
|
*/
|
|
652
|
-
txn(dreamTransaction: DreamTransaction<Dream>): this;
|
|
652
|
+
txn(dreamTransaction: DreamTransaction<Dream> | null): this;
|
|
653
653
|
/**
|
|
654
654
|
* Retrieves the number of records in the database
|
|
655
655
|
*
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import Dream from '../../Dream.js';
|
|
2
|
+
import { CreateOrFindByExtraOpts, UpdateablePropertiesForClass } from '../../types/dream.js';
|
|
3
|
+
import DreamTransaction from '../DreamTransaction.js';
|
|
4
|
+
export default function findOrCreateBy<T extends typeof Dream>(dreamClass: T, txn: (DreamTransaction<InstanceType<T>> | null) | undefined, attributes: UpdateablePropertiesForClass<T>, extraOpts?: CreateOrFindByExtraOpts<T>): Promise<InstanceType<T>>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import Dream from '../../Dream.js';
|
|
2
|
+
import { UpdateablePropertiesForClass, UpdateOrCreateByExtraOpts } from '../../types/dream.js';
|
|
3
|
+
import DreamTransaction from '../DreamTransaction.js';
|
|
4
|
+
export default function updateOrCreateBy<T extends typeof Dream>(dreamClass: T, txn: (DreamTransaction<InstanceType<T>> | null) | undefined, attributes: UpdateablePropertiesForClass<T>, extraOpts?: UpdateOrCreateByExtraOpts<T>): Promise<InstanceType<T>>;
|
|
@@ -1,76 +1,31 @@
|
|
|
1
|
-
import Dream from '../../Dream.
|
|
2
|
-
import { AssociationTableNames } from '../db.js'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
>
|
|
18
|
-
modelCB: () => typeof Dream | (typeof Dream)[]
|
|
19
|
-
globalAssociationNameOrNames: string[]
|
|
20
|
-
type: 'BelongsTo'
|
|
21
|
-
as: string
|
|
22
|
-
primaryKey: (associationInstance?: Dream) => keyof DB[TableName] & string
|
|
23
|
-
primaryKeyValue: (associationInstance: Dream | null) => any
|
|
24
|
-
primaryKeyOverride?: (keyof DB[TableName] & string) | null
|
|
25
|
-
foreignKey: () => DreamColumnNames<BaseInstance> & string
|
|
26
|
-
foreignKeyTypeField: () => DreamColumnNames<BaseInstance> & string
|
|
27
|
-
optional: boolean
|
|
28
|
-
distinct: null
|
|
29
|
-
polymorphic: boolean
|
|
30
|
-
withoutDefaultScopes?: DefaultScopeName<BaseInstance>[]
|
|
1
|
+
import Dream from '../../Dream.js';
|
|
2
|
+
import { AssociationTableNames } from '../db.js';
|
|
3
|
+
import { DefaultScopeName, DefaultScopeNameForTable, DreamColumnNames, GlobalModelNames, TableColumnNames, TableNameForGlobalModelName } from '../dream.js';
|
|
4
|
+
export interface BelongsToStatement<BaseInstance extends Dream, DB, Schema, TableName extends AssociationTableNames<DB, Schema> & keyof DB> {
|
|
5
|
+
modelCB: () => typeof Dream | (typeof Dream)[];
|
|
6
|
+
globalAssociationNameOrNames: string[];
|
|
7
|
+
type: 'BelongsTo';
|
|
8
|
+
as: string;
|
|
9
|
+
primaryKey: (associationInstance?: Dream) => keyof DB[TableName] & string;
|
|
10
|
+
primaryKeyValue: (associationInstance: Dream | null) => any;
|
|
11
|
+
primaryKeyOverride?: (keyof DB[TableName] & string) | null;
|
|
12
|
+
foreignKey: () => DreamColumnNames<BaseInstance> & string;
|
|
13
|
+
foreignKeyTypeField: () => DreamColumnNames<BaseInstance> & string;
|
|
14
|
+
optional: boolean;
|
|
15
|
+
distinct: null;
|
|
16
|
+
polymorphic: boolean;
|
|
17
|
+
withoutDefaultScopes?: DefaultScopeName<BaseInstance>[];
|
|
31
18
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| readonly GlobalModelNames<BaseInstance>[],
|
|
38
|
-
AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
|
|
39
|
-
? AssociationGlobalNameOrNames[0] & string
|
|
40
|
-
: AssociationGlobalNameOrNames & string,
|
|
41
|
-
AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
42
|
-
keyof BaseInstance['DB'] = TableNameForGlobalModelName<
|
|
43
|
-
BaseInstance,
|
|
44
|
-
AssociationGlobalName & GlobalModelNames<BaseInstance>
|
|
45
|
-
> &
|
|
46
|
-
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
47
|
-
keyof BaseInstance['DB'],
|
|
48
|
-
> {
|
|
49
|
-
foreignKey?: DreamColumnNames<BaseInstance>
|
|
50
|
-
primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
|
|
51
|
-
optional?: boolean
|
|
52
|
-
withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
|
|
19
|
+
export interface NonPolymorphicBelongsToOptions<BaseInstance extends Dream, AssociationGlobalNameOrNames extends GlobalModelNames<BaseInstance> | readonly GlobalModelNames<BaseInstance>[], AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]> ? AssociationGlobalNameOrNames[0] & string : AssociationGlobalNameOrNames & string, AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB'] = TableNameForGlobalModelName<BaseInstance, AssociationGlobalName & GlobalModelNames<BaseInstance>> & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> {
|
|
20
|
+
foreignKey?: DreamColumnNames<BaseInstance>;
|
|
21
|
+
primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null;
|
|
22
|
+
optional?: boolean;
|
|
23
|
+
withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[];
|
|
53
24
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
|
|
61
|
-
? AssociationGlobalNameOrNames[0] & string
|
|
62
|
-
: AssociationGlobalNameOrNames & string,
|
|
63
|
-
AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
64
|
-
keyof BaseInstance['DB'] = TableNameForGlobalModelName<
|
|
65
|
-
BaseInstance,
|
|
66
|
-
AssociationGlobalName & GlobalModelNames<BaseInstance>
|
|
67
|
-
> &
|
|
68
|
-
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
69
|
-
keyof BaseInstance['DB'],
|
|
70
|
-
> {
|
|
71
|
-
foreignKey: DreamColumnNames<BaseInstance>
|
|
72
|
-
primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
|
|
73
|
-
optional?: boolean
|
|
74
|
-
polymorphic: boolean
|
|
75
|
-
withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
|
|
25
|
+
export interface PolymorphicBelongsToOptions<BaseInstance extends Dream, AssociationGlobalNameOrNames extends GlobalModelNames<BaseInstance> | readonly GlobalModelNames<BaseInstance>[], AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]> ? AssociationGlobalNameOrNames[0] & string : AssociationGlobalNameOrNames & string, AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB'] = TableNameForGlobalModelName<BaseInstance, AssociationGlobalName & GlobalModelNames<BaseInstance>> & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> {
|
|
26
|
+
foreignKey: DreamColumnNames<BaseInstance>;
|
|
27
|
+
primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null;
|
|
28
|
+
optional?: boolean;
|
|
29
|
+
polymorphic: boolean;
|
|
30
|
+
withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[];
|
|
76
31
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import Dream from '../../Dream.js'
|
|
2
|
+
import { AssociationTableNames } from '../db.js'
|
|
3
|
+
import {
|
|
4
|
+
DefaultScopeName,
|
|
5
|
+
DefaultScopeNameForTable,
|
|
6
|
+
DreamColumnNames,
|
|
7
|
+
GlobalModelNames,
|
|
8
|
+
TableColumnNames,
|
|
9
|
+
TableNameForGlobalModelName,
|
|
10
|
+
} from '../dream.js'
|
|
11
|
+
|
|
12
|
+
export interface BelongsToStatement<
|
|
13
|
+
BaseInstance extends Dream,
|
|
14
|
+
DB,
|
|
15
|
+
Schema,
|
|
16
|
+
TableName extends AssociationTableNames<DB, Schema> & keyof DB,
|
|
17
|
+
> {
|
|
18
|
+
modelCB: () => typeof Dream | (typeof Dream)[]
|
|
19
|
+
globalAssociationNameOrNames: string[]
|
|
20
|
+
type: 'BelongsTo'
|
|
21
|
+
as: string
|
|
22
|
+
primaryKey: (associationInstance?: Dream) => keyof DB[TableName] & string
|
|
23
|
+
primaryKeyValue: (associationInstance: Dream | null) => any
|
|
24
|
+
primaryKeyOverride?: (keyof DB[TableName] & string) | null
|
|
25
|
+
foreignKey: () => DreamColumnNames<BaseInstance> & string
|
|
26
|
+
foreignKeyTypeField: () => DreamColumnNames<BaseInstance> & string
|
|
27
|
+
optional: boolean
|
|
28
|
+
distinct: null
|
|
29
|
+
polymorphic: boolean
|
|
30
|
+
withoutDefaultScopes?: DefaultScopeName<BaseInstance>[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface NonPolymorphicBelongsToOptions<
|
|
34
|
+
BaseInstance extends Dream,
|
|
35
|
+
AssociationGlobalNameOrNames extends
|
|
36
|
+
| GlobalModelNames<BaseInstance>
|
|
37
|
+
| readonly GlobalModelNames<BaseInstance>[],
|
|
38
|
+
AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
|
|
39
|
+
? AssociationGlobalNameOrNames[0] & string
|
|
40
|
+
: AssociationGlobalNameOrNames & string,
|
|
41
|
+
AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
42
|
+
keyof BaseInstance['DB'] = TableNameForGlobalModelName<
|
|
43
|
+
BaseInstance,
|
|
44
|
+
AssociationGlobalName & GlobalModelNames<BaseInstance>
|
|
45
|
+
> &
|
|
46
|
+
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
47
|
+
keyof BaseInstance['DB'],
|
|
48
|
+
> {
|
|
49
|
+
foreignKey?: DreamColumnNames<BaseInstance>
|
|
50
|
+
primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
|
|
51
|
+
optional?: boolean
|
|
52
|
+
withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface PolymorphicBelongsToOptions<
|
|
56
|
+
BaseInstance extends Dream,
|
|
57
|
+
AssociationGlobalNameOrNames extends
|
|
58
|
+
| GlobalModelNames<BaseInstance>
|
|
59
|
+
| readonly GlobalModelNames<BaseInstance>[],
|
|
60
|
+
AssociationGlobalName = AssociationGlobalNameOrNames extends Readonly<any[]>
|
|
61
|
+
? AssociationGlobalNameOrNames[0] & string
|
|
62
|
+
: AssociationGlobalNameOrNames & string,
|
|
63
|
+
AssociationTableName extends AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
64
|
+
keyof BaseInstance['DB'] = TableNameForGlobalModelName<
|
|
65
|
+
BaseInstance,
|
|
66
|
+
AssociationGlobalName & GlobalModelNames<BaseInstance>
|
|
67
|
+
> &
|
|
68
|
+
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
69
|
+
keyof BaseInstance['DB'],
|
|
70
|
+
> {
|
|
71
|
+
foreignKey: DreamColumnNames<BaseInstance>
|
|
72
|
+
primaryKeyOverride?: TableColumnNames<BaseInstance['DB'], AssociationTableName> | null
|
|
73
|
+
optional?: boolean
|
|
74
|
+
polymorphic: boolean
|
|
75
|
+
withoutDefaultScopes?: DefaultScopeNameForTable<BaseInstance['schema'], AssociationTableName>[]
|
|
76
|
+
}
|
|
@@ -1,80 +1,16 @@
|
|
|
1
|
-
import Dream from '../../Dream.
|
|
2
|
-
import { AssociationTableNames } from '../db.js'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
HasThroughOptions,
|
|
13
|
-
OrderStatement,
|
|
14
|
-
PolymorphicHasOptions,
|
|
15
|
-
} from './shared.js'
|
|
16
|
-
|
|
17
|
-
export type HasManyStatement<
|
|
18
|
-
BaseInstance extends Dream,
|
|
19
|
-
DB,
|
|
20
|
-
Schema,
|
|
21
|
-
ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
|
|
22
|
-
> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasMany'> & {
|
|
23
|
-
distinct?: TableColumnNames<DB, ForeignTableName>
|
|
24
|
-
order?: OrderStatement<DB, Schema, ForeignTableName>
|
|
1
|
+
import Dream from '../../Dream.js';
|
|
2
|
+
import { AssociationTableNames } from '../db.js';
|
|
3
|
+
import { GlobalModelNames, GlobalModelNameTableMap, TableColumnNames, TableNameForGlobalModelName } from '../dream.js';
|
|
4
|
+
import { HasOptions, HasStatement, HasThroughOptions, OrderStatement, PolymorphicHasOptions } from './shared.js';
|
|
5
|
+
export type HasManyStatement<BaseInstance extends Dream, DB, Schema, ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasMany'> & {
|
|
6
|
+
distinct?: TableColumnNames<DB, ForeignTableName>;
|
|
7
|
+
order?: OrderStatement<DB, Schema, ForeignTableName>;
|
|
8
|
+
};
|
|
9
|
+
interface HasManyOnlyOptions<BaseInstance extends Dream, AssociationGlobalNameOrNames extends GlobalModelNames<BaseInstance> | readonly GlobalModelNames<BaseInstance>[], AssociationGlobalName = AssociationGlobalNameOrNames extends any[] ? AssociationGlobalNameOrNames[0] & string : AssociationGlobalNameOrNames & string, AssociationTableName = TableNameForGlobalModelName<BaseInstance, AssociationGlobalName & GlobalModelNames<BaseInstance>>> {
|
|
10
|
+
distinct?: TableColumnNames<BaseInstance['DB'], AssociationTableName & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> | boolean;
|
|
11
|
+
order?: OrderStatement<BaseInstance['DB'], BaseInstance['schema'], AssociationTableName & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']> | OrderStatement<BaseInstance['DB'], BaseInstance['schema'], AssociationTableName & AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> & keyof BaseInstance['DB']>[];
|
|
25
12
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
| readonly GlobalModelNames<BaseInstance>[],
|
|
31
|
-
AssociationGlobalName = AssociationGlobalNameOrNames extends any[]
|
|
32
|
-
? AssociationGlobalNameOrNames[0] & string
|
|
33
|
-
: AssociationGlobalNameOrNames & string,
|
|
34
|
-
AssociationTableName = TableNameForGlobalModelName<
|
|
35
|
-
BaseInstance,
|
|
36
|
-
AssociationGlobalName & GlobalModelNames<BaseInstance>
|
|
37
|
-
>,
|
|
38
|
-
> {
|
|
39
|
-
distinct?:
|
|
40
|
-
| TableColumnNames<
|
|
41
|
-
BaseInstance['DB'],
|
|
42
|
-
AssociationTableName &
|
|
43
|
-
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
44
|
-
keyof BaseInstance['DB']
|
|
45
|
-
>
|
|
46
|
-
| boolean
|
|
47
|
-
|
|
48
|
-
order?:
|
|
49
|
-
| OrderStatement<
|
|
50
|
-
BaseInstance['DB'],
|
|
51
|
-
BaseInstance['schema'],
|
|
52
|
-
AssociationTableName &
|
|
53
|
-
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
54
|
-
keyof BaseInstance['DB']
|
|
55
|
-
>
|
|
56
|
-
| OrderStatement<
|
|
57
|
-
BaseInstance['DB'],
|
|
58
|
-
BaseInstance['schema'],
|
|
59
|
-
AssociationTableName &
|
|
60
|
-
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
61
|
-
keyof BaseInstance['DB']
|
|
62
|
-
>[]
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export type HasManyOptions<
|
|
66
|
-
BaseInstance extends Dream,
|
|
67
|
-
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
68
|
-
> = HasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
|
|
69
|
-
|
|
70
|
-
export type PolymorphicHasManyOptions<
|
|
71
|
-
BaseInstance extends Dream,
|
|
72
|
-
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
73
|
-
> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName> &
|
|
74
|
-
HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
|
|
75
|
-
|
|
76
|
-
export type HasManyThroughOptions<
|
|
77
|
-
BaseInstance extends Dream,
|
|
78
|
-
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
79
|
-
> = HasThroughOptions<BaseInstance, AssociationGlobalName> &
|
|
80
|
-
HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
|
|
13
|
+
export type HasManyOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>;
|
|
14
|
+
export type PolymorphicHasManyOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>;
|
|
15
|
+
export type HasManyThroughOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasThroughOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import Dream from '../../Dream.js'
|
|
2
|
+
import { AssociationTableNames } from '../db.js'
|
|
3
|
+
import {
|
|
4
|
+
GlobalModelNames,
|
|
5
|
+
GlobalModelNameTableMap,
|
|
6
|
+
TableColumnNames,
|
|
7
|
+
TableNameForGlobalModelName,
|
|
8
|
+
} from '../dream.js'
|
|
9
|
+
import {
|
|
10
|
+
HasOptions,
|
|
11
|
+
HasStatement,
|
|
12
|
+
HasThroughOptions,
|
|
13
|
+
OrderStatement,
|
|
14
|
+
PolymorphicHasOptions,
|
|
15
|
+
} from './shared.js'
|
|
16
|
+
|
|
17
|
+
export type HasManyStatement<
|
|
18
|
+
BaseInstance extends Dream,
|
|
19
|
+
DB,
|
|
20
|
+
Schema,
|
|
21
|
+
ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
|
|
22
|
+
> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasMany'> & {
|
|
23
|
+
distinct?: TableColumnNames<DB, ForeignTableName>
|
|
24
|
+
order?: OrderStatement<DB, Schema, ForeignTableName>
|
|
25
|
+
}
|
|
26
|
+
interface HasManyOnlyOptions<
|
|
27
|
+
BaseInstance extends Dream,
|
|
28
|
+
AssociationGlobalNameOrNames extends
|
|
29
|
+
| GlobalModelNames<BaseInstance>
|
|
30
|
+
| readonly GlobalModelNames<BaseInstance>[],
|
|
31
|
+
AssociationGlobalName = AssociationGlobalNameOrNames extends any[]
|
|
32
|
+
? AssociationGlobalNameOrNames[0] & string
|
|
33
|
+
: AssociationGlobalNameOrNames & string,
|
|
34
|
+
AssociationTableName = TableNameForGlobalModelName<
|
|
35
|
+
BaseInstance,
|
|
36
|
+
AssociationGlobalName & GlobalModelNames<BaseInstance>
|
|
37
|
+
>,
|
|
38
|
+
> {
|
|
39
|
+
distinct?:
|
|
40
|
+
| TableColumnNames<
|
|
41
|
+
BaseInstance['DB'],
|
|
42
|
+
AssociationTableName &
|
|
43
|
+
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
44
|
+
keyof BaseInstance['DB']
|
|
45
|
+
>
|
|
46
|
+
| boolean
|
|
47
|
+
|
|
48
|
+
order?:
|
|
49
|
+
| OrderStatement<
|
|
50
|
+
BaseInstance['DB'],
|
|
51
|
+
BaseInstance['schema'],
|
|
52
|
+
AssociationTableName &
|
|
53
|
+
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
54
|
+
keyof BaseInstance['DB']
|
|
55
|
+
>
|
|
56
|
+
| OrderStatement<
|
|
57
|
+
BaseInstance['DB'],
|
|
58
|
+
BaseInstance['schema'],
|
|
59
|
+
AssociationTableName &
|
|
60
|
+
AssociationTableNames<BaseInstance['DB'], BaseInstance['schema']> &
|
|
61
|
+
keyof BaseInstance['DB']
|
|
62
|
+
>[]
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export type HasManyOptions<
|
|
66
|
+
BaseInstance extends Dream,
|
|
67
|
+
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
68
|
+
> = HasOptions<BaseInstance, AssociationGlobalName> & HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
|
|
69
|
+
|
|
70
|
+
export type PolymorphicHasManyOptions<
|
|
71
|
+
BaseInstance extends Dream,
|
|
72
|
+
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
73
|
+
> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName> &
|
|
74
|
+
HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
|
|
75
|
+
|
|
76
|
+
export type HasManyThroughOptions<
|
|
77
|
+
BaseInstance extends Dream,
|
|
78
|
+
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
79
|
+
> = HasThroughOptions<BaseInstance, AssociationGlobalName> &
|
|
80
|
+
HasManyOnlyOptions<BaseInstance, AssociationGlobalName>
|
|
@@ -1,26 +1,8 @@
|
|
|
1
|
-
import Dream from '../../Dream.
|
|
2
|
-
import { AssociationTableNames } from '../db.js'
|
|
3
|
-
import { GlobalModelNameTableMap } from '../dream.js'
|
|
4
|
-
import { HasOptions, HasStatement, HasThroughOptions, PolymorphicHasOptions } from './shared.js'
|
|
5
|
-
|
|
6
|
-
export type
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Schema,
|
|
10
|
-
ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
|
|
11
|
-
> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasOne'>
|
|
12
|
-
|
|
13
|
-
export type HasOneOptions<
|
|
14
|
-
BaseInstance extends Dream,
|
|
15
|
-
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
16
|
-
> = HasOptions<BaseInstance, AssociationGlobalName>
|
|
17
|
-
|
|
18
|
-
export type PolymorphicHasOneOptions<
|
|
19
|
-
BaseInstance extends Dream,
|
|
20
|
-
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
21
|
-
> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName>
|
|
22
|
-
|
|
23
|
-
export type HasOneThroughOptions<
|
|
24
|
-
BaseInstance extends Dream,
|
|
25
|
-
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
26
|
-
> = HasThroughOptions<BaseInstance, AssociationGlobalName>
|
|
1
|
+
import Dream from '../../Dream.js';
|
|
2
|
+
import { AssociationTableNames } from '../db.js';
|
|
3
|
+
import { GlobalModelNameTableMap } from '../dream.js';
|
|
4
|
+
import { HasOptions, HasStatement, HasThroughOptions, PolymorphicHasOptions } from './shared.js';
|
|
5
|
+
export type HasOneStatement<BaseInstance extends Dream, DB, Schema, ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasOne'>;
|
|
6
|
+
export type HasOneOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasOptions<BaseInstance, AssociationGlobalName>;
|
|
7
|
+
export type PolymorphicHasOneOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName>;
|
|
8
|
+
export type HasOneThroughOptions<BaseInstance extends Dream, AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>> = HasThroughOptions<BaseInstance, AssociationGlobalName>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Dream from '../../Dream.js'
|
|
2
|
+
import { AssociationTableNames } from '../db.js'
|
|
3
|
+
import { GlobalModelNameTableMap } from '../dream.js'
|
|
4
|
+
import { HasOptions, HasStatement, HasThroughOptions, PolymorphicHasOptions } from './shared.js'
|
|
5
|
+
|
|
6
|
+
export type HasOneStatement<
|
|
7
|
+
BaseInstance extends Dream,
|
|
8
|
+
DB,
|
|
9
|
+
Schema,
|
|
10
|
+
ForeignTableName extends AssociationTableNames<DB, Schema> & keyof DB,
|
|
11
|
+
> = HasStatement<BaseInstance, DB, Schema, ForeignTableName, 'HasOne'>
|
|
12
|
+
|
|
13
|
+
export type HasOneOptions<
|
|
14
|
+
BaseInstance extends Dream,
|
|
15
|
+
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
16
|
+
> = HasOptions<BaseInstance, AssociationGlobalName>
|
|
17
|
+
|
|
18
|
+
export type PolymorphicHasOneOptions<
|
|
19
|
+
BaseInstance extends Dream,
|
|
20
|
+
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
21
|
+
> = PolymorphicHasOptions<BaseInstance, AssociationGlobalName>
|
|
22
|
+
|
|
23
|
+
export type HasOneThroughOptions<
|
|
24
|
+
BaseInstance extends Dream,
|
|
25
|
+
AssociationGlobalName extends keyof GlobalModelNameTableMap<BaseInstance>,
|
|
26
|
+
> = HasThroughOptions<BaseInstance, AssociationGlobalName>
|