@uplift-ltd/graphene
v3.0.0
Published
Helpers for dealing with django graphene.
Downloads
97
Readme
@uplift-ltd/graphene
Installation
npm i --save @uplift-ltd/graphene
API
fromGlobalId
Get the raw database ID from a global id.
import { fromGlobalId } from "@uplift-ltd/graphene";
const globalId = "VXNlcjox";
const dbId = fromGlobalId(globalId);
console.log(globalId); // => VXNlcjox
console.log(dbId); // => 1
toGlobalId
Encode a model name and database id to a global id.
import { toGlobalId } from "@uplift-ltd/graphene";
const globalId = toGlobalId("User", 1);
console.log(globalId); // => VXNlcjox
parseGlobalId
Parse both the model name and the database id from the global id.
import { parseGlobalId } from "@uplift-ltd/graphene";
const { name, id } = parseGlobalId("VXNlcjox");
console.log(name); // => User
console.log(id); // => 1
bumpGlobalId
Increment the global id. Requires the parsed ID to be an integer.
import { bumpGlobalId } from "@uplift-ltd/graphene";
const user1 = "VXNlcjox"; // => User:1
const user2 = bumpGlobalId(globalId); // => VXNlcjoy => User:2
const user5 = bumpGlobalId(globalId, 4); // => VXNlcjo1 => User:5
bumpOrInitCursor
Increment a cursor or initialize to arrayconnection:1
(YXJyYXljb25uZWN0aW9uOjE=
).
import { bumpOrInitCusor } from "@uplift-ltd/graphene";
bumpOrInitCursor(null); // => YXJyYXljb25uZWN0aW9uOjE= => arrayconnection:1
bumpOrInitCursor("YXJyYXljb25uZWN0aW9uOjE="); // => YXJyYXljb25uZWN0aW9uOjI= => arrayconnection:2
mapNodes
Return an array of nodes from a relay-style connection.
import { mapNodes } from "@uplift-ltd/graphene";
const connection = { edges: [{ node: { id: 1 } }] };
const nodes = mapNodes(connection);
console.log(nodes); // => [{ id: 1}]
Optionally takes in a transform callback which will operate on each node,
import { mapNodes } from "@uplift-ltd/graphene";
const connection = { edges: [{ node: { id: 1 } }] };
const nodes = mapNodes(connection, (node) => ({ ...node, type: "EnhancedNode" }));
console.log(nodes); // => [{ id: 1, type: "EnhancedNode" }]
useMapNodes
Like mapNodes but returns a stable array (assuming connection and callback are stable).