dra

draqula

🧛 GraphQL client for minimalistic React apps

Showing:

Popularity

Downloads/wk

4

GitHub Stars

779

Maintenance

Last Commit

1yr ago

Contributors

6

Package

Dependencies

9

Size (min+gzip)

13.6KB

License

MIT

Type Definitions

Built-In

Tree-Shakeable

Yes?

Categories

Readme





Draqula is a GraphQL client for React apps that don't need everything. Instead of offering tons of features like extensive caching mechanism, local state management, subscriptions and so on, Draqula focuses on executing the basics well - queries and mutations.

If you want to take a quick look, keep scrolling this readme. Otherwise, check out the documentation at https://draqulajs.com.

Install

$ npm install draqula graphql graphql-tag

Features

  • Simple API and codebase
  • Basic cache implementation with aggressive invalidation and refetching
  • Automatic retries of network/timeout errors and GraphQL queries
  • Straightforward way to hook into requests without a need for middleware
  • Refetches queries when window gets focused

Usage

import React from 'react';
import {render} from 'react-dom';
import {Draqula, DraqulaProvider, useQuery} from 'draqula';
import gql from 'graphql-tag';

const TODOS_QUERY = gql`
    query {
        todos {
            id
            title
        }
    }
`;

const Todos = () => {
    const {data, isLoading, error} = useQuery(TODOS_QUERY);

    return (
        <div>
            {isLoading && <span>Loading…</span>}
            {error && <span>Error: {error.message}</span>}
            {data && (
                <ul>
                    {data.todos.map(todo => (
                        <li key={todo.id}>{todo.title}</li>
                    ))}
                </ul>
            )}
        </div>
    );
};

const client = new Draqula('https://my-graphql-api.com/graphql');

render(
    <DraqulaProvider client={client}>
        <Todos />
    </DraqulaProvider>,
    document.body
);

Documentation

Docs can be found at https://draqulajs.com

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100