jsonv-ts
Version:
JSON Schema builder and validator for TypeScript with static type inference, Hono middleware for OpenAPI generation and validation, and MCP server/client implementation. Lightweight, dependency-free, and built on Web Standards.
23 lines (22 loc) • 1.06 kB
TypeScript
import { Node, Schema, type ISchemaOptions, type StrictOptions, type WalkOptions } from "../schema/schema";
import type { Static, StaticCoerced } from "../static";
type ArrayStatic<T extends Schema> = Static<T>[] & {};
type ArrayCoerced<T extends Schema> = StaticCoerced<T>[] & {};
export interface IArrayOptions extends ISchemaOptions {
$defs?: Record<string, Schema>;
contains?: Schema;
minContains?: number;
maxContains?: number;
prefixItems?: Schema[];
uniqueItems?: boolean;
maxItems?: number;
minItems?: number;
}
export declare class ArraySchema<const Items extends Schema, const O extends IArrayOptions> extends Schema<O, ArrayStatic<Items>, ArrayCoerced<Items>> {
readonly items?: Items | undefined;
readonly type = "array";
constructor(items?: Items | undefined, options?: O);
children(opts?: WalkOptions): Node[];
}
export declare const array: <const Items extends Schema, const O extends IArrayOptions>(items?: Items, options?: StrictOptions<IArrayOptions, O>) => ArraySchema<Items, O> & O;
export {};