@r26d/absinthe-apollo-link
Special Apollo Link with Absinthe Support
Installation
npm
Using$ npm install --save @r26d/absinthe-apollo-link
yarn
Using$ yarn add @r26d/absinthe-apollo-link
Examples
- Create AbsintheSocketLink (
absinthe-socket-link.js
)
import * as AbsintheSocket from "@r26d/absinthe-apollo-socket";
import {createAbsintheApolloLink} from "@r26d/absinthe-apollo-link";
import {Socket as PhoenixSocket} from "phoenix";
export default createAbsintheApolloLink(AbsintheSocket.create(
new PhoenixSocket("ws://localhost:4000/socket")
));
- Send all the operations using AbsintheSocketLink
import ApolloClient from "apollo-client";
import {InMemoryCache} from "apollo-cache-inmemory";
// see example 1
import absintheSocketLink from "./absinthe-socket-link";
const client = new ApolloClient({
link: absintheSocketLink,
cache: new InMemoryCache()
});
- Subscribe using AbsintheSocketLink and send queries and mutations using HttpLink
import ApolloClient from "apollo-client";
import {createHttpLink} from "apollo-link-http";
import {hasSubscription} from "@r26d/utils-graphql";
import {InMemoryCache} from "apollo-cache-inmemory";
import {split} from "apollo-link";
// see example 1
import absintheSocketLink from "./absinthe-socket-link";
const link = split(
operation => hasSubscription(operation.query),
absintheSocketLink,
createHttpLink({uri: "/graphql"})
);
const client = new ApolloClient({
link,
cache: new InMemoryCache()
});
API
createAbsintheApolloLink
Creates a terminating ApolloLink to request operations using given AbsintheSocket instance
Parameters
-
absintheSocket
-
onError
-
onStart
References
- Absinthe Phoenix Socket
- Apollo Link
License
MIT