Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
default
✓ const ajvMergePatch = require('ajv-merge-patch'); ajvMergePatch(ajv)
✗ import ajvMergePatch from 'ajv-merge-patch'
Package does not export a default ES module; use CommonJS require or dynamic import().
default
✓ import('ajv-merge-patch').then(m => m.default(ajv))
✗ import ajvMergePatch from 'ajv-merge-patch'
For ES modules, use dynamic import and call .default.
$merge
✓ // Used as JSON Schema keyword; not directly imported
✗ const { $merge } = require('ajv-merge-patch')
$merge is a schema keyword, not an exported symbol.
Demonstrates registering ajv-merge-patch keywords with Ajv, defining a base schema, and extending it via $merge.
const Ajv = require('ajv');
const ajv = new Ajv();
// Register keywords
const ajvMergePatch = require('ajv-merge-patch');
ajvMergePatch(ajv);
// Define a base schema
const baseSchema = {
$id: 'base.json',
type: 'object',
properties: {
name: { type: 'string' }
},
required: ['name']
};
ajv.addSchema(baseSchema);
// Extend schema using $merge
const extendedSchema = {
$id: 'extended.json',
$merge: {
source: { $ref: 'base.json' },
with: {
properties: {
age: { type: 'number' }
},
required: ['name', 'age']
}
}
};
ajv.addSchema(extendedSchema);
const validate = ajv.getSchema('extended.json');
const valid = validate({ name: 'John', age: 30 });
console.log(valid); // true
console.log(validate.errors);
Errors
Common errors & fixes
Cannot find module 'ajv-merge-patch'
Package not installed or peer dependency version mismatch.
fixRun 'npm install ajv-merge-patch ajv@>=8.0.0'
TypeError: ajvMergePatch is not a function
Incorrect import: using ES import instead of require.
fixUse 'const ajvMergePatch = require('ajv-merge-patch');' Error: unknown keyword "$merge"
Keywords not registered with Ajv instance.
fixCall 'require('ajv-merge-patch')(ajv)' with your Ajv instance. ValidationError: data should have required property 'name'
$merge or $patch schema did not merge required fields correctly; source required array is overwritten instead of merged.
fixExplicitly include required fields in the 'with' patch, or use $patch with add operation.
Audit
Dependencies
ajvrequiredpeer dependency required for keyword registration and validation