@vinejs/vine - v4.2.0
    Preparing search index...

    Class VineValidator<Schema, MetaData>

    Vine Validator exposes the API to validate data using a pre-compiled schema. This class provides high-performance validation by compiling schemas once and reusing them for multiple validations.

    const validator = vine.compile(schema)
    const result = await validator.validate(data)

    Type Parameters

    • Schema extends SchemaTypes

      The schema type being validated

    • MetaData extends undefined | Record<string, any>

      The metadata type passed to validation

    Implements

    • StandardSchemaV1
    Index

    Constructors

    • Creates a new VineValidator instance with a compiled schema.

      Type Parameters

      • Schema extends SchemaTypes

        The schema type being validated

      • MetaData extends Record<string, any> | undefined

        The metadata type passed to validation

      Parameters

      • schema: Schema

        The schema to compile for validation

      • options: {
            convertEmptyStringsToNull: boolean;
            metaDataValidator?: MetaDataValidator;
            messagesProvider: MessagesProviderContact;
            errorReporter: () => ErrorReporterContract;
        }

        Configuration options for the validator

        • convertEmptyStringsToNull: boolean

          Whether to convert empty strings to null

        • OptionalmetaDataValidator?: MetaDataValidator

          Optional metadata validator function

        • messagesProvider: MessagesProviderContact

          Messages provider for error formatting

        • errorReporter: () => ErrorReporterContract

          Error reporter factory function

      Returns VineValidator<Schema, MetaData>

    Properties

    "[ITYPE]": Schema[typeof ITYPE]

    Reference to static input type for TypeScript inference

    "[OTYPE]": Schema[typeof OTYPE]

    Reference to static output type for TypeScript inference

    messagesProvider: MessagesProviderContact

    Messages provider instance used for internationalization and custom error message formatting

    errorReporter: () => ErrorReporterContract

    Error reporter factory function used for formatting and collecting validation errors

    validate: (
        data: any,
        ...options: [undefined] extends MetaData
            ? [options?: ValidationOptions<MetaData>]
            : [options: ValidationOptions<MetaData>],
    ) => Promise<Infer<Schema>>

    Validates data against the compiled schema. Returns the validated and typed data or throws a ValidationError if validation fails.

    Type Declaration

    await validator.validate({ name: 'John', age: 30 })
    
    // With metadata
    await validator.validate(data, {
    meta: { userId: '123' }
    })
    // With custom error reporter and messages provider
    await validator.validate(data, {
    meta: { userId: auth.user.id },
    errorReporter: () => new CustomErrorReporter(),
    messagesProvider: customMessagesProvider
    })
    schema: Schema

    The schema to compile for validation

    "~standard": Props<Schema[typeof ITYPE], Schema[typeof OTYPE]> & Props<
        Schema[typeof ITYPE],
        Schema[typeof OTYPE],
    > = ...

    Standard Schema V1 compliance implementation. Provides interoperability with other validation libraries through the Standard Schema specification.

    Methods

    • Performs validation without throwing a ValidationError exception. Instead, returns a tuple where the first element is the error (if any) and the second is the validated data (if successful).

      Parameters

      Returns Promise<[ValidationError, null] | [null, Infer<Schema>]>

      const [error, result] = await validator.tryValidate(data)
      if (error) {
      console.log(error.messages)
      } else {
      console.log(result)
      }
      // With metadata
      const [error, result] = await validator.tryValidate(data, {
      meta: { userId: '123' }
      })
      // With custom error reporter
      const [error, result] = await validator.tryValidate(data, {
      meta: { userId: auth.user.id },
      errorReporter: () => new CustomErrorReporter(),
      messagesProvider: customMessagesProvider
      })
    • Returns the compiled schema and refs as a JSON-serializable object. Useful for caching compiled schemas or debugging validation logic.

      Returns { schema: RootNode; refs: Refs }

      const compiled = validator.toJSON()
      console.log(compiled.schema)
      console.log(compiled.refs)
    • Converts the validator's schema to JSON Schema Draft 7 format. The result is cached for subsequent calls.

      Returns JSONSchema7

      const jsonSchema = validator.toJSONSchema()
      console.log(JSON.stringify(jsonSchema, null, 2))