URI resolver for external data fetching#50
Merged
vimmotions merged 15 commits intomainfrom Feb 24, 2026
Merged
Conversation
…raction paths - Introduced `UrlResolverConfig` struct to define URL resolution parameters. - Added `HttpMethod` enum for specifying GET and POST methods. - Enhanced `ResolverType` to include URL resolvers. - Implemented URL resolution logic in the code generation and runtime, allowing for batch processing and JSON path extraction from responses. - Updated parsing logic to support new `url_resolve` attribute in macros.
- Updated the `hyperstack` macro documentation to reflect the new `#[resolve(...)]` attribute. - Refactored parsing logic to support new parameters for URL resolution, including `url` and `method`. - Removed the deprecated `url_resolve` attribute and integrated its functionality into the `resolve` attribute. - Enhanced error handling for mutually exclusive parameters in the `resolve` attribute. - Updated entity processing to accommodate the new resolver logic for URL and token sources.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
adiman9
requested changes
Feb 20, 2026
Contributor
adiman9
left a comment
There was a problem hiding this comment.
Overall this is great. Follows the overall patterns and handles things well.
Few things i've noticed:
Highest prio is there are a few spots where we silently fail and don't retry. This happens in extract_json_path as well as failed http requests. The token resolver has some retry patterns you can reference.
I've also created HYP-180 as a future plan to consolidate some of the resolver stuff
…ri-resolver-for-type-safe-external-data-fetching
…tead of per-request
…port only 'GET' and 'POST'
…nt-level coupling
adiman9
previously approved these changes
Feb 24, 2026
interpreter/src/resolvers.rs
Outdated
| } | ||
|
|
||
| /// Batch resolve multiple URLs (each URL resolved independently) | ||
| /// Batch resolve multiple URLs in parallel |
Contributor
There was a problem hiding this comment.
Are we actually using resolve_batch anywhere?
adiman9
approved these changes
Feb 24, 2026
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.
Extended Resolve Macro - URL Resolution Support
Overview
This PR extends the
#[resolve]macro to support URL-based data fetching in addition to the existing Token metadata resolution via DAS API.New Capability
The
#[resolve]macro now supports fetching and extracting data from HTTP URLs:Resolver Type Detection
The macro automatically determines the resolver type based on parameters:
url = ...address = ...orfrom = ...Parameters are mutually exclusive - specifying both
urlandaddress/fromis a compile error.URL Resolver Parameters
urlinfo.uri)extract"image","data.nested.field")methodGET(default) orPOSTExample Usage
Changes
Files Modified
hyperstack-macros/src/parse/attributes.rsurlandmethodfields toResolveAttributeArgshyperstack-macros/src/stream_spec/entity.rsResolverType::Urlwhenurlparameter is presenthyperstack-macros/src/stream_spec/sections.rsstacks/pumpfun/src/stack.rs