@jumpn/utils-graphql

GraphQL utilities

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@jumpn/utils-graphql
000.6.05 years ago7 years agoMinified + gzip package size for @jumpn/utils-graphql in KB

Readme

@jumpn/utils-graphql
GraphQL utilities


- Using npm - Using yarn - errorsToString
- [Parameters](#parameters)
- [Examples](#examples)
- getOperationType
- [Parameters](#parameters-1)
- [Examples](#examples-1)
- hasSubscription
- [Parameters](#parameters-2)
- requestFromCompat
- [Parameters](#parameters-3)
- [Examples](#examples-2)
- requestToCompat
- [Parameters](#parameters-4)
- [Examples](#examples-3)

Installation

Using npm

$ npm install --save @jumpn/utils-graphql

Using yarn

$ yarn add @jumpn/utils-graphql

Types

export type {DocumentNode} from "graphql/language/ast";

type GqlErrorLocation = {|
  line: number,
  column: number
|};

type GqlError = {|
  message: string,
  locations?: Array<GqlErrorLocation>
|};

type GqlRequest<Variables: void | Object = void> = {|
  operation: string,
  variables?: Variables
|};

type GqlRequestCompat<Variables: void | Object = void> = {|
  query: string,
  variables?: Variables
|};

type GqlResponse<Data> = {|
  data?: Data,
  errors?: Array<GqlError>
|};

type GqlOperationType = "mutation" | "query" | "subscription";

API

errorsToString

Transforms an array of GqlError into a string.

Parameters

  • gqlErrors Array<GqlError>

Examples

const gqlRespose = {
  errors: [
    {message: "First Error", locations: [{column: 10, line: 2}]},
    {message: "Second Error", locations: [{column: 2, line: 4}]}
  ]
}

const error = errorsToString(gqlRespose.errors);
// string with the following:
// First Error (2:10)
// Second Error (4:2)

Returns string

getOperationType

Returns the type (query, mutation, or subscription) of the given operation

Parameters

Examples

const operation = `
  subscription userSubscription($userId: ID!) {
    user(userId: $userId) {
      id
      name
    }
  }
`;

const operationType = getOperationType(operation);

console.log(operationType); // "subscription"

Returns
GqlOperationType

hasSubscription

Returns true if documentNode has a subscription or false otherwise

Parameters

  • documentNode DocumentNode

Returns
boolean

requestFromCompat

Creates a GqlRequest using given GqlRequestCompat

Parameters

  • gqlRequestCompat GqlRequestCompat<Variables>
-   `gqlRequestCompat.query`  
-   `gqlRequestCompat.variables`  

Examples

const query = `
  query userQuery($userId: ID!) {
    user(userId: $userId) {
      id
      email
    }
  }
`;

console.log(requestFromCompat({query, variables: {userId: 10}}));
// {operation: "...", variables: {userId: 10}}

Returns
GqlRequest<Variables>

requestToCompat

Creates a GqlRequest using given GqlRequestCompat

Parameters

  • gqlRequest GqlRequest<Variables>
-   `gqlRequest.operation`  
-   `gqlRequest.variables`  

Examples

const operation = `
  query userQuery($userId: ID!) {
    user(userId: $userId) {
      id
      email
    }
  }
`;

console.log(requestToCompat({operation, variables: {userId: 10}}));
// {query: "...", variables: {userId: 10}}

Returns
GqlRequestCompat<Variables>

License

MIT
:copyright: Jumpn Limited