An open API service indexing awesome lists of open source software.

https://github.com/jumpn/utils-graphql

GraphQL utilities
https://github.com/jumpn/utils-graphql

flowtype graphql graphql-utilities utilities

Last synced: 7 months ago
JSON representation

GraphQL utilities

Awesome Lists containing this project

README

        

# @jumpn/utils-graphql

> GraphQL utilities

- [Installation](#installation)
- [Using npm](#using-npm)
- [Using yarn](#using-yarn)
- [Types](#types)
- [API](#api)
- [errorsToString](#errorstostring)
- [Parameters](#parameters)
- [Examples](#examples)
- [getOperationType](#getoperationtype)
- [Parameters](#parameters-1)
- [Examples](#examples-1)
- [hasSubscription](#hassubscription)
- [Parameters](#parameters-2)
- [requestFromCompat](#requestfromcompat)
- [Parameters](#parameters-3)
- [Examples](#examples-2)
- [requestToCompat](#requesttocompat)
- [Parameters](#parameters-4)
- [Examples](#examples-3)
- [License](#license)

## Installation

### Using [npm](https://docs.npmjs.com/cli/npm)

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

### Using [yarn](https://yarnpkg.com)

$ yarn add @jumpn/utils-graphql

## Types

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

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

type GqlRequest = {|
operation: string,
variables?: Variables
|};

type GqlRequestCompat = {|
query: string,
variables?: Variables
|};

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

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

## API

### errorsToString

Transforms an array of GqlError into a string.

#### Parameters

- `gqlErrors` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<GqlError>**

#### Examples

```javascript
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](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

### getOperationType

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

#### Parameters

- `operation` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

#### Examples

```javascript
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](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

### requestFromCompat

Creates a GqlRequest using given GqlRequestCompat

#### Parameters

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

#### Examples

```javascript
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

```javascript
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](LICENSE.txt) :copyright: **Jumpn Limited**