Nepotistic Pontifex Maximus

    @8base/apollo-links
    TypeScript icon, indicating that this package has built-in type declarations

    2.5.0 • Public • Published

    8base Apollo Links

    A collection of Apollo links for more efficient communication with the 8base API.

    API

    Table of Contents

    TokenRefreshLink

    Extends ApolloLink

    Token Refresh Link renew authentication token when it's expired.

    Parameters

    • options TokenRefreshLinkOptions The token refresh link options.
      • options.getRefreshTokenParameters Function Used to refresh token parameters.
      • options.onAuthSuccess Function Callback which is executed when an attempt to refresh authentication is successful.
      • options.onAuthError Function? Callback which is executed when an attempt to refresh authentication fails.

    SuccessLink

    SuccessLink calls handler on every successful operation.

    Parameters

    • successHandler Function success handler.

    Handler

    Success handler takes the following parameters:

    • operation Operation apollo graphql operation.

    Usage

    import { ApolloLink } from 'apollo-link';
    import { BatchHttpLink } from 'apollo-link-batch-http';
    import { getMainDefinition } from 'apollo-utilities';
    import {
      AuthLink,
      FileUploadLink,
      SuccessLink,
    } from '@8base/apollo-links';
    
    const successHandler = ({ operation }) => {
      console.log(operation.getContext().someUsefulData);
    };
    
    const getAuthState = () => ({
      workspaceId: '',
      email: '',
      token: '',
    });
    
    const getRefreshTokenParameters = () => ({
      email: '',
      refreshToken: '',
    });
    
    const authSuccessHandler = ({ token, refreshToken}) => {
      console.log({ token, refreshToken });
    }
    
    const authErrorHandler = () => {
      console.log('Auth error');
    }
    
    
    const links = ApolloLink.from([
      new FileUploadLink(),
      new SuccessLink(successHandler),
      new AuthLink({
        getAuthState: getAuthState,
        getRefreshTokenParameters: getRefreshTokenParameters,
        onAuthSuccess: authSuccessHandler,
        onAuthError: authErrorHandler,
      }),
      ApolloLink.split(
        ({ query }) => {
          const definition = getMainDefinition(query);
    
          return (
            definition.kind === 'OperationDefinition' &&
            definition.operation === 'subscription'
          );
        },
        new SubscriptionLink({
          uri: 'wss://api-ws.8base.com',
          getAuthState: getAuthState,
          onAuthError: authErrorHandler,
        }),
        new BatchHttpLink({
          uri: 'https://api.8base.com',
        }),
      ),
    ])

    Keywords

    none

    Install

    npm i @8base/apollo-links

    DownloadsWeekly Downloads

    1,377

    Version

    2.5.0

    License

    MIT

    Unpacked Size

    51.9 kB

    Total Files

    44

    Last publish

    Collaborators

    • zouxuoz
    • aanisimov
    • vorobeez
    • ilazarev
    • evgeny_s