UNPKG

firelordjs

Version:

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

5 lines (4 loc) • 710 B
import { MetaType } from '../metaTypeCreator'; import { QueryConstraints, OrderByConstraint } from '../queryConstraints'; export type GetFirstOrderBy<T extends MetaType, QCs extends readonly QueryConstraints[]> = QCs extends [infer H, ...infer Rest] ? H extends OrderByConstraint<string> ? H : Rest extends readonly QueryConstraints[] ? GetFirstOrderBy<T, Rest> : never : true; export type GetAllOrderBy<T extends MetaType, QCs extends readonly QueryConstraints[], AllOrderBy extends OrderByConstraint<string>[]> = QCs extends [infer H, ...infer Rest] ? Rest extends readonly QueryConstraints[] ? GetAllOrderBy<T, Rest, H extends OrderByConstraint<string> ? [...AllOrderBy, H] : AllOrderBy> : [] : AllOrderBy;