Repository URL to install this package:
|
Version:
1.4.5 ▾
|
import { ApolloClient, InMemoryCache } from '@apollo/client';
import type { UploadLinkOptions } from 'apollo-upload-client';
import type { DefaultOptions, InMemoryCacheConfig } from '@apollo/client';
import { createApolloLink } from './link';
type CreateApolloClientOptions = {
linkOptions: UploadLinkOptions;
cacheOptions?: InMemoryCacheConfig;
clientDefaultOptions?: DefaultOptions;
};
export const createApolloClient = ({
linkOptions,
cacheOptions,
clientDefaultOptions,
}: CreateApolloClientOptions) =>
new ApolloClient({
link: createApolloLink(linkOptions),
cache: new InMemoryCache(cacheOptions),
defaultOptions: {
...clientDefaultOptions,
watchQuery: {
fetchPolicy: 'cache-first',
errorPolicy: 'all',
...clientDefaultOptions?.watchQuery,
},
query: {
fetchPolicy: 'cache-first',
errorPolicy: 'all',
...clientDefaultOptions?.query,
},
},
});