Docs: Update benchmark results

This commit is contained in:
github-actions[bot]
2025-11-18 17:37:06 +00:00
parent 39d057f079
commit afcfd09537
84 changed files with 1086 additions and 1088 deletions

View File

@@ -6,12 +6,9 @@ const validateJSON = async (data, schema) => {
return {
valid,
errors: valid ? [] : validate.errors.map(e => ({
path: e.instancePath || '/',
message: e.message,
keyword: e.keyword,
params: e.params
}))
errors: valid ? [] : validate.errors.map(e =>
`${e.instancePath || '/'} ${e.message}`.trim()
)
};
};
export default validateJSON;

View File

@@ -1,17 +1,16 @@
const validateJSON = async (data, schema) => {
try {
const { default: Ajv } = await import('https://esm.sh/ajv@8');
const validate = new Ajv({ allErrors: true }).compile(schema);
const valid = validate(data);
const { default: Ajv } = await import('https://esm.sh/ajv@8');
return {
valid,
errors: valid ? [] : (validate.errors ?? []).map(
({ instancePath, message }) => `${instancePath || 'root'} ${message}`.trim()
),
};
} catch (e) {
return { valid: false, errors: [e.message] };
}
const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(schema);
const valid = validate(data);
const errors = valid
? []
: validate.errors.map(
({ instancePath, message }) => `${instancePath || 'object'} ${message}`.trim()
);
return { valid, errors };
};
export default validateJSON;

View File

@@ -0,0 +1,14 @@
const validateJSON = async (data, schema) => {
const { default: Ajv } = await import('https://esm.sh/ajv@8.17.1')
const ajv = new Ajv({ allErrors: true })
const validate = ajv.compile(schema)
const valid = validate(data)
return {
valid,
errors: valid ? [] : validate.errors.map(({ instancePath, message }) =>
`${instancePath} ${message}`.trim()
)
}
}
export default validateJSON;

View File

@@ -1,17 +1,25 @@
const cache = new WeakMap();
let ajv;
async function validateJSON(json, schema) {
const validateJSON = async (data, schema) => {
try {
if (!ajv) {
const { default: Ajv } = await import('https://cdn.jsdelivr.net/npm/ajv@8/dist/ajv.mjs');
ajv = new Ajv({ allErrors: true, strict: false });
}
const validator = cache.get(schema) || (cache.set(schema, ajv.compile(schema)), cache.get(schema));
const valid = validator(json);
return { valid, errors: valid ? [] : validator.errors.map(e => `${e.instancePath} ${e.message}`.trim()) };
} catch (error) {
return { valid: false, errors: [error.message] };
const { default: Ajv } = await import('https://esm.sh/ajv@8.12.0');
const ajv = new Ajv({ allErrors: true, strict: false });
try {
const { default: addFormats } = await import('https://esm.sh/ajv-formats@2.1.1');
addFormats(ajv);
} catch {}
const validate = ajv.compile(schema);
const valid = validate(data);
return {
valid,
errors: valid ? [] : validate.errors.map(e => {
const path = (e.instancePath || 'root') + (e.keyword === 'required' ? `.${e.params.missingProperty}` : '');
const pattern = e.params?.pattern ? ` (${e.params.pattern})` : '';
return `${path} ${e.message}${pattern}`.trim();
})
};
} catch (e) {
return { valid: false, errors: [`Validator error: ${e.message}`] };
}
}
};
export default validateJSON;

View File

@@ -1,8 +0,0 @@
async function validateJSON(d,s){
const {default:Ajv}=await import('https://cdn.skypack.dev/ajv');
const a=new Ajv({allErrors:true});
const v=a.compile(s);
const ok=v(d);
return{valid:ok,errors:ok?[]:(v.errors||[]).map(e=>e.message||'')};
}
export default validateJSON;

View File

@@ -1,9 +1,9 @@
export async function validateJSON(data, schema) {
const { default: Ajv } = await import('https://esm.sh/ajv@8?bundle');
const ajv = new Ajv({ allErrors: true, strict: false });
const validate = ajv.compile(schema);
const valid = validate(data);
const errors = valid ? [] : (validate.errors || []).map(e => `${e.instancePath || '/'} ${e.message || ''}`.trim());
return { valid, errors };
const fetchAjv=(()=>{let p;return()=>p??=import('https://cdn.jsdelivr.net/npm/ajv@8/dist/ajv.min.js?module').then(({default:A})=>new A({allErrors:true,strict:false}));})();
async function validateJSON(data,schema){
const ajv=await fetchAjv();
const validate=ajv.compile(schema);
const valid=validate(data);
return {valid,errors:valid?[]:validate.errors.map(e=>e.message||'Invalid')};
}
export default validateJSON;

View File

@@ -1,13 +0,0 @@
async function validateJSON(data, schema) {
const { default: Ajv } = await import('https://cdn.skypack.dev/ajv@8');
const ajv = new Ajv({ allErrors: true, verbose: true });
const validate = ajv.compile(schema);
const valid = validate(data);
return {
valid,
errors: valid ? [] : ajv.errors?.map(e =>
`${e.instancePath || 'data'}: ${e.message} (${e.params?.type || e.schema})`
) || []
};
}
export default validateJSON;

View File

@@ -1,20 +1,11 @@
const getAjv = async () => {
if (!getAjv.instance) {
const { default: Ajv } = await import('https://cdn.skypack.dev/ajv@8');
getAjv.instance = new Ajv({ allErrors: true });
}
return getAjv.instance;
};
const validateJSON = async (data, schema) => {
try {
const ajv = await getAjv();
const validate = ajv.compile(schema);
const valid = validate(data);
const errors = valid ? [] : ajv.errorsText(ajv.errors, { separator: '\n' }).split('\n').filter(s => s.trim());
return { valid, errors };
} catch (e) {
return { valid: false, errors: [`Validation error: ${e.message}`] };
}
};
async function validateJSON(data, schema) {
const { default: Ajv } = await import('https://esm.sh/ajv@8');
const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(schema);
const valid = validate(data);
return {
valid,
errors: valid ? [] : validate.errors.map(e => e.message)
};
}
export default validateJSON;