UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

72 lines (71 loc) 2.52 kB
import { GraphType } from './GraphType/GraphType'; import { Infer } from './Infer'; import { FieldTypeName, FinalFieldDefinition, FlattenFieldDefinition } from './ObjectType'; export declare const JSONFieldCase: ("undefined" | "keep" | "capitalized" | "lowercase" | "random" | "slugify" | "camelCase")[]; export declare const JSONToSchemaOptions: import("./ObjectType").ObjectType<{ fieldCase: { enum: ("undefined" | "keep" | "capitalized" | "lowercase" | "random" | "slugify" | "camelCase")[]; optional: true; }; examples: "boolean?"; name: "string?"; json: { record: { type: "any"; keyType: "string"; }; }; }, { fieldCase: { enum: ("undefined" | "keep" | "capitalized" | "lowercase" | "random" | "slugify" | "camelCase")[]; optional: true; }; examples: "boolean?"; name: "string?"; json: { record: { type: "any"; keyType: "string"; }; }; }>; export type JSONToSchemaOptions = Infer<typeof JSONToSchemaOptions>; export declare function jsonToType(init: JSONToSchemaOptions): GraphType<{ object: { $string: 'unknown'; }; }>; export declare function jsonToSchemaDefinition(options: JSONToSchemaOptions): { [K: string]: FinalFieldDefinition; }; export declare function isCursorString(value: any): value is string; export declare const valuesToBacklandTypeRecord: { [L in FieldTypeName]: (value: any) => boolean; }; export declare const backlandValueTypeCheckEntries: import("@backland/utils").ObjectEntries<{ string: (value: any) => boolean; boolean: (value: any) => boolean; undefined: (value: any) => boolean; object: (value: any) => boolean; ID: (value: any) => boolean; alias: (value: any) => boolean; any: (value: any) => boolean; array: (value: any) => boolean; cursor: (value: any) => boolean; date: (value: any) => boolean; email: (value: any) => boolean; enum: (value: any) => boolean; float: (value: any) => boolean; int: (value: any) => boolean; literal: (value: any) => boolean; meta: (value: any) => boolean; null: (value: any) => boolean; phone: (value: any) => boolean; record: (value: any) => boolean; ulid: (value: any) => boolean; union: (value: any) => boolean; unknown: (value: any) => boolean; }>; export declare function valueToTypeDef(options: Omit<JSONToSchemaOptions, 'json'> & { value: any; }): FlattenFieldDefinition;