Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

taskless/graphinql

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

graphinql logo

@taskless/graphinql

A super-lightweight GraphQL client built on cross-fetch. As few dependencies as possible, works in the browser and server. Specifically built to work with strings and avoid a dependency on graphql / graphql-tag so you can keep your codebase light. In short, the best parts of graphql-request without the graphql dependency, but without losing the ability to type your requests and responses.

  • ✅ Queries, Mutations, Introspection
  • ✅ Custom headers per request or shared via new GraphQLClient()
  • ✅ Typed responses and variables
  • ❌ Typed GraphQL Document Node (exposing these types would force graphql to be a dependency, and risks the "multiple GraphQL" bug even for types-only support)
    • Note: If you need the Typed Document Node, you should use the excellent graphql-request library
  • ❌ Subscriptions (operates over https fetch)

BREAKING CHANGE (4.x)

⚠️ With node 18 providing a What-WG compatible fetch, version 4.0 of graphinql no longer provides a fetch by default nor includes p-retry. If you need these features, you can provide them yourself, via the new fetch option.

Usage

import { GraphQLClient, request } from "@taskless/graphinql";

// as an object
const client = new GraphQLClient(endpoint, options);
const { data, error } = await client.request<TReturnType, TVariables>(
  stringDocument,
  {
    // variables
  },
  {
    // options
  }
);

// or as a one-off
request<TReturnType, TVariables>(endpoint, stringDocument, variables, options);
  • endpoint Your GraphQL endpoint
  • stringDocument A GraphQL query, as a string
  • variables (optional) GraphQL Variables if applicable
  • options (optional) A set of GraphQL Client options, provided as an object
    • options.headers<HeadersInit> (optional) A Headers compatible object, specifying headers to include with the request
    • options.fetch<typeof fetch> (optional) A What-WG compatible fetch interface

Additional Examples

About the Name

This library was originally built on phin before migrating to a What-WG fetch solution.

Contributors

All Contributors

Jakob Heuser
Jakob Heuser

💻 🚇 📖
takanome_dev
takanome_dev

📖 💻
Samuel Giddins
Samuel Giddins

💻 🚇 ⚠️

License

The source code in this repository is made available under the MIT license.

About

🕸️ A zero-dependency graphql client that likes (but does not require) types

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.