UNPKG

firesage

Version:

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

7 lines (6 loc) • 871 B
import { MetaType } from './metaTypeCreator'; import { ErrorMoreThanOnceDocSnapshotInCursor, ErrorEmptyCursor } from './error'; import { CursorConstraint } from './queryConstraints'; import { DocumentSnapshot, QueryDocumentSnapshot } from './snapshot'; export declare type CursorType = 'startAt' | 'startAfter' | 'endAt' | 'endBefore'; export declare type Cursor<Type extends CursorType> = <Values extends unknown[]>(...snapshotOrFieldValues: Values['length'] extends 0 ? [ErrorEmptyCursor] : number extends Values['length'] ? [ErrorEmptyCursor] : Values extends (infer R)[] ? DocumentSnapshot<MetaType> extends R ? Values['length'] extends 1 ? Values : ErrorMoreThanOnceDocSnapshotInCursor[] : QueryDocumentSnapshot<any> extends R ? Values['length'] extends 1 ? Values : ErrorMoreThanOnceDocSnapshotInCursor[] : Values : Values) => CursorConstraint<Type, Values>;