Skip to content

Commit db1253f

Browse files
Longboyysamualtnorman
authored andcommitted
Cleanup + basic array operators
1 parent 8bb1b3f commit db1253f

File tree

1 file changed

+30
-18
lines changed

1 file changed

+30
-18
lines changed

env.d.ts

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -770,22 +770,31 @@ type Projection<Schema extends object> = Partial<{
770770

771771

772772
type MongoUpdateOperators<Schema extends object> = Partial<{
773-
$set: Partial<Record<string, MongoCommandValue> & Schema>;
774-
$setOnInsert: Partial<Record<string, MongoCommandValue> & Schema>;
775-
$unset: Partial<Record<string, ""> & Schema>;
776-
$rename: Partial<Record<string, string> & Schema>;
773+
$set: Partial<Record<string, MongoCommandValue> & Schema>
774+
$setOnInsert: Partial<Record<string, MongoCommandValue> & Schema>
775+
$unset: Partial<Record<string, ""> & Schema>
776+
$rename: Partial<Record<string, string> & Schema>
777777
$inc: Partial<Record<string, number> & {
778-
[key in keyof Schema as Schema[key] extends number | Date ? key : never]: Schema[key] extends number ? number : Date;
779-
}>;
778+
[key in keyof Schema as Schema[key] extends number | Date ? key : never]: Schema[key] extends number ? number : Date
779+
}>
780780
$mul: Partial<Record<string, number> & {
781-
[key in keyof Schema as Schema[key] extends number ? key : never]: number;
782-
}>;
781+
[key in keyof Schema as Schema[key] extends number ? key : never]: number
782+
}>
783783
$min: Partial<Record<string, number> & {
784-
[key in keyof Schema as Schema[key] extends number ? key : never]: number;
785-
}>;
784+
[key in keyof Schema as Schema[key] extends number ? key : never]: number
785+
}>
786786
$max: Partial<Record<string, number> & {
787-
[key in keyof Schema as Schema[key] extends number ? key : never]: number;
788-
}>;
787+
[key in keyof Schema as Schema[key] extends number ? key : never]: number
788+
}>
789+
$pop: Partial<Record<string, -1 | 1> & {
790+
[key in keyof Schema as Schema[key] extends Array<infer U> ? key : never]: -1 | 1
791+
}>
792+
$push: Partial<Record<string, MongoCommandValue> & {
793+
[key in keyof Schema as Schema[key] extends Array<infer U> ? key : never]: Schema[key] | MongoUpdateArrayOperatorModifiers<Schema[key]>
794+
}>
795+
$addToSet: Partial<Record<string, MongoCommandValue> & {
796+
[key in keyof Schema as Schema[key] extends Array<infer U> ? key : never]: Schema[key] | MongoUpdateArrayOperatorUniversalModifiers<Schema[key]>
797+
}>
789798
}>
790799

791800
/*
@@ -795,12 +804,15 @@ type MongoUpdateArrayOperators<T extends Array> = {
795804
}
796805
*/
797806

798-
type MongoUpdateArrayOperatorModifiers<Schema extends Array> = {
799-
$each: Schema,
800-
$position: number,
801-
$slice: number,
802-
$sort: SortOrder | 1 | -1
803-
}
807+
type MongoUpdateArrayOperatorUniversalModifiers<T> = Partial<{
808+
$each: T extends Array<infer U> ? T : T[]
809+
}>
810+
811+
type MongoUpdateArrayOperatorModifiers<T> = MongoUpdateArrayOperatorUniversalModifiers<T> & Partial<{
812+
$position: number
813+
$slice: number
814+
$sort: 1 | -1
815+
}>
804816

805817
type MongoUpdateCommand<Schema extends object> = MongoUpdateOperators<Schema>
806818

0 commit comments

Comments
 (0)