An Apollo Link that allow you query Prismic's GraphQL API with apollo-client.
npm install apollo-link-prismic
import { ApolloClient, InMemoryCache } from "@apollo/client"
import { createPrismicLink } from "apollo-link-prismic"
const apolloClient = new ApolloClient({
link: createPrismicLink({
repositoryName: "YOUR_REPOSITORY_NAME",
// Provide your access token if your repository is secured.
accessToken: "YOUR_ACCESS_TOKEN",
}),
cache: new InMemoryCache(),
})If you are using this link in an environment where a global fetch function does not exist, such as Node.js, you must provide one using the fetch option.
Environments like the browser, Next.js, Cloudflare Workers, and Remix provide a global fetch function and do not require passing your own.
There are many libraries that can provide this function. The most common is node-fetch, which you would configure like this:
import { ApolloClient, InMemoryCache } from "@apollo/client"
import { createPrismicLink } from "apollo-link-prismic"
import fetch from "node-fetch"
const apolloClient = new ApolloClient({
link: createPrismicLink({
repositoryName: "YOUR_REPOSITORY_NAME",
// Provide your access token if your repository is secured.
accessToken: "YOUR_ACCESS_TOKEN",
fetch,
}),
cache: new InMemoryCache(),
})Using apollo-link-prismic in React Native applications requires additional setup.
After installing apollo-link-prismic, install the following URL Web API polyfill:
npm install react-native-url-polyfillNext, import the polyfill in your app’s entry file (typically this is App.js or index.js).
// App.js or index.js
import "react-native-url-polyfill/auto"apollo-link-prismic can now be used throughout your app.
Note: If the polyfill does not work after importing in your app's entry file, try the alternative "Flexible" set up method described in react-native-url-polyfill's documentation.