@canard/schema-form-ajv6-plugin
AJV 6.x validator plugin for @canard/schema-form.
Supports JSON Schema Draft-04, Draft-06, and Draft-07.
Use this plugin for legacy schemas or when you need Draft-04/06 support.
For new projects, prefer @canard/schema-form-ajv8-plugin.
Official Documentation
Installation
yarn add @canard/schema-form-ajv6-plugin
# ajv@^6 is bundled as a direct dependency
Quick Setup
import { registerPlugin } from '@canard/schema-form';
import { plugin } from '@canard/schema-form-ajv6-plugin';
registerPlugin(plugin);
Default Configuration
// Internal defaults applied when no custom AJV instance is bound
{
allErrors: true, // collect all errors, not just the first
nullable: true, // allow null values
verbose: true, // include additional error context
format: false, // format validation disabled for performance
}
Custom AJV Instance
import Ajv from 'ajv';
import { plugin } from '@canard/schema-form-ajv6-plugin';
const ajv = new Ajv({ allErrors: true, nullable: true });
// Bind before registerPlugin — or rebind at any time
plugin.validator.bind(ajv);
Using createValidatorFactory Directly
import Ajv from 'ajv';
import { createValidatorFactory } from '@canard/schema-form-ajv6-plugin';
const ajv = new Ajv({ allErrors: true });
const validate = createValidatorFactory(ajv)(myJsonSchema);
const errors = await validate(formData); // null | ValidationError[]
AJV 6.x Notes
- Error
dataPathuses JSONPath format ($.foo.bar). The plugin automatically transforms it to JSONPointer format (/foo/bar) forschema-formcompatibility. nullable: trueenables{ type: ['string', 'null'] }shorthand.- AJV 6 does not support Draft 2019-09 or Draft 2020-12. See the validator comparison for details.
AI Agent Reference
AI Reference
Package: @canard/schema-form-ajv6-plugin v0.10.0
Purpose: AJV 6.x validator plugin — use for legacy JSON Schema Draft-04/06/07.
Exports
import { plugin } from '@canard/schema-form-ajv6-plugin';
import { createValidatorFactory } from '@canard/schema-form-ajv6-plugin';
Usage
registerPlugin(plugin); // use default AJV config
plugin.validator.bind(new Ajv({ ... })); // bind custom AJV instance
createValidatorFactory(ajv)(schema); // standalone usage without plugin
Default AJV config
{ allErrors: true, nullable: true, verbose: true, format: false }
Key behaviors
- Error
dataPathauto-transformed from JSONPath ($.foo) to JSONPointer (/foo) nullable: true→ supports{ type: ['string', 'null'] }- Does NOT support Draft 2019-09 / 2020-12 → use ajv8-plugin instead