Data Transformers
You are able to serialize the response data & input args. The transformers need to be added both to the server and the client.
Using superjson
SuperJSON allows us to transparently use e.g. standard Date/Map/Sets over the wire between the server and client. That means you can return any of these types in your API-resolver and use them in the client without recreating the objects from JSON.
How to
1. Install
bash
bash
2. Add to createTRPCCLient() or withTRPC() config
client.tsts
client.tsts
pages/_app.tsxts
pages/_app.tsxts
3. Add to your AppRouter
server/routers/_app.tsts
server/routers/_app.tsts
Different transformers for upload and download
If a transformer should only be used for one direction or different transformers should be used for upload and download (e.g. for performance reasons), you can provide individual transformers for upload and download. Make sure you use the same combined transformer everywhere.
How to
Here superjson is used for uploading and devalue for downloading data, because devalue is a lot faster but insecure to use on the server.
1. Install
bash
bash
2. Add to utils/trpc.ts
utils/trpc.tsts
utils/trpc.tsts
3. Add to createTRPCCLient()
client.tsts
client.tsts
4. Add to your AppRouter
server/routers/_app.tsts
server/routers/_app.tsts
DataTransformer interface
ts
ts