trpc-webrtc
Version:
A set of TRPC adapters for communication via RTCDataChannel in the browser
27 lines (26 loc) • 813 B
JavaScript
function transformTRPCResponseItem(router, item) {
if ("error" in item) {
return {
...item,
error: router._def._config.transformer.output.serialize(item.error),
};
}
if ("data" in item.result) {
return {
...item,
result: {
...item.result,
data: router._def._config.transformer.output.serialize(item.result.data),
},
};
}
return item;
}
/**
* Takes a unserialized `TRPCResponse` and serializes it with the router's transformers
**/
export function transformTRPCResponse(router, itemOrItems) {
return Array.isArray(itemOrItems)
? itemOrItems.map((item) => transformTRPCResponseItem(router, item))
: transformTRPCResponseItem(router, itemOrItems);
}