Docs: Update benchmark results

This commit is contained in:
github-actions[bot]
2025-11-13 21:24:36 +00:00
parent 63fdb538ff
commit a38ae2d0c5
62 changed files with 532 additions and 1161 deletions

View File

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

View File

@@ -1,14 +1,18 @@
const validateJSON = async (data, schema) => {
const { default: Ajv } = await import('https://esm.sh/ajv@8.12.0');
const ajv = new Ajv({ allErrors: true });
const { default: Ajv } = await import('https://cdn.jsdelivr.net/npm/ajv@8.12.0/dist/2020.min.js');
const ajv = new Ajv({ allErrors: true, verbose: true });
const validate = ajv.compile(schema);
const valid = validate(data);
return {
valid,
errors: valid ? [] : validate.errors.map(e =>
`${e.instancePath || '/'} ${e.message}`.trim()
)
errors: valid ? [] : validate.errors.map(e => ({
path: e.instancePath || '/',
message: e.message,
keyword: e.keyword,
params: e.params
}))
};
};
export default validateJSON;

View File

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

View File

@@ -1,25 +0,0 @@
const validateJSON = (() => {
let ajvPromise;
const validatorCache = new WeakMap();
return async (json, schema) => {
ajvPromise ||= import('https://cdn.jsdelivr.net/npm/ajv@8/dist/ajv2020.min.js')
.then(({ default: Ajv }) => new Ajv({ allErrors: true }));
const ajv = await ajvPromise;
let validate = validatorCache.get(schema);
if (!validate) {
validate = ajv.compile(schema);
validatorCache.set(schema, validate);
}
const valid = validate(json);
const errors = valid ? [] : validate.errors.map(
({ instancePath, message }) => `${instancePath || 'object'} ${message}`
);
return { valid, errors };
};
})();
export default validateJSON;

View File

@@ -0,0 +1,16 @@
let ajvPromise;
const validateJSON = async (data, schema) => {
const { default: Ajv } = await (ajvPromise ||= import('https://cdn.jsdelivr.net/npm/ajv@8.12.0/+esm'));
const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(schema);
const valid = validate(data);
const errors = valid ? [] : validate.errors.map(
e => (`${e.instancePath || 'root'} ${e.message}`).trim()
);
return { valid, errors };
};
export default validateJSON;

View File

@@ -1,25 +0,0 @@
let ajv
const cache=new WeakMap()
const ensureAjv=async()=>ajv??=new (await import('https://cdn.jsdelivr.net/npm/ajv@8.12.0/+esm')).default({allErrors:true,strict:false})
const getValidator=async schema=>{
if(cache.has(schema))return cache.get(schema)
const v=(await ensureAjv()).compile(schema)
cache.set(schema,v)
return v
}
async function validateJSON(data,schema){
try{
const v=await getValidator(schema)
const valid=v(data)
const errors=valid?[]:(v.errors||[]).map(e=>{
const path=e.instancePath||'/'
const msg=e.message||'Invalid value'
const meta=e.params&&Object.keys(e.params).length?` ${JSON.stringify(e.params)}`:''
return`${path} ${msg}${meta}`.trim()
})
return{valid,errors}
}catch(err){
return{valid:false,errors:[err?.message||String(err)]}
}
}
export default validateJSON;

View File

@@ -0,0 +1,10 @@
const ajvP=import('https://cdn.skypack.dev/ajv@8?min').then(m=>m.default||m)
const ajvI=ajvP.then(Ajv=>new Ajv({allErrors:true}))
export async function validateJSON(data,schema){
const ajv=await ajvI
let validate
try{validate=ajv.compile(schema)}catch(e){return{valid:false,errors:[e.message]}}
const valid=validate(data)
return valid?{valid:true,errors:[]}:{valid:false,errors:validate.errors.map(e=>(e.instancePath||'/')+' '+e.message)}
}
export default validateJSON;

View File

@@ -1,21 +0,0 @@
async function validateJSON(data, schema) {
const { default: Ajv } = await import('https://cdn.skypack.dev/ajv@8?min');
const { default: addFormats } = await import('https://cdn.skypack.dev/ajv-formats@2?min');
const ajv = new Ajv({ allErrors: true, strict: false });
addFormats(ajv);
const compile = s => {
const c = ajv.compile(s);
return d => ({ ok: c(d), errs: c.errors || [] });
};
const run = compile(schema);
const r = run(data);
if (r.ok) return { valid: true, errors: [] };
const errors = r.errs.map(e => {
const p = e.instancePath || e.dataPath || '';
const loc = p || e.schemaPath || '';
const msg = e.message || 'Invalid value';
return loc ? loc + ' ' + msg : msg;
});
return { valid: false, errors };
}
export default validateJSON;