json-schema-migrate-x
Version:
Migrate JSON-Schema `draft-04` to `draft-07`, `draft-2019-09` or `draft-2020-12`
22 lines • 817 B
JavaScript
import { getAjv } from './ajv.js';
import { metaSchema } from './common.js';
import { DRAFT_2020_SCHEMA, DRAFT_2019_SCHEMA } from './constants.js';
export function getMigrateSchema(version) {
const isDraft2020 = version === 'draft2020';
const schema = isDraft2020 ? DRAFT_2020_SCHEMA : DRAFT_2019_SCHEMA;
return {
$id: `migrateSchema-${version}`,
$schema: schema,
allOf: [{ migrateSchema: version }, { $ref: schema }],
...(isDraft2020 ? { $dynamicAnchor: 'meta' } : { $recursiveAnchor: true }),
};
}
export function getMigrate(version) {
let migrate;
return (schema) => {
migrate ||= getAjv(version).compile(getMigrateSchema(version));
migrate(schema);
schema.$schema ||= metaSchema(version);
};
}
//# sourceMappingURL=helpers.js.map