mirror of
https://github.com/multipleof4/lynchmark.git
synced 2026-01-14 00:27:55 +00:00
Docs: Update benchmark results
This commit is contained in:
@@ -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;
|
||||
@@ -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;
|
||||
8
tests/8_json_validator/outputs/openai_gpt-5.1-chat.js
Normal file
8
tests/8_json_validator/outputs/openai_gpt-5.1-chat.js
Normal 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;
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user