UNPKG

rapiq

Version:

A tiny library which provides utility types/functions for request and response query handling.

32 lines 1.59 kB
import type { Flatten, KeyWithOptionalPrefix, NestedKeys, ObjectLiteral, OnlyObject, SimpleKeys } from '../../types'; import type { RelationsParseOutput } from '../relations'; import type { ParseAllowedOption } from '../type'; import type { FieldOperator } from './constants'; type FieldWithOperator<T extends string> = KeyWithOptionalPrefix<T, FieldOperator>; export type FieldsBuildSimpleKeyInput<T extends ObjectLiteral = ObjectLiteral> = FieldWithOperator<SimpleKeys<T>>; export type FieldsBuildNestedKeyInput<T extends ObjectLiteral = ObjectLiteral> = FieldWithOperator<NestedKeys<T>>; export type FieldsBuildRecordInput<T extends ObjectLiteral = ObjectLiteral> = { [K in keyof T]?: Flatten<T[K]> extends OnlyObject<T[K]> ? FieldsBuildInput<Flatten<T[K]>> : never; }; export type FieldsBuildInput<T extends ObjectLiteral> = FieldsBuildRecordInput<T> | (FieldsBuildSimpleKeyInput[] | FieldsBuildRecordInput<T>)[] | FieldsBuildNestedKeyInput[] | FieldsBuildNestedKeyInput; export type FieldsParseOptions<T extends Record<string, any> = Record<string, any>> = { mapping?: Record<string, string>; allowed?: ParseAllowedOption<T>; default?: ParseAllowedOption<T>; defaultPath?: string; throwOnFailure?: boolean; relations?: RelationsParseOutput; }; export type FieldsParseOutputElement = { key: string; path?: string; value?: string; }; export type FieldsParseOutput = FieldsParseOutputElement[]; export type FieldsInputTransformed = { default: string[]; included: string[]; excluded: string[]; }; export {}; //# sourceMappingURL=type.d.ts.map