@canard/schema-form-ajv7-plugin
AJV 7.x validator plugin for @canard/schema-form.
Supports JSON Schema Draft-07 and Draft 2019-09.
Useful as a migration step between AJV 6 and AJV 8,
or when you need Draft 2019-09 support without upgrading to AJV 8.
Official Documentation
Installation
yarn add @canard/schema-form-ajv7-plugin
# ajv@^7 is bundled as a direct dependency
Quick Setup
import { registerPlugin } from '@canard/schema-form';
import { plugin } from '@canard/schema-form-ajv7-plugin';
registerPlugin(plugin);
Default Configuration
// Internal defaults applied when no custom AJV instance is bound
{
allErrors: true, // collect all errors, not just the first
strict: false, // disable strict mode for schema compatibility
validateFormats: false, // format validation disabled for performance
}
Custom AJV Instance
import Ajv from 'ajv';
import { plugin } from '@canard/schema-form-ajv7-plugin';
const ajv = new Ajv({ allErrors: true, strict: false });
plugin.validator.bind(ajv);
Using createValidatorFactory Directly
import Ajv from 'ajv';
import { createValidatorFactory } from '@canard/schema-form-ajv7-plugin';
const ajv = new Ajv({ allErrors: true });
const validate = createValidatorFactory(ajv)(myJsonSchema);
const errors = await validate(formData); // null | ValidationError[]
AJV 7.x Notes
- Error paths use JSONPointer format natively — no path transformation needed (unlike AJV 6).
strict: falseis set by default for compatibility with schemas that use custom keywords.- Does not support Draft 2020-12. Use
@canard/schema-form-ajv8-plugin/2020for that.
AI Agent Reference
AI Reference
Package: @canard/schema-form-ajv7-plugin v0.10.0
Purpose: AJV 7.x validator plugin — Draft-07 and Draft 2019-09 support.
Exports
import { plugin } from '@canard/schema-form-ajv7-plugin';
import { createValidatorFactory } from '@canard/schema-form-ajv7-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, strict: false, validateFormats: false }
Key behaviors
- Native JSONPointer error paths (no transform needed unlike AJV 6)
strict: falsefor custom keyword compatibility- Does NOT support Draft 2020-12 → use ajv8-plugin/2020