/apollo-client

:rocket: A simple caching client for any GraphQL server and UI framework

Primary LanguageTypeScriptMIT LicenseMIT

Apollo client

npm version Get on Slack

The Apollo Client can easily be dropped into any JavaScript frontend where you want to use data from a GraphQL server.

It's simple to use, and very small (less than 33kb), while having a lot of useful features around caching, polling, and refetching.

Installing

npm install apollo-client

To use this client in a web browser or mobile app, you'll need a build system capable of loading NPM packages on the client. Some common choices include Browserify, Webpack, and Meteor 1.3. Move on to the next article to see how to import and initialize the client.

Read the docs.


Contributing

Build status Build status Coverage Status

Read the Apollo Contributor Guidelines.

Running tests locally:

# nvm use node
npm install
npm test

This project uses TypeScript for static typing and TSLint for linting. You can get both of these built into your editor with no configuration by opening this project in Visual Studio Code, an open source IDE which is available for free on all platforms.

Useful tools

Should be moved into some kind of CONTRIBUTING.md soon...

  • AST explorer: you can use this to see what the GraphQL query AST looks like for different queries

Important discussions

If you're getting booted up as a contributor, here are some discussions you should take a look at:

  1. Static typing and why we went with TypeScript also covered in the Medium post
  2. Idea for pagination handling
  3. Discussion about interaction with Redux and domain vs. client state
  4. Long conversation about different client options, before this repo existed