fix: detect and reject multi-document YAML files with clear error (fixes #1997)#2115
Open
armorbreak001 wants to merge 2 commits intoasyncapi:masterfrom
Open
fix: detect and reject multi-document YAML files with clear error (fixes #1997)#2115armorbreak001 wants to merge 2 commits intoasyncapi:masterfrom
armorbreak001 wants to merge 2 commits intoasyncapi:masterfrom
Conversation
asyncapi#1997) When a YAML file contains multiple documents separated by ---, the parser produces confusing low-level errors. This fix detects multi-document YAML early in Specification.fromFile() and throws a clear, user-facing error message. Also extends ErrorLoadingSpec to support optional customMessage parameter for more specific error context. Fixes asyncapi#1997
|
Extended multi-document YAML detection to fromURL() in addition to fromFile(). URLs can also return multi-document YAML content.
|
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Fixes #1997
Problem
When an AsyncAPI YAML file contains multiple documents (separated by
---), the CLI fails with a confusing low-level parser error instead of clearly detecting the condition.Multi-document YAML is valid YAML and commonly appears in real workflows (Kubernetes configs, merged files, copy-paste artifacts). Users reasonably expect a clear rejection message.
Solution
Detect multiple YAML document separators (
---) inSpecification.fromFile()before parsing. If more than one separator is found, throw a clear error:Changes
fromFile()ErrorLoadingSpecwith optionalcustomMessageparam for specific error contextTesting
---separators at start of line