apollo-link-shopify-retry
Version:
Easy setup for retrying rate limited request in Shopify's (Admin) GraphQL API.
58 lines (41 loc) • 1.28 kB
Markdown
# apollo-link-shopify-retry
Easy setup for retrying rate limited request in Shopify's (Admin) GraphQL API.
## Installation
For npm:
```
npm i apollo-link-shopify-retry
```
For yarn:
```
yarn add apollo-link-shopify-retry
```
## Usage
When creating your client, inject this `link` as a middleware:
```js
// client.js
import {
ApolloClient,
HttpLink,
ApolloLink,
InMemoryCache,
} from "@apollo/client";
import { createShopifyRetryLink } from "apollo-link-shopify-retry";
export const createClient = (shop, accessToken) => {
const endpoint = new HttpLink({
uri: `https://${shop}/admin/api/2021-04/graphql.json`,
});
const rateLimit = createShopifyRetryLink();
const link = ApolloLink.from([
rateLimit,
endpoint,
]);
return new ApolloClient({
cache: new InMemoryCache(),
link,
});
};
```
## Options
By default, we log the throttles to console.log. You can disable this by passing `{ debug: false }` to `createShopifyRetryLink`.
## Behavior
It utilizes `@apollo/client/link/error`. This link checks how much cost needs to be restored in order to perform a GraphQL operation, allows you to wait until the operation can succeed. If the operation exceeds the maximum allowed cost of your Shopify API, the error will still be raised.