Specta 2.0.0-rc.24 (rebuilt against main)#15
Merged
Conversation
# Conflicts: # example/src-tauri/Cargo.lock # taurpc/Cargo.toml # taurpc/src/lib.rs
apply_phases already validates the phased type graph. The inner unified-mode validate in generate_function_field re-ran on the pre-phase types and rejected every command whose type graph contains #[serde(skip_serializing_if = ...)], which made the exporter unusable for any codebase that uses serde_with::apply.
Resolves the bindings.ts/proxy.ts split (#13) on top of the rc.24 work. Output is now split across two files using the new Exporter API: - bindings.ts: types + ARGS_MAP + Router (no npm imports) - proxy.ts: createTauRPCProxy + InferCommandOutput re-export Conflicts resolved: - taurpc/src/export.rs: kept the rc.24 Exporter::from(ts).framework_runtime spine; added back write_proxy_file; ARGS_MAP now exports. - example/src/lib/bindings.ts: dropped the createTauRPCProxy boilerplate (lives in the sibling proxy.ts now). - CHANGELOG.md: dprint format pass.
Closed
Verified by running the example: bindings.ts and proxy.ts both regenerate with the user-supplied `// My header` prefix. Excluded proxy.ts from dprint just like bindings.ts since it's generator output. Regenerated example bindings reflect rc.24's phase-specific behavior (PhaseSpecificRename now splits into _Serialize/_Deserialize variants).
1 task
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
This PR carries Oscar's specta-rc.24 work (originally in #12 from
oscartbeaumont/TauRPC:fltsci/specta-rc24) plus the work needed to land it cleanly against currentmain. PR #12 stayedCONFLICTINGafter the bindings/proxy split (#13) merged, and the harness blocks pushing to repos outside the fltsci org so I could not update Oscar's branch directly.This branch (
fltsci/TauRPC:fltsci/specta-rc24) duplicates Oscar's commits, then adds:Fix dprint edition typo: 2025 -> 2024(eb762f1) --dprint.jsonhadrustfmt --edition 2025which is not a valid Rust edition. CI was failinglint:formaton every Rust file.Merge origin/main into fltsci/specta-rc24(d73d81c) -- resolves the bindings/proxy split (feat!: split generated TS output into bindings.ts + proxy.ts #13) on top of the rc.24 work.taurpc/src/export.rskeeps Oscar's newExporter::from(ts).framework_runtime(...)rc.24 spine and writes the runtime side via a smallwrite_proxy_filehelper.bindings.tsgains anexport const ARGS_MAP(was inline-only);proxy.tsconsumes it.Verification
cargo build -p taurpc: cleancargo buildinexample/src-tauri: cleanpnpm lint(types + js + format): all passOriginal PR
Oscar's #12 stays open for the discussion thread / attribution. Closing #12 is not the intent of this PR. All commits up to
92f58ed2are Oscar's; the two on top are merge mechanics that needed to happen on a fork I can push to.