apollo-client-transformers
apollo-client-transformers copied to clipboard
Bringing the ability to parse data using Apollo Client
Apollo Client Transformers
This package is useful for when you have scalars, but you receive them serialized on the client and you don't really want to do the deserialisation in your view layer.
Install
npm i -S apollo-client-transform
Usage
import { createTransformerLink } from 'apollo-client-transform';
const DateTransformer = {
parseValue(time) {
return new Date(time);
},
};
const transformers = {
User: {
createdAt: DateTransformer,
},
};
const transformerLink = createTransformerLink(transformers);
// You can now concatenate it with your http link before creating the client like so:
const enhancedHttpLink = transformerLink.concat(httpLink);
Usage with subscriptions
import { createTransformerLink, isSubscription } from "apollo-client-transform";
import { split } from "apollo-link";
...
const link = split(({ query }) => isSubscription(query), wsLink, httpLink);
const client = new ApolloClient({
...
link: transformerLink.concat(link)
});