UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

54 lines (53 loc) 2.76 kB
import { FieldAsString, FieldInput, ObjectType, ShortenFinalFieldDefinition } from './ObjectType'; import { FieldDefinitionConfig } from './TObjectConfig'; import { TAnyFieldType } from './fields/FieldType'; import { MetaField } from './fields/MetaFieldField'; import { CommonFieldDefinition } from './fields/_fieldDefinitions'; import { FinalFieldDefinition } from './fields/_parseFields'; export interface ParserHook { (field: FinalFieldDefinition): FinalFieldDefinition; } export declare const _parserHooks: ParserHook[]; export interface RemoveParserHook { (): ParserHook[]; } export declare function setParserHook(hook: ParserHook): RemoveParserHook; export declare function parseObjectField<T extends FieldDefinitionConfig, Options extends ParseFieldOptions>(fieldName: string, definition: T, options: Options): [Options['returnInstance']] extends [true] ? TAnyFieldType : [Options['asString']] extends [true] ? FieldAsString : FinalFieldDefinition; export declare function parseObjectField<T extends FieldDefinitionConfig>(fieldName: string, definition: T): FinalFieldDefinition; /** * @deprecated use the object options instead of true * @param fieldName * @param definition * @param options */ export declare function parseObjectField<T extends FieldDefinitionConfig>(fieldName: string, definition: T, options: true): TAnyFieldType; export declare function parseField(definition: FieldInput): FinalFieldDefinition; export declare function parseFieldDefinitionConfig<T extends FieldDefinitionConfig, Options extends ParseFieldOptions>(definition: T, options?: Options): [Options['asString']] extends [true] ? FieldAsString | FinalFieldDefinition | ShortenFinalFieldDefinition : FinalFieldDefinition; export type ParseFieldOptions = { asString?: boolean; deep?: { asString?: boolean; omitMeta?: boolean; }; omitMeta?: boolean; returnInstance?: boolean; }; type ParseResult = { definition: { [key: string]: FinalFieldDefinition; }; meta?: MetaField['asFinalFieldDef']; }; export declare function parseObjectDefinition(input: Record<string, any>, options?: Omit<ParseFieldOptions, 'returnInstance'>): ParseResult; /** * Object as field['type'] is deprecated * @param input */ export declare function isObjectAsTypeDefinition(input: any): input is CommonFieldDefinition<ObjectType<any>>; export declare function parseFlattenFieldDefinition(input: any, options?: ParseFieldOptions): FinalFieldDefinition | false; export declare const CACHED_FIELD_INSTANCE_KEY = "__cachedFieldInstance"; export declare function __getCachedFieldInstance(field: FinalFieldDefinition & { [K: string]: any; }): TAnyFieldType; export declare function deleteCachedFieldInstance<T>(def: T): T; export {};