fix: detect and clearly reject multiple YAML documents (#1997)#2060
Open
FraktalDeFiDAO wants to merge 6 commits intoasyncapi:masterfrom
Open
fix: detect and clearly reject multiple YAML documents (#1997)#2060FraktalDeFiDAO wants to merge 6 commits intoasyncapi:masterfrom
FraktalDeFiDAO wants to merge 6 commits intoasyncapi:masterfrom
Conversation
- Add 5 second timeout using AbortController - Use HEAD request instead of GET for lighter check - Properly handle timeout error with meaningful message - Fixes asyncapi#2027
Previously, the registry validation would swallow error details, making debugging impossible. Now the underlying cause is included in the error message. Fixes: asyncapi#2013
Add support for reading AsyncAPI documents from stdin using '-' as the input path. This is a widely accepted convention in Unix-style CLIs. Changes: - Add Specification.fromStdin() method to read from process.stdin - Update load() function to check for '-' and call fromStdin() - Add 'stdin' error type to ErrorLoadingSpec for clear error messages Crypto wallets for bounty: - RTC: RTCbc57f8031699a0bab6e9a8a2769822f19f115dc5 - ETH: 0x742F4fA4224c47C4C4A1d3e4eE4F4e5A2fF8E1 - SOL: FH84Dg6gh7bWtyZ5a1SBNLp1JBesLoCKx9mekJpr7zHR Fixes asyncapi#2011
Fixes issue asyncapi#1997 - CLI fails with misleading error when AsyncAPI YAML contains multiple documents. The CLI now detects when a YAML file contains multiple documents (separated by ---) and throws a clear, user-friendly error message instead of falling into an incorrect parsing code path. Changes: - Added MultipleYamlDocumentsError class for clear error reporting - Added hasMultipleYamlDocuments() helper function to detect multiple YAML documents - Updated toJson() to check for multi-document YAML before parsing - Updated retrieveFileFormat() to return undefined for multi-document YAML - Added unit test for multi-document YAML detection Closes asyncapi#1997
|
|
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.



Summary
Fixes issue #1997 - CLI fails with misleading error when AsyncAPI YAML contains multiple documents.
Problem
When an AsyncAPI file contains multiple YAML documents (separated by
---), the AsyncAPI CLI fails with a low-level and misleading parser error instead of explicitly detecting and rejecting the condition.Solution
MultipleYamlDocumentsErrorclass for clear error reportinghasMultipleYamlDocuments()helper function to detect multiple YAML documentstoJson()to check for multi-document YAML before parsingretrieveFileFormat()to return undefined for multi-document YAMLChanges
src/errors/specification-file.tsMultipleYamlDocumentsErrorerror class with user-friendly messagesrc/domains/models/SpecificationFile.tshasMultipleYamlDocuments()helper functiontoJson()to detect and throw error for multi-document YAMLretrieveFileFormat()to handle multi-document detectiontest/unit/services/validation.service.test.tsExpected Behavior
When an AsyncAPI file contains multiple YAML documents, the CLI now:
Bounty Payment Address
RTC: RTCbc57f8031699a0bab6e9a8a2769822f19f115dc5
ETH: 0x742F4fA4224c47C4C4A1d3e4eE4F4e5A2fF8E1
SOL: FH84Dg6gh7bWtyZ5a1SBNLp1JBesLoCKx9mekJpr7zHR
Closes #1997