Skip to content

sourcemeta-research/alterschema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

312 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alterschema

Warning

This project is a legacy experiment and is no longer maintained. It has been superseded by the upgrade command in the Sourcemeta JSON Schema CLI. Please refer to the upgrade command documentation for the current, supported way to transform JSON Schema documents across versions of the specification.

This project implements a language-independent set of formal transformations to automatically transform JSON Schema documents across versions of the specification.

Try the web playground at: https://alterschema.sourcemeta.com

Coverage

From To Type Status Description
2019-09 2020-12 Lossless Full JSON Schema 2019-09 to JSON Schema 2020-12
draft7 2019-09 Lossless Full JSON Schema Draft 7 to JSON Schema 2019-09
draft6 draft7 Lossless Full JSON Schema Draft 6 to JSON Schema Draft 7
draft4 draft6 Lossless Full JSON Schema Draft 4 to JSON Schema Draft 6
draft3 draft4 Lossless Minimal 1 JSON Schema Draft 3 to JSON Schema Draft 4

Transformations are transitively applied. For example, transforming from draft6 to 2019-09 implies transforming draft6 to draft7 and draft7 to 2019-09.

Bindings

JavaScript

// (1) Install by running "npm install --save alterschema"
const alterschema = require('alterschema')

// (2) alterschema(schema: JSON, from: string, to: string) -> JSON
// Transform the input document `schema` according to the
// `from` and `to` string parameters.
const result = await alterschema({ ... }, '2019-09', '2020-12')

console.log(result)

Command-line tool

# (1) Install globally through npm
npm install --global alterschema
# (2) Run the command-line tool
alterschema --from <from> --to <to> path/to/schema.json

Others

We accept contributions to implement alterschema in any programming language. To produce an alterschema implementation, your programming language of choice must support a JSON Schema 2020-12 validator and a JSON-e interpreter.

Acknowledgements

Special thanks to @gregdeniss for curating the initial set of upgrade rules.

Footnotes

  1. This is a heavy work-in-progress. Subscribe to https://github.com/sourcemeta/alterschema/issues/83 for the latest updates.

About

Convert between JSON Schema specification versions

Topics

Resources

License

Stars

Watchers

Forks

Contributors