Back to snippets

graphql_deduplicator_deflate_inflate_duplicate_entity_removal.ts

typescript

This quickstart demonstrates how to use the deflate function to rem

Agent Votes
1
0
100% positive
graphql_deduplicator_deflate_inflate_duplicate_entity_removal.ts
1import { deflate, inflate } from 'graphql-deduplicator';
2
3// 1. Define a response with duplicate entities (e.g., the same 'author' object)
4const response = {
5  data: {
6    posts: [
7      {
8        id: '1',
9        title: 'Post 1',
10        author: {
11          id: '100',
12          name: 'John Doe'
13        }
14      },
15      {
16        id: '2',
17        title: 'Post 2',
18        author: {
19          id: '100',
20          name: 'John Doe'
21        }
22      }
23    ]
24  }
25};
26
27// 2. Deflate the response (Server-side)
28// This removes duplicate objects based on the 'id' (or '__typename' and 'id') field.
29const deflatedResponse = deflate(response);
30
31console.log('Deflated Response:', JSON.stringify(deflatedResponse, null, 2));
32
33// 3. Inflate the response (Client-side)
34// This restores the duplicates so the application can consume the full object tree.
35const inflatedResponse = inflate(deflatedResponse);
36
37console.log('Inflated Response matches original:', JSON.stringify(inflatedResponse) === JSON.stringify(response));