# @amazeelabs/silverback-graphql-persisted

> > # DEPRECATED > > Functionality is replaced by `@amazeelabs/codegen-operation-ids`

Latest version **1.2.13** (published 2023-03-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install @amazeelabs/silverback-graphql-persisted
pnpm add @amazeelabs/silverback-graphql-persisted
yarn add @amazeelabs/silverback-graphql-persisted
bun add @amazeelabs/silverback-graphql-persisted
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.13 |
| Published | 2023-03-23 |
| First published | 2022-08-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 22.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | amazeelabs |

## Links

- npm: https://www.npmjs.com/package/@amazeelabs/silverback-graphql-persisted
- npm.io page: https://npm.io/package/@amazeelabs/silverback-graphql-persisted

## Recent versions

- 1.2.13 (latest) — 2023-03-23
- 1.2.12 — 2023-03-23
- 1.2.11 — 2023-03-23
- 1.2.10 — 2023-03-23
- 1.2.9 — 2023-03-18
- 1.2.8 — 2023-03-18
- 1.2.7 — 2023-03-17
- 1.2.6 — 2023-02-04
- 1.2.5 — 2023-02-04
- 1.2.4 — 2023-01-30
- 1.2.3 — 2023-01-12
- 1.2.2 — 2023-01-05
- 1.2.1 — 2023-01-04
- 1.1.12 — 2022-12-29
- 1.1.11 — 2022-11-03
- … 13 more at https://npm.io/package/@amazeelabs/silverback-graphql-persisted/versions

## README

> # DEPRECATED
>
> Functionality is replaced by `@amazeelabs/codegen-operation-ids`

# GraphQL persisted queries for Silverback

This is a set of helpers to be used with query functions generated by
`@graphql-codegen/typescript-react-query` and/or
`@graphql-codegen/typescript-graphql-request`.

## General setup

1. Add packages to project.
   ```
   pnpm add @amazeelabs/silverback-graphql-persisted
   pnpm add -D graphql-codegen-persisted-query-ids
   ```
1. Configure `codegen` to generate `client` and `server` query maps. Example:

   `codegen.yml`

   ```yml
   overwrite: true
   generates:
     # ...
     ../cms/generated/persisted-queries-map.json:
       schema: ../cms/generated/schema.composed.graphqls
       documents:
         - ./queries/**/*.graphql
         - ./mutations/**/*.graphql
       plugins:
         - graphql-codegen-persisted-query-ids
       config:
         output: server
         algorithm: sha256
     generated/persisted-queries-map.json:
       schema: ../cms/generated/schema.composed.graphqls
       documents:
         - ./queries/**/*.graphql
         - ./mutations/**/*.graphql
       plugins:
         - graphql-codegen-persisted-query-ids
       config:
         output: client
         algorithm: sha256
   ```

## For `@graphql-codegen/typescript-react-query`

1. Prepare custom fetcher using `persistedFetcher` from this package. Example:

   `src/commons/fetcher.ts`

   ```ts
   import { persistedFetcher } from '@amazeelabs/silverback-graphql-persisted';

   import queryMap from '../../generated/persisted-queries-map.json';

   export function fetcher<TData, TVariables>(
     query: string,
     variables?: TVariables,
   ): () => Promise<TData> {
     return persistedFetcher(
       process.env.GATSBY_GRAPHQL_ENDPOINT!,
       queryMap,
       query,
       variables,
     );
   }
   ```

1. Use it in `codegen.yml`. Example:

   `codegen.yml`

   ```yml
   overwrite: true
   generates:
     # ...
     generated/queries.ts:
       # ...
       plugins:
         - 'typescript'
         - 'typescript-operations'
         - 'typescript-react-query'
       config:
         fetcher: ../src/commons/fetcher#fetcher
   ```

## For @graphql-codegen/typescript-graphql-request

Update `getSdk` calls providing a `fetch` wrapped with `withPersistedQueries`
from this package. Example:

```ts
import { withPersistedQueries } from '@amazeelabs/silverback-graphql-persisted';

import { getSdk } from '../../generated/mutations';

const sdk = getSdk(
  new GraphQLClient(process.env.GATSBY_GRAPHQL_ENDPOINT!, {
    fetch: withPersistedQueries(fetch, queryMap),
  }),
);
```

## Backend setup

See
[silverback_graphql_persisted](https://github.com/AmazeeLabs/silverback-mono/tree/development/packages/composer/amazeelabs/silverback_graphql_persisted#readme)
package.

---
_Source: https://npm.io/package/@amazeelabs/silverback-graphql-persisted · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
