Headers
Set default headers for all requests, or provide an async function that resolves headers before each call. Per-call headers can override client-level defaults.
Static Headers
const rpc = createRpcClient({
baseUrl: '/api',
headers: {
Authorization: 'Bearer my-token',
'X-App-Version': '1.0.0',
},
});Async Headers
Pass an async function to resolve headers dynamically — useful for refreshing auth tokens.
// Async headers — called before every request
const rpc = createRpcClient({
baseUrl: '/api',
headers: async () => ({
Authorization: `Bearer ${await getToken()}`,
}),
});Per-Call Headers
Override headers for a single call via CallOptions.
// Override or add headers for a single call
const result = await rpc.query('secret', input, {
headers: { Authorization: 'Bearer one-time-token' },
});Merge Order
Per-call headers are merged on top of client headers. Same-key per-call headers win.
// Merge order: client headers → per-call headers
// Per-call headers override client headers with the same key.
const rpc = createRpcClient({
baseUrl: '/api',
headers: { Authorization: 'Bearer default', 'X-App': 'myapp' },
});
// This call sends: Authorization: "Bearer override", X-App: "myapp"
await rpc.query('secret', input, {
headers: { Authorization: 'Bearer override' },
});Try it
The secret endpoint requires a Bearer token. Try with and without it.