0.1.5 • Published 4 years ago

relay-connections-deconstructor v0.1.5

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Relay Connections Deconstructor

npm

Description

Not all of us love the Relay spec but sometimes we need to wrestle with a third-party service that uses it. We find ourselves wrestling with edges and nodes and edges and nodes and edges and...

Welp, I wrote a quick little function to flatten out said edges and nodes and edges and nodes.

Installation

yarn add relay-connections-deconstructor

or

npm install relay-connections-deconstructor

Usage

import { relayDeconstructor } from 'relay-connections-deconstructor';

const responseFollowingRelaySpec = {
  friends: {
    totalCount: 3,
    edges: [
      {
        node: {
          name: 'Han Solo',
        },
        cursor: 'Y3Vyc29yMg==',
      },
      {
        node: {
          name: 'Leia Organa',
        },
        cursor: 'Y3Vyc29yMw==',
      },
    ],
    pageInfo: {
      endCursor: 'Y3Vyc29yMw==',
      hasNextPage: false,
    },
  },
  planets: {
    totalCount: 2,
    edges: [
      { node: { name: 'Pluto' }, cursor: 'Y3Vyc29yMg==' },
      { node: { name: 'Mars' }, cursor: 'Y3Vyc29yMw==' },
    ],
  },
};

const deconstructedObject = relayDeconstructor(responseFollowingRelaySpec);
console.log(deconstructedObject);
// 👇
// {
//   friends: [
//     {
//       name: 'Han Solo',
//       cursor: 'Y3Vyc29yMg==',
//     },
//     {
//       name: 'Leia Organa',
//       cursor: 'Y3Vyc29yMw==',
//     },
//   ],
//   planets: [
//     { cursor: 'Y3Vyc29yMg==', name: 'Pluto' },
//     { cursor: 'Y3Vyc29yMw==', name: 'Mars' },
//   ],
// };

const justTheFriends = relayDeconstructor(responseFollowingRelaySpec.friends);
console.log(justTheFriends);
// 👇
// [
//   {
//     name: 'Han Solo',
//     cursor: 'Y3Vyc29yMg==',
//   },
//   {
//     name: 'Leia Organa',
//     cursor: 'Y3Vyc29yMw==',
//   },
// ]
0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago