WebAssembly bindings for checking compatibility of evolving JSON Schemas and generating example values from JavaScript.
npm install jsoncompat@0.3.1import init, { check_compat, generator_for, validator_for } from "jsoncompat";
await init();
const oldSchema = '{"type":"string"}';
const newSchema = '{"type":["string","null"]}';
const ok = check_compat(oldSchema, newSchema, "deserializer");
const generator = generator_for(newSchema);
const valueJson = generator.generate_value(5);
const validator = validator_for(newSchema);
const valueOk = validator.is_valid(valueJson);check_compat(old_schema_json, new_schema_json, role) -> booleanaccepts"serializer","deserializer", or"both"forrole.generator_for(schema_json) -> Generatorparses a schema once and returns a reusable generator.Generator.generate_value(depth) -> stringreturns one generated JSON value encoded as a string.
validator_for(schema_json) -> Validatorparses a schema once and returns a reusable validator.Validator.is_valid(instance_json) -> booleanvalidates a JSON string against the parsed schema.
generate_value(schema_json, depth) -> stringis kept for compatibility. Prefergenerator_for(schema_json).generate_value(depth).
Functions accept schemas as JSON strings and throw string-backed wasm-bindgen
errors for invalid JSON, invalid schemas, hard unsupported compatibility
features, known-unsatisfiable schemas, or retry exhaustion.
MIT