Validation API reference

Current emitted signatures and options for @db3.ai/app/validation.

On this pageSource-backed Markdown

Imports and examples

Import supported APIs from @db3.ai/app/validation. These signatures come from the staged package used by consumers. Relative filenames in declarations describe type dependencies; they are not extra supported deep imports.

Use the guide for setup, executable examples, failure handling and ownership. A signature is not proof that every deployment or provider has been exercised.

Rules, results, exceptions and helpers

Rules, results, exceptions and helpers
ts
export type ValidationRuleName = 'required' | 'nullable' | 'string' | 'number' | 'integer' | 'boolean' | 'email' | 'url' | 'array' | 'object' | 'min' | 'max' | 'minLength' | 'maxLength' | 'in' | 'regex' | 'ulid' | 'uuid';
export type ValidationRule = ValidationRuleName | `${ValidationRuleName}:${string}` | {
    rule: ValidationRuleName;
    value?: unknown;
    values?: readonly unknown[];
    pattern?: RegExp;
    message?: string;
};
export type ValidationRules = Record<string, readonly ValidationRule[]>;
export interface ValidationFailure {
    field: string;
    rule: ValidationRuleName;
    message: string;
    value?: unknown;
    details?: Record<string, unknown>;
}
export interface ValidationResult<TData extends Record<string, unknown> = Record<string, unknown>> {
    valid: boolean;
    data: TData;
    errors: ValidationFailure[];
}
export declare class ValidationException extends Error {
    readonly errors: ValidationFailure[];
    constructor(errors: ValidationFailure[]);
}
export declare function validate<TData extends Record<string, unknown> = Record<string, unknown>>(data: unknown, rules: ValidationRules): ValidationResult<TData>;
export declare function assertValid<TData extends Record<string, unknown> = Record<string, unknown>>(data: unknown, rules: ValidationRules): TData;
export declare function isEmail(value: unknown): boolean;