Provides facilities to:
Current crate status is experimental.
jellyschema
crate is one small piece of the [balena.io] configuration project. This project has
no public / open specification yet, but we're working on it and it will be public once finished.
This library is written in the Rust language and can be used:
Add as a dependency to your Cargo.toml
:
[dependencies]
jellyschema = "0"
Evaluate simple JSON:
```rust let inputschema: serdeyaml::Value = serdeyaml::fromstr( include_str!("configuration.yml")). unwrap();
let (jsonschema, uiobject) = Generator::with(input_schema)?.generate(); ```
Install via npm
npm install --save jellyschema
Generate simple JSON Schema & UI Object Schema:
```js const jellyschema = require('jellyschema');
const initialValue =
title: demo
version: 1
properties:
- network:
title: Network
properties:
- ssid:
title: Network SSID
type: string
minLength: 1
maxLength: 32
- passphrase:
title: Network Key
type: password
minLength: 8
;
var schema = new jels.JellySchema(initialValue); const result = schema.jsonAndUiSchema(); console.log(JSON.stringify(result, null, 2));
console.log(schema.validate({network: { ssid: 'foo', passphrase: 123 }})); console.log(schema.errors()); ```
An example of using this module in nodeJS is available in the examples/node
folder:
bash
cd examples/node
npm install
npm start
An example of using this module in the browser is available in the examples/browser
folder:
bash
cd examples/browser
npm install
npm start
Open localhost:8080
in your browser.
If you're having any problem, please [raise an issue] on GitHub or [contact us], and the [balena.io] team will be happy to help.
jellyschema
is open source software, and may be redistributed under the terms specified in
the [license].