@r26d/absinthe-apollo-link
v1.1.8
Published
Special Apollo Link with Absinthe Support
Downloads
37
Maintainers
Readme
@r26d/absinthe-apollo-link
Special Apollo Link with Absinthe Support
Installation
Using npm
$ npm install --save @r26d/absinthe-apollo-link
Using yarn
$ 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
License
MIT :copyright: r26D LLC