@@ -208,10 +208,10 @@ export class Firestore {
208
208
}
209
209
210
210
// @public
211
- export interface FirestoreDataConverter <ModelT , SerializedModelT extends DocumentData > {
212
- fromFirestore(snapshot : QueryDocumentSnapshot <DocumentData , DocumentData >, options ? : SnapshotOptions ): ModelT ;
213
- toFirestore(modelObject : WithFieldValue <ModelT >): SerializedModelT ;
214
- toFirestore(modelObject : PartialWithFieldValue < ModelT >, options : SetOptions ): DeepPartial <SerializedModelT >;
211
+ export interface FirestoreDataConverter <ModelT , SerializedModelT extends DocumentData = ModelT extends DocumentData ? ModelT : DocumentData > {
212
+ fromFirestore(snapshot : QueryDocumentSnapshot <SerializedModelT , SerializedModelT >, options ? : SnapshotOptions ): ModelT ;
213
+ toFirestore(modelObject : WithFieldValue <ModelT >): WithFieldValue < SerializedModelT > ;
214
+ toFirestore(modelObject : DeepPartial < WithFieldValue < ModelT >> , options : SetOptions ): DeepPartial <WithFieldValue < SerializedModelT > >;
215
215
}
216
216
217
217
// @public
@@ -412,11 +412,6 @@ export function orderBy(fieldPath: string | FieldPath, directionStr?: OrderByDir
412
412
// @public
413
413
export type OrderByDirection = ' desc' | ' asc' ;
414
414
415
- // @public
416
- export type PartialWithFieldValue <T > = Partial <T > | (T extends Primitive ? T : T extends {} ? {
417
- [K in keyof T ]? : PartialWithFieldValue <T [K ]> | FieldValue ;
418
- } : never );
419
-
420
415
// @public
421
416
export interface PersistenceSettings {
422
417
forceOwnership? : boolean ;
@@ -559,7 +554,7 @@ export function serverTimestamp(): FieldValue;
559
554
export function setDoc<ModelT , SerializedModelT extends DocumentData >(reference : DocumentReference <ModelT , SerializedModelT >, data : WithFieldValue <ModelT >): Promise <void >;
560
555
561
556
// @public
562
- export function setDoc<ModelT , SerializedModelT extends DocumentData >(reference : DocumentReference <ModelT , SerializedModelT >, data : PartialWithFieldValue < ModelT >, options : SetOptions ): Promise <void >;
557
+ export function setDoc<ModelT , SerializedModelT extends DocumentData >(reference : DocumentReference <ModelT , SerializedModelT >, data : DeepPartial < WithFieldValue < ModelT > >, options : SetOptions ): Promise <void >;
563
558
564
559
// @beta
565
560
export function setIndexConfiguration(firestore : Firestore , configuration : IndexConfiguration ): Promise <void >;
@@ -641,7 +636,7 @@ export class Transaction {
641
636
delete<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >): this ;
642
637
get<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >): Promise <DocumentSnapshot <ModelT , SerializedModelT >>;
643
638
set<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : WithFieldValue <ModelT >): this ;
644
- set<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : PartialWithFieldValue < ModelT >, options : SetOptions ): this ;
639
+ set<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : DeepPartial < WithFieldValue < ModelT > >, options : SetOptions ): this ;
645
640
update<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : UpdateData <SerializedModelT >): this ;
646
641
update<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, field : string | FieldPath , value : unknown , ... moreFieldsAndValues : unknown []): this ;
647
642
}
@@ -680,7 +675,7 @@ export function where(fieldPath: string | FieldPath, opStr: WhereFilterOp, value
680
675
export type WhereFilterOp = ' <' | ' <=' | ' ==' | ' !=' | ' >=' | ' >' | ' array-contains' | ' in' | ' array-contains-any' | ' not-in' ;
681
676
682
677
// @public
683
- export type WithFieldValue <T > = T | (T extends Primitive ? T : T extends {} ? {
678
+ export type WithFieldValue <T > = T | (T extends {} ? {
684
679
[K in keyof T ]: WithFieldValue <T [K ]> | FieldValue ;
685
680
} : never );
686
681
@@ -689,7 +684,7 @@ export class WriteBatch {
689
684
commit(): Promise <void >;
690
685
delete<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >): WriteBatch ;
691
686
set<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : WithFieldValue <ModelT >): WriteBatch ;
692
- set<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : PartialWithFieldValue < ModelT >, options : SetOptions ): WriteBatch ;
687
+ set<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : DeepPartial < WithFieldValue < ModelT > >, options : SetOptions ): WriteBatch ;
693
688
update<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, data : UpdateData <SerializedModelT >): WriteBatch ;
694
689
update<ModelT , SerializedModelT extends DocumentData >(documentRef : DocumentReference <ModelT , SerializedModelT >, field : string | FieldPath , value : unknown , ... moreFieldsAndValues : unknown []): WriteBatch ;
695
690
}
0 commit comments