Skip to content

thedumbterminal/jsonschema-avro

Folders and files

NameName
Last commit message
Last commit date
Aug 2, 2023
Aug 6, 2024
Jun 30, 2023
Aug 6, 2024
Apr 1, 2023
Apr 29, 2023
Mar 19, 2023
Apr 29, 2023
Oct 8, 2022
Feb 23, 2018
Mar 3, 2024
Jun 10, 2017
Apr 26, 2023
Aug 6, 2024
Aug 6, 2024

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.