diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index dcd0eda9d..15af51ac3 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -1,4 +1,4 @@ -import { isCallable, FieldContext, ValidationMessageGenerator } from '../../shared'; +import { isCallable, FieldValidationMetaInfo, ValidationMessageGenerator } from '../../shared'; import { interpolate, merge } from './utils'; type ValidationMessageTemplate = ValidationMessageGenerator | string; @@ -23,11 +23,11 @@ class Dictionary { this.merge(dictionary); } - public resolve(ctx: FieldContext) { + public resolve(ctx: FieldValidationMetaInfo) { return this.format(this.locale, ctx); } - public format(locale: string, ctx: FieldContext) { + public format(locale: string, ctx: FieldValidationMetaInfo) { let message!: ValidationMessageTemplate | undefined; const { field, rule, form } = ctx; if (!rule) { diff --git a/packages/shared/types.ts b/packages/shared/types.ts index 8bc57b6f5..3543f1cd7 100644 --- a/packages/shared/types.ts +++ b/packages/shared/types.ts @@ -1,4 +1,4 @@ -export interface FieldContext { +export interface FieldValidationMetaInfo { field: string; value: unknown; form: Record; @@ -11,7 +11,7 @@ export interface FieldContext { export type ValidationRuleFunction> = ( value: TValue, params: TParams, - ctx: FieldContext + ctx: FieldValidationMetaInfo ) => boolean | string | Promise; export type SimpleValidationRuleFunction> = ( @@ -19,4 +19,4 @@ export type SimpleValidationRuleFunction boolean | string | Promise; -export type ValidationMessageGenerator = (ctx: FieldContext) => string; +export type ValidationMessageGenerator = (ctx: FieldValidationMetaInfo) => string; diff --git a/packages/vee-validate/src/index.ts b/packages/vee-validate/src/index.ts index 2126bb79e..0295f1492 100644 --- a/packages/vee-validate/src/index.ts +++ b/packages/vee-validate/src/index.ts @@ -11,8 +11,8 @@ export { FormActions, FormState, FormValidationResult, - FormContext, - PublicFormContext, + PublicFormContext as FormContext, + FieldContext, SubmissionContext, SubmissionHandler, } from './types'; diff --git a/packages/vee-validate/src/types.ts b/packages/vee-validate/src/types.ts index ad0b714f9..f509dae4e 100644 --- a/packages/vee-validate/src/types.ts +++ b/packages/vee-validate/src/types.ts @@ -1,6 +1,6 @@ import { ComputedRef, Ref, WritableComputedRef } from 'vue'; import { SchemaOf, AnySchema, AnyObjectSchema } from 'yup'; -import { FieldContext } from '../../shared'; +import { FieldValidationMetaInfo } from '../../shared'; export interface ValidationResult { errors: string[]; @@ -63,11 +63,11 @@ export interface PrivateFieldComposite { setErrors(message: string | string[]): void; } -export type FieldComposable = Omit, 'idx' | 'fid'>; +export type FieldContext = Omit, 'idx' | 'fid'>; export type GenericValidateFunction = ( value: unknown, - ctx: FieldContext + ctx: FieldValidationMetaInfo ) => boolean | string | Promise; export interface FormState { diff --git a/packages/vee-validate/src/useField.ts b/packages/vee-validate/src/useField.ts index 310e05b3f..b86997cf3 100644 --- a/packages/vee-validate/src/useField.ts +++ b/packages/vee-validate/src/useField.ts @@ -22,7 +22,7 @@ import { GenericValidateFunction, FieldMeta, YupValidator, - FieldComposable, + FieldContext, FieldState, PrivateFieldComposite, WritableRef, @@ -71,7 +71,7 @@ export function useField( name: MaybeRef, rules?: MaybeRef>, opts?: Partial> -): FieldComposable { +): FieldContext { const fid = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER; const { initialValue, diff --git a/packages/vee-validate/src/validate.ts b/packages/vee-validate/src/validate.ts index 2fc234d80..31459fbc9 100644 --- a/packages/vee-validate/src/validate.ts +++ b/packages/vee-validate/src/validate.ts @@ -3,7 +3,7 @@ import { resolveRule } from './defineRule'; import { isLocator, normalizeRules, isYupValidator, keysOf, getFromPath } from './utils'; import { getConfig } from './config'; import { ValidationResult, GenericValidateFunction, YupValidator, FormValidationResult, RawFormSchema } from './types'; -import { isCallable, FieldContext } from '../../shared'; +import { isCallable, FieldValidationMetaInfo } from '../../shared'; /** * Used internally @@ -143,7 +143,7 @@ async function _test( } const params = fillTargetValues(rule.params, field.formData); - const ctx: FieldContext = { + const ctx: FieldValidationMetaInfo = { field: field.name, value, form: field.formData, @@ -169,7 +169,7 @@ async function _test( /** * Generates error messages. */ -function _generateFieldError(fieldCtx: FieldContext) { +function _generateFieldError(fieldCtx: FieldValidationMetaInfo) { const message = getConfig().generateMessage; if (!message) { return 'Field is invalid'; diff --git a/packages/vee-validate/tests/useForm.spec.ts b/packages/vee-validate/tests/useForm.spec.ts index 095e0c3a8..095213b15 100644 --- a/packages/vee-validate/tests/useForm.spec.ts +++ b/packages/vee-validate/tests/useForm.spec.ts @@ -1,5 +1,5 @@ import flushPromises from 'flush-promises'; -import { PublicFormContext, useField, useForm } from '@/vee-validate'; +import { FormContext, useField, useForm } from '@/vee-validate'; import { mountWithHoc, setValue } from './helpers'; import * as yup from 'yup'; @@ -32,7 +32,7 @@ describe('useForm()', () => { }); test('can clear individual field error messages', async () => { - let setFieldError!: PublicFormContext['setFieldError']; + let setFieldError!: FormContext['setFieldError']; mountWithHoc({ setup() { const form = useForm();