@backland/schema
Version:
TypeScript schema declaration and validation library with static type inference
72 lines (71 loc) • 2.52 kB
TypeScript
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;