Skip to main content

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;