本文整理汇总了TypeScript中apollo-cache-inmemory.InMemoryCache.restore方法的典型用法代码示例。如果您正苦于以下问题:TypeScript InMemoryCache.restore方法的具体用法?TypeScript InMemoryCache.restore怎么用?TypeScript InMemoryCache.restore使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类apollo-cache-inmemory.InMemoryCache
的用法示例。
在下文中一共展示了InMemoryCache.restore方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1:
const createApolloClient = () => {
const params: any = {
dataIdFromObject: (result) => {
if (result.id && result.__typename) {
return result.__typename + result.id;
}
return null;
},
link,
cache,
};
if (__SSR__) {
if (__CLIENT__) {
if (window.__APOLLO_STATE__) {
cache.restore(window.__APOLLO_STATE__);
}
params.ssrForceFetchDelay = 100;
} else {
params.ssrMode = true;
}
}
return new ApolloClient<any>(params);
};
示例2: createClient
export function createClient(
// @ts-ignore - useful to pass in the store for `Authorization` headers, etc
store: Store
): ApolloClient<NormalizedCacheObject> {
// Create the cache first, which we'll share across Apollo tooling.
// This is an in-memory cache. Since we'll be calling `createClient` on
// universally, the cache will survive until the HTTP request is
// responded to (on the server) or for the whole of the user's visit (in
// the browser)
const cache = new InMemoryCache({ fragmentMatcher });
// Create a HTTP client (both server/client). It takes the GraphQL
// server from the `GRAPHQL` environment variable, which by default is
// set to an external playground at https://graphqlhub.com/graphql
const httpLink = new HttpLink({
credentials: "same-origin",
uri: GRAPHQL
});
// If we're in the browser, we'd have received initial state from the
// server. Restore it, so the client app can continue with the same data.
if (!SERVER) {
cache.restore((window as any).__APOLLO__);
}
// Return a new Apollo Client back, with the cache we've just created,
// and an array of 'links' (Apollo parlance for GraphQL middleware)
// to tell Apollo how to handle GraphQL requests
return new ApolloClient({
cache,
link: ApolloLink.from([
// General error handler, to log errors back to the console.
// Replace this in production with whatever makes sense in your
// environment. Remember you can use the global `SERVER` variable to
// determine whether you're running on the server, and record errors
// out to third-party services, etc
onError(({ graphQLErrors, networkError }) => {
if (graphQLErrors) {
graphQLErrors.map(({ message, locations, path }) =>
console.log(
`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
)
);
}
if (networkError) {
console.log(`[Network error]: ${networkError}`);
}
}),
// Split on HTTP and WebSockets
WS_SUBSCRIPTIONS && !SERVER
? split(
({ query }) => {
const definition = getMainDefinition(query);
return (
definition.kind === "OperationDefinition" &&
definition.operation === "subscription"
);
},
// Use WebSockets for subscriptions
new WebSocketLink(
// Replace http(s) with `ws` for connecting via WebSockts
new SubscriptionClient(GRAPHQL.replace(/^https?/, "ws"), {
reconnect: true // <-- automatically redirect as needed
})
),
// ... fall-back to HTTP for everything else
httpLink
)
: httpLink // <-- just use HTTP on the server
]),
// On the server, enable SSR mode
ssrMode: SERVER
});
}