firesage
Version:
🔥 Extremely High Precision Typescript Wrapper for Firestore Web, Providing Unparalleled Type Safe and Dev Experience
12 lines (11 loc) • 1.07 kB
TypeScript
import { MetaType, Query, CollectionReference, QueryConstraints, QueryConstraintLimitation, AddSentinelFieldPathToCompare, IsEqual, AddSentinelFieldPathToCompareHighLevel } from '../types';
/**
* Creates a new immutable instance of {@link Query} that is extended to also include
* additional query constraints.
*
* @param query - The {@link Query} instance to use as a base for the new constraints.
* @param queryConstraints - The list of {@link QueryConstraint}s to apply.
* @throws if any of the provided query constraints cannot be combined with the
* existing or new constraints.
*/
export declare const query: <T extends MetaType, Q extends Query<T>, QC extends QueryConstraints<AddSentinelFieldPathToCompare<T>>[]>(query: Q extends never ? Q : IsEqual<Q, Query<T>> extends true ? Query<T> : IsEqual<Q, CollectionReference<T>> extends true ? CollectionReference<T> : never, ...queryConstraints: QC extends never ? QC : QueryConstraintLimitation<AddSentinelFieldPathToCompare<T>, AddSentinelFieldPathToCompareHighLevel<T, Q>, QC, [], QC>) => Query<T>;