Docs: Update benchmark results

This commit is contained in:
github-actions[bot]
2025-11-13 21:50:29 +00:00
parent 59752cb111
commit f2ef5831a7
31 changed files with 416 additions and 433 deletions

View File

@@ -1,5 +1,5 @@
const validateJSON = async (data, schema) => {
const { default: Ajv } = await import('https://cdn.jsdelivr.net/npm/ajv@8.12.0/dist/2020.min.js');
const { default: Ajv } = await import('https://cdn.jsdelivr.net/npm/ajv@8/dist/ajv.bundle.js');
const ajv = new Ajv({ allErrors: true, verbose: true });
const validate = ajv.compile(schema);
@@ -7,12 +7,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}${e.params ? ': ' + JSON.stringify(e.params) : ''}`
)
};
};
export default validateJSON;

View File

@@ -1,16 +1,35 @@
let ajvPromise;
const validateJSON = async (jsonObject, schemaObject) => {
try {
const [{
default: Ajv
}, {
default: addFormats
}] = await Promise.all([
import('https://esm.sh/ajv'),
import('https://esm.sh/ajv-formats')
]);
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
});
addFormats(ajv);
const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(schema);
const valid = validate(data);
const validate = ajv.compile(schemaObject);
const valid = validate(jsonObject);
const errors = valid ? [] : validate.errors.map(
e => (`${e.instancePath || 'root'} ${e.message}`).trim()
);
const errors = valid ? [] : validate.errors.map(
e => `${e.instancePath || '<root>'}: ${e.message}`
);
return { valid, errors };
return {
valid,
errors
};
} catch (e) {
return {
valid: false,
errors: [`Validation setup failed: ${e.message}`]
};
}
};
export default validateJSON;

View File

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

View File

@@ -1,10 +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)}
const validateJSON=async(j,s)=>{
const{default:Ajv}=await import('https://esm.sh/ajv@8')
const{default:f}=await import('https://esm.sh/ajv-formats@2')
const a=new Ajv({allErrors:1,strict:false})
f(a)
const v=a.compile(s)
const ok=v(j)
return{valid:ok,errors:ok?[]:(v.errors||[]).map(e=>`${e.instancePath||'/'} ${e.message}`.trim())}
}
export default validateJSON;