Skip to content

fix: skip redundant AsyncAPI examples fetch when already cached (issue #2015)#2053

Open
FraktalDeFiDAO wants to merge 4 commits intoasyncapi:masterfrom
FraktalDeFiDAO:fix/skip-redundant-example-fetch-2015
Open

fix: skip redundant AsyncAPI examples fetch when already cached (issue #2015)#2053
FraktalDeFiDAO wants to merge 4 commits intoasyncapi:masterfrom
FraktalDeFiDAO:fix/skip-redundant-example-fetch-2015

Conversation

@FraktalDeFiDAO
Copy link

@FraktalDeFiDAO FraktalDeFiDAO commented Mar 18, 2026

Closes #2015

Summary

Fixes issue #2015 - skip redundant AsyncAPI examples fetch when already cached.

Problem

The scripts/fetch-asyncapi-example.js script runs on every build, downloading and parsing examples even when assets/examples/examples.json already exists and is up-to-date. This causes:

  • Slower build times
  • Unnecessary network traffic
  • Flaky builds when GitHub is unreachable

Solution

Added a shouldFetchExamples() function that checks if examples.json exists and is non-empty before fetching. The script now skips network operations when examples are already cached.

Changes

  • Added EXAMPLES_JSON_PATH constant
  • Added shouldFetchExamples(force) function that:
    • Returns true if --force or -f flag is passed
    • Returns true if examples directory doesn't exist
    • Returns true if examples.json doesn't exist
    • Returns true if examples.json is empty
    • Returns false otherwise (skip fetching)
  • Updated main IIFE to accept --force or -f flags

Usage

# Skip fetching (use cached examples)
node scripts/fetch-asyncapi-example.js

# Force refresh
node scripts/fetch-asyncapi-example.js --force
node scripts/fetch-asyncapi-example.js -f

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: aa16015

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] Optimizing build process: Skip redundant AsyncAPI examples fetching

1 participant