JS utilities for GraphQL
RipHunter is a small utility to parse objects formatted for GraphQL requests as well as use fetch to send query and mutation requests, returning a promise. Some helpers include sending an authorization token as well as custom headers.
Installation
Using npm:
$ npm install rip-hunter
App Usage
Then with a module bundler like webpack that supports either CommonJS or ES2015 modules, use as you would anything else:
;
How to use
Example:
; const AppActions = { // Variables const url = 'http://www.example.com/graphql'; const gql = '{ app { ping } }'; // Query data return Hunter ; } { // Variables const url = 'http://www.example.com/graphql'; const data = hello: 'world'; const gql = `{ user { update(data: ) } }`; // Mutate data return Hunter ; }
API
Formatting
toGQL(data)
Parses an immutable object, JSON object, string, or number into a GraphQL formatted string. This string is used when sending variables in a request.
- [
data
] (* Any *): An immutable object, JSON object, string or number to format for use with a GQL request.
Returns
A string formatted for use with GQL.
Events
on(eventType, data)
Adds an event listener. The only event emitted is when an error occurs. The error event is rip_hunter_error.
- [
eventType
] (String): Event to subscribe for store updates. - [
listener
] (Function): The callback to be invoked any time an action has been dispatched.
off(eventType, data)
Removes an event listener.
- [
eventType
] (String): Event to unsubscribe. - [
listener
] (Function): The callback associated with the subscribed event.
AJAX
ajax(url, method, params, options)
AJAX request.
- [
url
] (String): URL to send the request. Must be an absolute url. - [
method
] (String): The HTTP method for the request. - [
params
] (Object): Data to be sent with the request. Params will be converted to a query string for GET methods. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.
get(url, params, options)
Server request using HTTP GET.
- [
url
] (String): URL to send the request. Must be an absolute url. - [
params
] (Object): Data to be sent with the request. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.
post(url, params, options)
Server request using HTTP POST.
- [
url
] (String): URL to send the request. Must be an absolute url. - [
params
] (Object): Data to be sent with the request. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.
put(url, params, options)
Server request using HTTP PUT.
- [
url
] (String): URL to send the request. Must be an absolute url. - [
params
] (Object): Data to be sent with the request. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.
del(url, params, options)
Server request using HTTP DEL.
- [
url
] (String): GraphQL server endpoint. Must be an absolute url. - [
params
] (Object): Data to be sent with the request. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.
GraphQL
query(url, body, options)
Queries a GraphQL server.
- [
url
] (String): GraphQL server endpoint. Must be an absolute url. - [
body
] (String): GraphQL query. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.
mutation(url, body, token, headers)
Modifies data on a GraphQL server.
- [
url
] (String): GraphQL server endpoint. Must be an absolute url. - [
body
] (String): GraphQL query. - [
options
] (Object): Rip Hunter options.- [
headers
] (Object): Overwrite the default headers. - [
immutable
] (Boolean): Converts result to an Immutable object if set to true. Default: false. - [
token
] (String): Add an Authorization header with the value Bearer [token].
- [
Returns
A promise with either the response data or ApiError.