@vueuse/integrations
Version:
Integration wrappers for utility libraries
48 lines (47 loc) • 1.81 kB
TypeScript
import { Rules, ValidateError, ValidateOption } from "async-validator";
import { ComputedRef, MaybeRefOrGetter, ShallowRef } from "vue";
//#region useAsyncValidator/index.d.ts
type AsyncValidatorError = Error & {
errors: ValidateError[];
fields: Record<string, ValidateError[]>;
};
interface UseAsyncValidatorExecuteReturn {
pass: boolean;
errors: AsyncValidatorError['errors'] | undefined;
errorInfo: AsyncValidatorError | null;
errorFields: AsyncValidatorError['fields'] | undefined;
}
interface UseAsyncValidatorReturn {
pass: ShallowRef<boolean>;
isFinished: ShallowRef<boolean>;
errors: ComputedRef<AsyncValidatorError['errors'] | undefined>;
errorInfo: ShallowRef<AsyncValidatorError | null>;
errorFields: ComputedRef<AsyncValidatorError['fields'] | undefined>;
execute: () => Promise<UseAsyncValidatorExecuteReturn>;
}
interface UseAsyncValidatorOptions {
/**
* @see https://github.com/yiminghe/async-validator#options
*/
validateOption?: ValidateOption;
/**
* The validation will be triggered right away for the first time.
* Only works when `manual` is not set to true.
*
* @default true
*/
immediate?: boolean;
/**
* If set to true, the validation will not be triggered automatically.
*/
manual?: boolean;
}
/**
* Wrapper for async-validator.
*
* @see https://vueuse.org/useAsyncValidator
* @see https://github.com/yiminghe/async-validator
*/
declare function useAsyncValidator(value: MaybeRefOrGetter<Record<string, any>>, rules: MaybeRefOrGetter<Rules>, options?: UseAsyncValidatorOptions): UseAsyncValidatorReturn & PromiseLike<UseAsyncValidatorReturn>;
//#endregion
export { useAsyncValidator as a, UseAsyncValidatorReturn as i, UseAsyncValidatorExecuteReturn as n, UseAsyncValidatorOptions as r, AsyncValidatorError as t };