mirror of
https://github.com/imezx/Warp.git
synced 2025-04-24 15:10:03 +00:00
48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import { MaybeRefOrGetter } from '@vueuse/shared';
|
|
import { ValidateError, ValidateOption, Rules } from 'async-validator';
|
|
import { Ref } from 'vue-demi';
|
|
|
|
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: Ref<boolean>;
|
|
isFinished: Ref<boolean>;
|
|
errors: Ref<AsyncValidatorError['errors'] | undefined>;
|
|
errorInfo: Ref<AsyncValidatorError | null>;
|
|
errorFields: Ref<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>;
|
|
|
|
export { type AsyncValidatorError, type UseAsyncValidatorExecuteReturn, type UseAsyncValidatorOptions, type UseAsyncValidatorReturn, useAsyncValidator };
|