mongoose 9.8.1 → 9.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/connection.js +1 -9
- package/lib/document.js +223 -128
- package/lib/helpers/document/applyDefaults.js +71 -7
- package/lib/helpers/model/castBulkWrite.js +2 -2
- package/lib/helpers/parallelLimit.js +41 -16
- package/lib/helpers/schema/idGetter.js +3 -0
- package/lib/helpers/timestamps/setupTimestamps.js +1 -0
- package/lib/helpers/update/applyTimestampsToUpdate.js +4 -5
- package/lib/model.js +71 -52
- package/lib/schema.js +44 -2
- package/lib/schemaType.js +4 -3
- package/lib/stateMachine.js +22 -3
- package/package.json +1 -1
- package/types/inferhydrateddoctype.d.ts +19 -3
- package/types/inferrawdoctype.d.ts +19 -3
- package/types/schemaoptions.d.ts +1 -0
- package/types/schematypes.d.ts +1 -1
|
@@ -56,12 +56,28 @@ declare module 'mongoose' {
|
|
|
56
56
|
type HydratedDocTypeHint<T> = T extends { __hydratedDocTypeHint: infer U } ? U
|
|
57
57
|
: never;
|
|
58
58
|
|
|
59
|
+
type DiscriminatorHydratedKey<TBaseSchema extends Schema> =
|
|
60
|
+
ObtainSchemaGeneric<TBaseSchema, 'TSchemaOptions'> extends infer TSchemaOptions ?
|
|
61
|
+
'discriminatorKey' extends keyof TSchemaOptions ?
|
|
62
|
+
TSchemaOptions['discriminatorKey'] extends string ? TSchemaOptions['discriminatorKey'] : '__t'
|
|
63
|
+
: '__t'
|
|
64
|
+
: '__t';
|
|
65
|
+
|
|
66
|
+
type DiscriminatorHydratedBaseType<TBaseSchema extends Schema> =
|
|
67
|
+
InferHydratedDocTypeFromSchema<TBaseSchema> extends Record<DiscriminatorHydratedKey<TBaseSchema>, any> ?
|
|
68
|
+
InferHydratedDocTypeFromSchema<TBaseSchema>
|
|
69
|
+
: MergeType<InferHydratedDocTypeFromSchema<TBaseSchema>, { [K in DiscriminatorHydratedKey<TBaseSchema>]?: null }>;
|
|
70
|
+
|
|
59
71
|
type ResolveDiscriminatorHydratedPathType<TBaseSchema extends Schema, TDiscriminators> =
|
|
60
72
|
IsAny<TDiscriminators> extends true ? never
|
|
61
73
|
: TDiscriminators extends Record<string, any> ?
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
74
|
+
DiscriminatorHydratedBaseType<TBaseSchema> |
|
|
75
|
+
{
|
|
76
|
+
[K in keyof TDiscriminators]: TDiscriminators[K] extends Schema ?
|
|
77
|
+
MergeType<InferHydratedDocTypeFromSchema<TBaseSchema>, InferHydratedDocTypeFromSchema<TDiscriminators[K]>> &
|
|
78
|
+
{ [KDiscriminatorKey in DiscriminatorHydratedKey<TBaseSchema>]: K }
|
|
79
|
+
: never
|
|
80
|
+
}[keyof TDiscriminators]
|
|
65
81
|
: never;
|
|
66
82
|
|
|
67
83
|
type HydratedDiscriminatorEnumType<T> = string extends keyof T ? never
|
|
@@ -45,12 +45,28 @@ declare module 'mongoose' {
|
|
|
45
45
|
type RawDocTypeHint<T> = IsAny<T> extends true ? never
|
|
46
46
|
: T extends { __rawDocTypeHint: infer U } ? U: never;
|
|
47
47
|
|
|
48
|
+
type DiscriminatorRawKey<TBaseSchema extends Schema> =
|
|
49
|
+
ObtainSchemaGeneric<TBaseSchema, 'TSchemaOptions'> extends infer TSchemaOptions ?
|
|
50
|
+
'discriminatorKey' extends keyof TSchemaOptions ?
|
|
51
|
+
TSchemaOptions['discriminatorKey'] extends string ? TSchemaOptions['discriminatorKey'] : '__t'
|
|
52
|
+
: '__t'
|
|
53
|
+
: '__t';
|
|
54
|
+
|
|
55
|
+
type DiscriminatorRawBaseType<TBaseSchema extends Schema> =
|
|
56
|
+
InferRawDocTypeFromSchema<TBaseSchema> extends Record<DiscriminatorRawKey<TBaseSchema>, any> ?
|
|
57
|
+
InferRawDocTypeFromSchema<TBaseSchema>
|
|
58
|
+
: MergeType<InferRawDocTypeFromSchema<TBaseSchema>, { [K in DiscriminatorRawKey<TBaseSchema>]?: null }>;
|
|
59
|
+
|
|
48
60
|
type ResolveDiscriminatorRawPathType<TBaseSchema extends Schema, TDiscriminators> =
|
|
49
61
|
IsAny<TDiscriminators> extends true ? never
|
|
50
62
|
: TDiscriminators extends Record<string, any> ?
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
63
|
+
DiscriminatorRawBaseType<TBaseSchema> |
|
|
64
|
+
{
|
|
65
|
+
[K in keyof TDiscriminators]: TDiscriminators[K] extends Schema ?
|
|
66
|
+
MergeType<InferRawDocTypeFromSchema<TBaseSchema>, InferRawDocTypeFromSchema<TDiscriminators[K]>> &
|
|
67
|
+
{ [KDiscriminatorKey in DiscriminatorRawKey<TBaseSchema>]: K }
|
|
68
|
+
: never
|
|
69
|
+
}[keyof TDiscriminators]
|
|
54
70
|
: never;
|
|
55
71
|
|
|
56
72
|
type RawDiscriminatorEnumType<T> = string extends keyof T ? never
|
package/types/schemaoptions.d.ts
CHANGED
package/types/schematypes.d.ts
CHANGED
|
@@ -115,7 +115,7 @@ declare module 'mongoose' {
|
|
|
115
115
|
* The default value for this path. If a function, Mongoose executes the function
|
|
116
116
|
* and uses the return value as the default.
|
|
117
117
|
*/
|
|
118
|
-
default?: DefaultType<T> | ((this: THydratedDocumentType, doc: THydratedDocumentType) => DefaultType<T> | null | undefined) | null;
|
|
118
|
+
default?: DefaultType<T> | ((this: THydratedDocumentType, doc: THydratedDocumentType) => DefaultType<T> | null | undefined) | null | undefined;
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
121
|
* The model that `populate()` should use if populating this path.
|