Docs: Update benchmark results

This commit is contained in:
github-actions[bot]
2025-11-18 23:31:52 +00:00
parent 341252fec1
commit 5855cf8a6f
77 changed files with 972 additions and 1051 deletions

View File

@@ -1,14 +1,11 @@
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/dist/2020.min.js');
const ajv = new Ajv({ allErrors: true, strict: false });
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 => `${e.instancePath || '/'} ${e.message}`)
};
};
export default validateJSON;

View File

@@ -1,16 +1,24 @@
const validateJSON = async (data, schema) => {
const { default: Ajv } = await import('https://esm.sh/ajv@8');
const validateJSON = async (json, schema) => {
let ajv;
const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(schema);
const valid = validate(data);
try {
const { default: Ajv } = await import('https://cdn.jsdelivr.net/npm/ajv@8.17.1/+esm');
ajv = new Ajv({ allErrors: true });
} catch (e) {
return { valid: false, errors: ["Failed to load validator: " + e.message] };
}
const errors = valid
? []
: validate.errors.map(
({ instancePath, message }) => `${instancePath || 'object'} ${message}`.trim()
);
try {
const validate = ajv.compile(schema);
const valid = validate(json);
return { valid, errors };
const errors = validate.errors?.map(
e => `${e.instancePath || 'root'} ${e.message}`.trim()
) ?? [];
return { valid, errors };
} catch (e) {
return { valid: false, errors: ["Invalid schema: " + e.message] };
}
};
export default validateJSON;

View File

@@ -0,0 +1,10 @@
const validateJSON = async (d, s) => {
const { default: A } = await import('https://esm.sh/ajv@8.17.1')
const v = new A({ allErrors: true }).compile(s)
const r = v(d)
return {
valid: r,
errors: r ? [] : v.errors.map(e => `${e.instancePath} ${e.message}`.trim())
}
}
export default validateJSON;

View File

@@ -1,14 +0,0 @@
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,25 +1,12 @@
const validateJSON = async (data, schema) => {
try {
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}`] };
}
};
let Ajv;
async function validateJSON(json, schema) {
if(!(json&&typeof json==='object')||!(schema===true||schema===false||(schema&&typeof schema==='object')))
return{valid:false,errors:['Invalid input']};
try{
if(!Ajv){const m=await import('https://esm.sh/ajv@8');Ajv=m.default}
const ajv=new Ajv({allErrors:true}),v=ajv.compile(schema);
const valid=v(json);
return{valid,errors:valid?[]:v.errors.map(e=>`${e.instancePath||'root'} ${e.message}`)};
}catch(e){return{valid:false,errors:[e.message]}}
}
export default validateJSON;

View File

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

View File

@@ -1,11 +1,21 @@
let ajvInstance;
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)
};
if (!ajvInstance) {
const { default: Ajv } = await import('https://cdn.skypack.dev/ajv@8');
ajvInstance = new Ajv({ allErrors: true });
}
const ajv = ajvInstance;
try {
const validate = ajv.compile(schema);
const valid = validate(data);
const errors = valid ? [] : ajv.errorsText(validate.errors, { separator: '\n' })
.split('\n')
.map(s => s.trim())
.filter(Boolean);
return { valid, errors };
} catch (e) {
return { valid: false, errors: [`Schema error: ${e.message}`] };
}
}
export default validateJSON;