UNPKG

firesage

Version:

🔥 Extremely High Precision Typescript Wrapper for Firestore Web, Providing Unparalleled Type Safe and Dev Experience

24 lines (23 loc) • 1.34 kB
import { MetaType } from './metaTypeCreator'; import { DocumentReference } from './refs'; import { PartialNoUndefinedAndNoUnknownMemberNoEmptyMember, RecursivelyReplaceDeleteFieldWithErrorMsg } from './partialNoUndefinedAndNoUnknownMember'; import { DeepKeyHybrid } from './objectFlatten'; import { Transaction } from './transaction'; import { WriteBatch } from './batch'; declare type SetCreator<U> = <T extends MetaType, Data extends Record<string, unknown>, SetOptions extends { merge: boolean; } | { mergeFields: DeepKeyHybrid<Data, 'write'>[]; } | undefined = undefined>(reference: DocumentReference<T>, data: Data extends never ? Data : SetOptions extends { merge: true; } | { mergeFields: DeepKeyHybrid<Data, 'write'>[]; } ? PartialNoUndefinedAndNoUnknownMemberNoEmptyMember<T['write'], Data, SetOptions extends { merge: boolean; } ? SetOptions['merge'] : SetOptions extends { mergeFields: DeepKeyHybrid<Data, 'write'>[]; } ? SetOptions['mergeFields'] : false, false> : RecursivelyReplaceDeleteFieldWithErrorMsg<T['write'], Data>, options?: SetOptions extends never ? SetOptions : SetOptions) => U; export declare type Set = SetCreator<Promise<void>>; export declare type TransactionSet = SetCreator<Transaction>; export declare type WriteBatchSet = SetCreator<WriteBatch>; export {};