From 5019a848a44acf78c455883defc6cf8b2f50c457 Mon Sep 17 00:00:00 2001 From: Maaz Ahmed <maaz.a@subcom.tech> Date: Mon, 1 Jul 2024 11:40:32 +0530 Subject: [PATCH] fix: perform additional reference resolution on schema meant to replace a reference --- src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 30f8c28..ed24990 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -81,12 +81,15 @@ impl SchemaInspector { /// to retrieve them from the root schemas object fn resolve_references(schemas: &Map<String, Value>, val: &mut Value) -> Result<(), InitError> { if let Some(target) = Self::extract_ref(val) { - *val = schemas + let mut resolved_schema = schemas .get(&target) .ok_or(InitError::ResolutionFailure(format!( "{target} not found in the given schemas" )))? .clone(); + // resolve any references within the resolved schema + Self::resolve_references(schemas, &mut resolved_schema)?; + *val = resolved_schema; } match val { Value::Object(ref mut map) => { -- GitLab