UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

26 lines (25 loc) 1.15 kB
import type { Data, Database } from "../util/data.js"; import type { Validators } from "../util/validate.js"; import type { OptionalSchema } from "./OptionalSchema.js"; import type { SchemaOptions } from "./Schema.js"; import { Schema } from "./Schema.js"; /** Allowed options for `DataSchema` */ export interface DataSchemaOptions<T extends Data> extends SchemaOptions { readonly props: Validators<T>; readonly value?: Partial<T> | undefined; } /** Validate a data object. */ export declare class DataSchema<T extends Data> extends Schema<T> { readonly value: Partial<T>; readonly props: Validators<T>; constructor({ props, title, value, ...options }: DataSchemaOptions<T>); validate(unsafeValue?: unknown): T; } /** Set of named data schemas. */ export type DataSchemas<T extends Database> = { [K in keyof T]: DataSchema<T[K]>; }; /** Valid data object with specifed properties. */ export declare const DATA: <T extends Data>(props: Validators<T>) => DataSchema<T>; /** Valid data object with specifed properties, or `null` */ export declare const OPTIONAL_DATA: <T extends Data>(props: Validators<T>) => OptionalSchema<T>;