@r26d/utils-graphql
This package also includes updates to other util functions ao
GraphQL utilities
- Installation
- Types
- API
- License
Installation
npm
Using$ npm install --save @r26d/utils-graphql
yarn
Using$ yarn add @r26d/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
arrayAppendFn
Returns a new Array with elements appended to the one given.
Parameters
-
elements
-
array
arrayRemoveFn
Returns a new Array with the result of having removed the specified amount (count) of elements at the given index.
Parameters
-
index
-
count
-
array
arrayReplaceFn
Returns a new Array with the result of having replaced the elements at the given index with the ones specified.
Parameters
-
index
-
elements
-
array
booleanize
Returns a new promise which follows the one given returning true in case there was no error, or false otherwise
Parameters
-
promise
get
Get property value of given key.
Parameters
-
key
-
composite
getIn
Returns value located at the given path or undefined otherwise.
Parameters
-
path
-
composite
compositeHasInFn
Returns true if value located at given path is deeply equal to the one specified.
Parameters
-
path
-
value
-
composite
compositeMap
Maps values of the given composite using mapper
Parameters
-
mapper
-
composite
createDeferred
Creates a Deferred
errorsToString
Transforms an array of GqlError into a string.
Parameters
-
gqlErrors
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)
getOperationType
Returns the type (query, mutation, or subscription) of the given operation
Parameters
-
operation
Examples
const operation = `
subscription userSubscription($userId: ID!) {
user(userId: $userId) {
id
name
}
}
`;
const operationType = getOperationType(operation);
console.log(operationType); // "subscription"
hasSubscription
Returns true if documentNode has a subscription or false otherwise
Parameters
-
documentNode
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