
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
rip-hunter
Advanced tools

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.
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:
import {Hunter} from 'rip-hunter';
Example:
import {Hunter} from 'rip-hunter';
const AppActions = {
getData: () => {
// Variables
const url = 'http://www.example.com/graphql';
const gql = '{ app { ping } }';
// Query data
return Hunter.query(url, gql)
.then(results => {
console.log(results);
// Assuming the results will return the JSON object, {status: 'ok'}
// Output: {status: 'ok'}
})
.catch(error => {
// ApiError will be returned if any problems occur.
});
},
updateData: () => {
// Variables
const url = 'http://www.example.com/graphql';
const data = {hello: 'world'};
const gql = `{ user { update(data: ${Hunter.toGQL(data)}) } }`;
// Mutate data
return Hunter.mutation(url, gql)
.then(results => {
console.log(results);
// Assuming the results will return the JSON object, {id: 'test', hello: 'world'}
// Output: {id: 'test', hello: 'world'}
})
.catch(error => {
// ApiError will be returned if any problems occur.
});
}
}
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.A string formatted for use with GQL.
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(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].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].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].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].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].A promise with either the response data or ApiError.
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].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].A promise with either the response data or ApiError.
FAQs
JS utilities for AJAX and GraphQL
We found that rip-hunter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.