inline-schema/dist/index.d.mts

36 lines
1.1 KiB
TypeScript

type SchemaType = 'string' | 'number' | 'boolean';
interface PrimitiveSchema {
type: SchemaType;
}
interface NamedSchema {
name?: string;
schema: Schema;
}
interface TupleSchema {
type: 'tuple';
elements: NamedSchema[];
}
interface ArraySchema {
type: 'array';
element: Schema;
}
type Schema = PrimitiveSchema | TupleSchema | ArraySchema;
interface ParsedSchema {
schema: Schema;
validator: (value: unknown) => boolean;
parse: (valueString: string) => unknown;
}
declare class ParseError extends Error {
position?: number | undefined;
constructor(message: string, position?: number | undefined);
}
declare function parseSchema(schemaString: string): Schema;
declare function parseValue(schema: Schema, valueString: string): unknown;
declare function createValidator(schema: Schema): (value: unknown) => boolean;
declare function defineSchema(schemaString: string): ParsedSchema;
export { type ArraySchema, ParseError, type ParsedSchema, type PrimitiveSchema, type Schema, type TupleSchema, createValidator, defineSchema, parseSchema, parseValue };