Skip to content

fix: reuse loaded AsyncAPI input to avoid duplicate parsing (issue #2017)#2052

Open
FraktalDeFiDAO wants to merge 3 commits intoasyncapi:masterfrom
FraktalDeFiDAO:fix/duplicate-asyncapi-parsing-2017
Open

fix: reuse loaded AsyncAPI input to avoid duplicate parsing (issue #2017)#2052
FraktalDeFiDAO wants to merge 3 commits intoasyncapi:masterfrom
FraktalDeFiDAO:fix/duplicate-asyncapi-parsing-2017

Conversation

@FraktalDeFiDAO
Copy link

@FraktalDeFiDAO FraktalDeFiDAO commented Mar 18, 2026

Closes #2017

Summary

Fixes issue #2017 - duplicate AsyncAPI file parsing in fromTemplate command.

Problem

The fromTemplate command was loading the AsyncAPI file twice:

  1. Line 60: const asyncapiInput = await this.loadAsyncAPIInput(asyncapi);
  2. Line 70: specification = await load(asyncapi);

The first loaded result was discarded and re-parsed unnecessarily.

Solution

Reuse asyncapiInput directly instead of calling load(asyncapi) again. The loadAsyncAPIInput method already returns a Specification object.

Changes

  • Removed duplicate load(asyncapi) call
  • Use asyncapiInput directly as specification
  • Removed unused ValidationError import

Benefits

  • Eliminates duplicate disk I/O
  • Eliminates duplicate parsing overhead
  • Faster execution for large AsyncAPI files
  • Reduced memory usage

Bounty Submission

Crypto wallets for bounty:

  • RTC: RTCbc57f8031699a0bab6e9a8a2769822f19f115dc5
  • ETH: 0x742F4fA4224c47C4C4A1d3e4eE4F4e5A2fF8E1
  • SOL: FH84Dg6gh7bWtyZ5a1SBNLp1JBesLoCKx9mekJpr7zHR

- 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
@changeset-bot
Copy link

changeset-bot bot commented Mar 18, 2026

⚠️ No Changeset found

Latest commit: 7051428

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@sonarqubecloud
Copy link

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

Labels

None yet

Projects

Status: To Triage

Development

Successfully merging this pull request may close these issues.

[BUG] Duplicate AsyncAPI specification loading in fromTemplate.ts command (unnecessary double parsing)

1 participant