1.2.0 • Published 1 year ago

nomai-json-schema v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Nomai JSON Schema Viewer

An embeddable React app for browsing JSON schemas.

Usage

The app is intended to be used from a CDN, such as unpkg:

<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
<script crossorigin src="https://unpkg.com/nomai-json-schema@1/index.js"></script>
<link rel="stylesheet" href="https://unpkg.com/nomai-json-schema@1/index.css">

When the page loads, the app will automatically replace script tags that have the JSON Schema mime type, as well as any other element with the nomai-json-schema-viewer attribute:

<script type="application/schema+json" data-name="My Schema" src="https://example.com/my/schema.json"></script>
<script type="application/schema+json" data-name="My Schema" data-uri="https://example.com/my/schema.json">
{
    "$id": "https://example.com/my/schema.json",
    "type": "object",
    // etc.
}
</script>
<div data-nomai-json-viewer data-name="My Schema" data-uri="https://example.com/my/schema.json"></div>

It is also exposed on the global Window object, so you can invoke it programmatically if the automatic loading behavior is insufficient:

window.Nomai.loadJsonSchemaViewer({
    target: elementToReplace,
    title: "My Schema", // optional; will use the schema's title property if it is set
    schema: myJsonSchemaObj, // optional if uri is provided; if no schema object is provided, the schema will be fetched asynchronously using the uri
    uri: "https://example.com/my/schema.json", // optional if schema is provided, but generally required to resolve internal URI references
});

All elements are implemented with divs and spans and simple CSS classes prefixed with nomai-json-schema-, so custom styling is as simple as adding rules for those classes in your own stylesheet.

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago