1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! [balena] **c**onfiguration **dsl**
//!
//! A crate that provides facilities to:
//!
//! * transform configuration DSL into the JSON Schema & UI Object Schema with custom extensions
//! * parse configuration DSL
//!
//! # Versioning
//!
//! This crate is being actively developed and it does NOT follow [Semantic Versioning] yet.
//! It will follow semantic versioning when it reaches version 1.0.
//!
//! MINOR version changes denotes incompatible API changes and PATCH version changes denotes
//! both new functionality in a backwards-compatible manner and backwards-compatible bug fixes.
//!
//! # Examples
//!
//! ## Generate JSON Schema & UI Object
//!
//! ```
//! use jellyschema::generator::generate_json_ui_schema;
//! use jellyschema::schema::Schema;
//! use serde_yaml;
//!
//! let dsl = r#"
//!   version: 1
//!   properties:
//!     - name:
//!         type: string
//!         help: You should type your name here
//! "#;
//!
//! let input_schema: Schema = serde_yaml::from_str(dsl).unwrap();
//!
//! let (json_schema, ui_object) = generate_json_ui_schema(&input_schema);
//! ```
//!
//! [balena]: https://www.balena.io
//! [Semantic Versioning]: https://semver.org/
pub(crate) mod deref;
pub mod error;
pub mod filler;
pub mod schema;
pub mod validator;

pub mod generator;
#[cfg(all(target_arch = "wasm32", not(feature = "disable-wasm-bindings")))]
mod wasm;