@skiyee/uni-ui
Version:
一个由原子化CSS驱动、符合直觉设计、高度定制化、面向AI时代的移动端 UI 库,助力开发者打造独特且差异化的移动端应用程序
41 lines (40 loc) • 1.19 kB
TypeScript
/**
* @skiyee/uni-ui v1.0.0
* @author skiyee(https://github.com/skiyee)
* @license Apache License 2.0
* @copyright 2025-present skiyee All rights reserved.
**/
import { Schema, SchemaIssue } from "./schema.type.js";
//#region src/validator/form.type.d.ts
interface FieldValidationOptions {
path?: string;
abortEarly?: boolean;
customMessage?: string;
}
interface FormValidatorConfig<TSchema extends Schema> {
schema: TSchema;
defaultOptions?: FieldValidationOptions;
messageTransformer?: (issue: SchemaIssue) => string;
pathTransformer?: (path: string[]) => string;
}
type SchemaIssues = ReadonlyArray<SchemaIssue>;
type FormErrors = string[];
type FormFieldError = string[];
interface FormFieldErrors {
[fieldPath: string]: FormFieldError;
}
interface FormValidationResult<T = any> {
success: boolean;
data?: T;
fieldErrors: FormFieldErrors;
formErrors: FormErrors;
issues: SchemaIssues;
}
interface FormFieldValidationResult<T> {
success: boolean;
data?: T;
error: FormFieldErrors[string];
issues: SchemaIssues;
}
//#endregion
export { FormFieldError, FormFieldErrors, FormFieldValidationResult, FormValidationResult, FormValidatorConfig, SchemaIssues };