Skip to content

egorlem/apollo-link-printer

Repository files navigation

Apollo link Printer

Pretty logger of Apollo GraphQL network operations

NPM Version NPM License


Preview


Overview

Apollo Link Printer is a logging library designed to provide a pretty and informative log of your Apollo GraphQL network operations. It logs details of your GraphQL queries, mutations, and subscriptions, making it easier to debug and understand the network interactions in your application.

The library extends the ApolloLink from @apollo/client and provides a custom PrinterLink that logs various aspects of the network operations, such as fragments, variables, and messages.


Installation

Node Package Manager installation

npm install apollo-link-printer

Yarn installation

yarn add apollo-link-printer

Usage

Below is an example of how to set up Apollo Link Printer in your Apollo Client configuration:

import { ApolloClient, InMemoryCache, HttpLink, ApolloLink } from '@apollo/client';
import { PrinterLink } from 'apollo-link-printer';

// Define options
const options = {
  print: true,
  collapsed: false,
};

const client = new ApolloClient({
  link: ApolloLink.from([
    new PrinterLink(options),
    new HttpLink({ uri: 'http://localhost:4000' }),
  ]),
  cache: new InMemoryCache(),
});

In this example, PrinterLink is added to the Apollo Client link chain. The options object allows you to customize the logging behavior.


Options

name type explanation
print boolean if true, information will be output to the console
collapsed boolean if true, console.groupCollapsed will be used, otherwise console.group

Contributing

This project uses TypeScript to provide static typing for JavaScript and Jest for testing. To contribute, follow these steps:

  1. Clone the repository:

    git clone https://github.com/egorlem/apollo-link-printer.git
    cd apollo-link-printer
  2. Install dependencies:

    npm install # or `yarn`
  3. Make your changes and run tests to ensure everything works as expected:

    npm test # or `yarn test`
  4. To run the library locally in another project, you can link it:

    npm link
    npm link apollo-link-printer  # In the project where you want to use the library
  5. Commit and push your changes, then open a pull request on GitHub.


License

This project is licensed under the MIT License. See the LICENSE file for details.


Maintained by Egor Lem