firesage
Version:
🔥 Extremely High Precision Typescript Wrapper for Firestore Web, Providing Unparalleled Type Safe and Dev Experience
20 lines (19 loc) • 1.81 kB
TypeScript
import { LimitConstraint, OriQueryConstraint, ErrorLimitInvalidNumber } from '../types';
export declare const limitCreator: <Type extends "limitToLast" | "limit">(type: Type, clause: (limit: number) => OriQueryConstraint) => <Value extends number>(limit: Value extends 0 ? "Error: do not use negative, 0 or decimal value" : number extends Value ? Value : Value extends infer R ? `${R & number}` extends `-${number}` | `${number}.${number}` ? "Error: do not use negative, 0 or decimal value" : Value : never) => LimitConstraint<Type, Value>;
/**
* Creates a {@link QueryConstraint} that only returns the first matching documents.
*
* @param limit - The maximum number of items to return.
* @returns The created {@link Query}.
*/
export declare const limit: <Value extends number>(limit: Value extends 0 ? "Error: do not use negative, 0 or decimal value" : number extends Value ? Value : Value extends infer R ? `${R & number}` extends `-${number}` | `${number}.${number}` ? "Error: do not use negative, 0 or decimal value" : Value : never) => LimitConstraint<"limit", Value>;
/**
* Creates a {@link QueryConstraint} that only returns the last matching documents.
*
* You must specify at least one `orderBy` clause for `limitToLast` queries,
* otherwise an exception will be thrown during execution.(Prevented on type level)
*
* @param limit - The maximum number of items to return.
* @returns The created {@link Query}.
*/
export declare const limitToLast: <Value extends number>(limit: Value extends 0 ? "Error: do not use negative, 0 or decimal value" : number extends Value ? Value : Value extends infer R ? `${R & number}` extends `-${number}` | `${number}.${number}` ? "Error: do not use negative, 0 or decimal value" : Value : never) => LimitConstraint<"limitToLast", Value>;