UNPKG

groq-builder

Version:

A **schema-aware**, strongly-typed GROQ query builder. It enables you to build GROQ queries using **auto-completion**, **type-checking**, and **runtime validation**.

31 lines (30 loc) 1.49 kB
import { InferParserInput, InferParserOutput, Parser, ParserFunction } from "../types/public-types"; import { Simplify } from "../types/utils"; /** * Pretty-prints the value */ export declare function inspect(value: unknown): string; /** * Validates (and maps) each item in an array. */ export declare function simpleArrayParser<TItemInput, TItemOutput>(itemParser: null | ParserFunction<TItemInput, TItemOutput>): ParserFunction<Array<TItemInput>, Array<TItemOutput>>; /** * Validates (and maps) each key in an object. */ export declare function simpleObjectParser<TMap extends ObjectValidationMap>(objectMapper?: TMap): ParserFunction<Simplify<{ [P in keyof TMap]: TMap[P] extends Parser ? InferParserInput<TMap[P]> : unknown; }>, Simplify<{ [P in keyof TMap]: TMap[P] extends Parser ? InferParserOutput<TMap[P]> : unknown; }>>; export type ObjectValidationMap = Record<string, Parser | null>; type UnknownObject = Record<string, unknown>; type UnknownObjectParser = (input: UnknownObject) => UnknownObject; /** * Combines multiple object parsers into a single parser */ export declare function combineObjectParsers(...objectParsers: UnknownObjectParser[]): UnknownObjectParser; /** * Returns a parser that works against an array or a single item. */ export declare function maybeArrayParser<TItemInput, TItemOutput>(parser: null | ParserFunction<TItemInput, TItemOutput>): ((input: TItemInput | Array<TItemInput>) => TItemOutput | TItemOutput[]) | null; export {};