Skip to content

thedumbterminal/jsonschema-avro

Repository files navigation

jsonschema-avro

npm Node.js CI

Converts JSON-schema definitions into Avro definitions.

Install

npm install jsonschema-avro

Consume

const jsonSchemaAvro = require('jsonschema-avro')

const inJson = {
  "description": "Example description",
  "type": "object",
  "properties": {
    "first_name": { "type": "string" },
    "address": {
      "type": "object",
      "properties": {
        "street_address": { "type": "string" }
      }
    }
  }
}

const avro = jsonSchemaAvro.convert(inJson)

Please ensure that the input JSON schema is dereferenced so that all external references have been resolved. json-schema-ref-parser can do this, prior to using this module.

Develop

Avro schema documentation can be found here:

https://docs.oracle.com/cd/E26161_02/html/GettingStartedGuide/avroschemas.html

Testing

To run all tests:

npm test

To run a single test, using the name of the sample:

ONLY=optional npm test

CI uses the following script:

npm run ci

Please run this on your local machine to ensure CI will pass.

Code style

This project uses prettier, to format source files run:

npm run format

Please keep the integration tests to a single test per file for readability.

TODO

  • Handle anyOf and allOf.