Skip to content

Bugfix and refactoring of the JSON Schema scope detection logic in th…#2308

Open
Adityakk9031 wants to merge 1 commit intojson-schema-org:mainfrom
Adityakk9031:#2259
Open

Bugfix and refactoring of the JSON Schema scope detection logic in th…#2308
Adityakk9031 wants to merge 1 commit intojson-schema-org:mainfrom
Adityakk9031:#2259

Conversation

@Adityakk9031
Copy link
Contributor

@Adityakk9031 Adityakk9031 commented Mar 2, 2026

What kind of change does this PR introduce?

Bugfix and refactoring of the schema scope detection logic in the JsonEditor component.

Issue Number:

Screenshots/videos:

Before: Keywords like type, items inside $defs blocks render in cyan (plain data) and are not clickable.

After: The same keywords render in interactive blue and link to reference docs, matching the behaviour inside properties blocks.

If relevant, did you update the documentation?

N/A — this change improves the interactive behaviour of the documentation's built-in JSON editor. No content docs needed updating.

Summary

getScopesOfParsedJsonSchema.ts previously gated subschema recursion on parsedJsonSchema.type === 'object' or === 'array', only traversing properties, patternProperties, and single-form items. JSON Schema doesn't require a type field, so any schema without it (e.g. { "$defs": { ... } }) caused the function to return early — leaving all nested keywords non-interactive.

This PR replaces the type-gated logic with a keyword-driven traversal across all three subschema-bearing keyword categories from the spec:

  1. Map keywords ($defs, definitions, properties, patternProperties, dependentSchemas)
  2. Array keywords (allOf, anyOf, oneOf, prefixItems)
  3. Single-subschema keywords (not, if, then, else, additionalProperties, propertyNames, unevaluatedProperties, additionalItems, unevaluatedItems, items)

Boolean subschemas (e.g. additionalProperties: false) are also now handled correctly.

Closes #2259

Does this PR introduce a breaking change?

No. This is purely additive — all previously recognised scope paths continue to be emitted as before. The fix only adds scope paths for keywords that were previously missed.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

@Adityakk9031 Adityakk9031 requested a review from a team as a code owner March 2, 2026 17:50
@github-project-automation github-project-automation bot moved this to Ready to review in PR - Triage Group Mar 2, 2026
@github-actions
Copy link

github-actions bot commented Mar 2, 2026

Hi @Adityakk9031! Thanks a lot for your contribution!

I noticed that the following required information is missing or incomplete: completed checklist items

Please update the PR description to include this information. You can find placeholders in the PR template for these items.

Thanks a lot!

@github-actions
Copy link

github-actions bot commented Mar 2, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
website ✅ Ready (View Log) Visit Preview 4cc7db9

@codecov
Copy link

codecov bot commented Mar 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (4bd72bb) to head (4cc7db9).

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #2308   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           30        30           
  Lines          672       672           
  Branches       211       211           
=========================================
  Hits           672       672           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Adityakk9031
Copy link
Contributor Author

Adityakk9031 commented Mar 2, 2026

@Utkarsh-123github and @jagpreetrahi please have a look

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Ready to review

Development

Successfully merging this pull request may close these issues.

🐛 Bug: Interactive scope not applied to $defs and subschema keywords in JsonEditor”

1 participant