vercel_rpc_cli/codegen.rs
1//! TypeScript code generation from a [`Manifest`](crate::model::Manifest).
2//!
3//! - [`typescript`] — generates `rpc-types.ts` (interfaces, enum types,
4//! `Procedures` map).
5//! - [`client`] — generates `rpc-client.ts` (`RpcClient` interface,
6//! `createRpcClient` factory, `RpcError` class, `rpcFetch` helper).
7//! - [`svelte`] — generates `rpc.svelte.ts` (Svelte 5 reactive wrappers:
8//! `createQuery`, `createMutation`).
9//! - [`react`] — generates `rpc.react.ts` (React hooks wrappers:
10//! `useQuery`, `useMutation`).
11//! - [`vue`] — generates `rpc.vue.ts` (Vue 3 Composition API wrappers:
12//! `useQuery`, `useMutation`).
13//! - [`solid`] — generates `rpc.solid.ts` (SolidJS reactive primitives:
14//! `createQuery`, `createMutation`).
15
16/// Shorthand for `let _ = writeln!(...)` when writing to a `String` buffer.
17///
18/// Writing to `String` is infallible, so the result is always safe to discard.
19macro_rules! emit {
20 ($dst:expr, $($arg:tt)*) => {
21 {
22 use ::std::fmt::Write as _;
23 let _ = writeln!($dst, $($arg)*);
24 }
25 };
26}
27
28pub mod client;
29pub mod common;
30pub mod overrides;
31pub mod react;
32pub mod solid;
33pub mod svelte;
34pub mod typescript;
35pub mod vue;