eure_json_schema/query.rs
1//! Query-flow queries for eure-json-schema.
2
3use eure::query::{DocumentToSchemaQuery, TextFile};
4use query_flow::{Db, QueryError, query};
5
6use crate::eure_to_json_schema;
7
8/// Convert an Eure schema file to JSON Schema.
9///
10/// This query combines:
11/// - DocumentToSchemaQuery (to parse and validate the schema)
12/// - eure_to_json_schema (to convert to JSON Schema format)
13///
14/// Returns the JSON Schema as a serde_json::Value.
15#[query]
16pub fn eure_schema_to_json_schema_query(
17 db: &impl Db,
18 schema_file: TextFile,
19) -> Result<serde_json::Value, QueryError> {
20 let validated = db.query(DocumentToSchemaQuery::new(schema_file))?;
21 let json_schema = eure_to_json_schema(&validated.schema)?;
22 Ok(serde_json::to_value(&json_schema)?)
23}