@betty-blocks/utils-graphql
v0.7.0
Published
GraphQL utilities
Downloads
16
Readme
@betty-blocks/utils-graphql
GraphQL utilities
Installation
Using npm
$ npm install --save @betty-blocks/utils-graphql
Using yarn
$ yarn add @betty-blocks/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
operation
string
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