Skip to content

Commit 66a3942

Browse files
committed
fix: update json schema in ajv-validator to currently used schema
1 parent 9fe3d10 commit 66a3942

File tree

4 files changed

+26
-10
lines changed

4 files changed

+26
-10
lines changed
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
import uiSchema from '@educorvi/vue-json-form-schemas/dist/ui.schema.json';
2-
import draft7MetaSchema from 'ajv/dist/refs/json-schema-draft-07.json';
2+
import draft2019MetaSchema from '@educorvi/vue-json-form-schemas/dist/json-2019.schema.json';
3+
34
import { default as Ajv } from 'ajv/dist/2020.js';
45
import addFormats from 'ajv-formats';
56
import standaloneCode from 'ajv/dist/standalone';
67
import * as fs from 'node:fs';
78

8-
const ajv = new Ajv({allowUnionTypes: true,schemas: { uiSchema, draft7MetaSchema },code: {source: true, esm: false, optimize: true}});
9+
const ajv = new Ajv({
10+
allowUnionTypes: true,
11+
schemas: { uiSchema, draft2019MetaSchema },
12+
code: { source: true, esm: false, optimize: true },
13+
});
914
addFormats(ajv, ['json-pointer', 'date-time']);
1015

1116
let moduleCode = standaloneCode(ajv, {
1217
UiSchema: 'https://educorvi.github.io/vue-json-form/schemas/ui.schema.json',
13-
JsonSchema: 'http://json-schema.org/draft-07/schema#',
18+
JsonSchema: 'https://json-schema.org/draft/2019-09/schema#',
1419
});
1520

16-
fs.mkdirSync("./src/generated", {recursive: true});
17-
fs.writeFileSync("./src/generated/validatorCode.cjs", moduleCode);
21+
fs.mkdirSync('./src/generated', { recursive: true });
22+
fs.writeFileSync('./src/generated/validatorCode.cjs', moduleCode);

schemas/mergeSchema.cjs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ process.chdir(join(__dirname, 'src/ui'));
1111
* @returns {Promise<void>}
1212
*/
1313
async function deleteIds(schema) {
14-
if(Array.isArray(schema)) {
14+
if (Array.isArray(schema)) {
1515
schema.forEach(it => deleteIds(it));
16-
}else if (typeof schema === 'object') {
16+
} else if (typeof schema === 'object') {
1717
if (schema.$id && schema.$id !== 'https://educorvi.github.io/vue-json-form/schemas/ui.schema.json') {
1818
delete schema.$id;
1919
}
@@ -38,4 +38,14 @@ async function merge() {
3838
fs.writeFileSync(join(__dirname, 'src/generated/ui-merged.schema.json'), JSON.stringify(schema, null, 2));
3939
}
4040

41-
merge();
41+
async function mergeJsonSchema() {
42+
let schema = await RefParser.bundle('https://json-schema.org/draft/2019-09/schema#');
43+
schema = await RefParser.dereference(schema);
44+
fs.writeFileSync(join(__dirname, 'src/generated/json-merged.schema.json'), JSON.stringify(schema, null, 2));
45+
}
46+
47+
Promise.all([
48+
merge(),
49+
mergeJsonSchema(),
50+
]).then(() => process.exit(0));
51+

schemas/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"default": "./dist/vue-json-form-schemas.js"
1414
},
1515
"./dist/ui.schema.json": "./dist/ui.schema.json",
16-
"./dist/json-schema_draft7.json": "./dist/json-schema_draft7.json",
16+
"./dist/json-2019.schema.json": "./dist/json-2019.schema.json",
1717
"./package.json": "./package.json"
1818
},
1919
"unpkg": "./dist/vue-json-form-schemas.umd.cjs",

schemas/vite.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ export default defineConfig({
2525
}),
2626
viteStaticCopy({
2727
targets: [
28-
{ src: 'src/generated/ui-merged.schema.json', dest: '.', rename: 'ui.schema.json' }
28+
{ src: 'src/generated/ui-merged.schema.json', dest: '.', rename: 'ui.schema.json' },
29+
{ src: 'src/generated/json-merged.schema.json', dest: '.', rename: 'json-2019.schema.json' }
2930
],
3031
}),
3132
],

0 commit comments

Comments
 (0)