lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

commit 4efa93fdcc0eb493d548499bc08c865d3169b5d1
parent 730d00d12603dba428f098430277caae1e38c076
Author: triesap <tyson@radroots.org>
Date:   Wed, 24 Dec 2025 20:58:01 +0000

wasm: add follow tag builder export


- Import follow event type and tag encoder helpers
- Add JSON parser for RadrootsFollow payloads
- Expose follow_tags via wasm_bindgen js_name mapping
- Encode follow tags and serialize tag vectors to JSON

Diffstat:
Mevents-codec-wasm/src/lib.rs | 13+++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)

diff --git a/events-codec-wasm/src/lib.rs b/events-codec-wasm/src/lib.rs @@ -1,7 +1,9 @@ #![cfg(target_arch = "wasm32")] #![forbid(unsafe_code)] +use radroots_events::follow::RadrootsFollow; use radroots_events::listing::RadrootsListing; +use radroots_events_codec::follow::encode::follow_build_tags; use radroots_events_codec::listing::tags::{ listing_tags as listing_tags_impl, listing_tags_full as listing_tags_full_impl, @@ -16,6 +18,10 @@ fn parse_listing(listing_json: &str) -> Result<RadrootsListing, JsValue> { serde_json::from_str(listing_json).map_err(err_js) } +fn parse_follow(follow_json: &str) -> Result<RadrootsFollow, JsValue> { + serde_json::from_str(follow_json).map_err(err_js) +} + fn tags_to_json(tags: Vec<Vec<String>>) -> Result<String, JsValue> { serde_json::to_string(&tags).map_err(err_js) } @@ -33,3 +39,10 @@ pub fn listing_tags_full(listing_json: &str) -> Result<String, JsValue> { let tags = listing_tags_full_impl(&listing).map_err(err_js)?; tags_to_json(tags) } + +#[wasm_bindgen(js_name = follow_tags)] +pub fn follow_tags(follow_json: &str) -> Result<String, JsValue> { + let follow = parse_follow(follow_json)?; + let tags = follow_build_tags(&follow).map_err(err_js)?; + tags_to_json(tags) +}