@dillonkearns/elm-graphql
Version:
<img src="https://cdn.jsdelivr.net/gh/martimatix/logo-graphqelm/logo.svg" alt="dillonearns/elm-graphql logo" width="40%" align="right">
187 lines (128 loc) • 3.96 kB
Markdown
# @jumpn/utils-graphql
> GraphQL utilities
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- END doctoc -->
- [Installation](#installation)
- [Using npm](#using-npm)
- [Using yarn](#using-yarn)
- [Types](#types)
- [API](#api)
- [errorsToString](#errorstostring)
- [getOperationType](#getoperationtype)
- [hasSubscription](#hassubscription)
- [requestFromCompat](#requestfromcompat)
- [requestToCompat](#requesttocompat)
- [License](#license)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## 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
```flowtype
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 GqlResponse<Data> = {
data?: Data,
errors?: Array<GqlError>
};
type GqlOperationType = "mutation" | "query" | "subscription";
```
## API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### errorsToString
Transforms an array of GqlError into a string.
**Parameters**
- `gqlErrors` **[Array](https://developer.mozilla.org/en-US/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/en-US/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/en-US/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/en-US/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** / Mauro Titimoli (mauro@jumpn.com)