@iwatakeshi/apollo-link-prismic
v1.2.1
Published
Apollo link for Prismic
Downloads
84
Readme
apollo-link-prismic
An Apollo Link that allows you to query Prismic's GraphQL API with Apollo Client.
Installation
npm install @iwatakeshi/apollo-link-prismicUsage
Basic Usage
import { ApolloClient, InMemoryCache } from '@apollo/client';
import { createPrismicLink } from '@iwatakeshi/apollo-link-prismic';
const client = new ApolloClient({
link: createPrismicLink({
repositoryName: 'your-repo-name',
// Provide an access token if your repository is secured
accessToken: 'your-access-token',
}),
cache: new InMemoryCache(),
});Custom GraphQL Endpoint
import { ApolloClient, InMemoryCache } from '@apollo/client';
import { createPrismicLink } from '@iwatakeshi/apollo-link-prismic';
const client = new ApolloClient({
link: createPrismicLink({
uri: 'https://your-repo.cdn.prismic.io/graphql',
accessToken: 'your-access-token',
}),
cache: new InMemoryCache(),
});Providing a Custom Fetch Function
If you're using this in an environment where a global fetch function doesn't exist (like Node.js), you can provide your own:
import { ApolloClient, InMemoryCache } from '@apollo/client';
import { createPrismicLink } from '@iwatakeshi/apollo-link-prismic';
import fetch from 'node-fetch';
const client = new ApolloClient({
link: createPrismicLink({
repositoryName: 'your-repo-name',
accessToken: 'your-access-token',
fetch: fetch as any,
}),
cache: new InMemoryCache(),
});React Native Setup
Using @iwatakeshi/apollo-link-prismic in React Native requires a URL polyfill:
npm install react-native-url-polyfillThen import the polyfill in your app's entry file:
// App.js or index.js
import 'react-native-url-polyfill/auto';
// Your app code here...API Reference
createPrismicLink(config)
Creates an Apollo Link for querying a Prismic GraphQL API.
Parameters
config(Object): Configuration optionsrepositoryName(string, optional): The name of your Prismic repositoryuri(string, optional): The GraphQL API endpoint URLaccessToken(string, optional): Access token for secured repositoriesapiEndpoint(string, optional): Custom REST API endpoint for Prismicfetch(function, optional): Custom fetch function
Note: Either repositoryName or uri must be provided.
Returns
An Apollo Link instance configured for your Prismic repository.
Legacy API
For backward compatibility, PrismicLink is available as an alias for createPrismicLink:
import { PrismicLink } from '@iwatakeshi/apollo-link-prismic';
// This is the same as createPrismicLink
const link = PrismicLink({
repositoryName: 'your-repo-name',
});Development
Setup
git clone https://github.com/iwatakeshi/apollo-link-prismic.git
cd apollo-link-prismic
npm installScripts
npm run build- Build the librarynpm run dev- Build in watch modenpm test- Run testsnpm run test:watch- Run tests in watch modenpm run lint- Lint the codenpm run format- Format code with Prettier
License
Apache 2.0 - See LICENSE file for details.
Contributing
Issues and pull requests are welcome! Please check the issues page before submitting.
Credits
This package is a modernized fork of the original apollo-link-prismic by Prismic.
