0.2.6 • Published 2 years ago

@sntxx/socket-apollo-link v0.2.6

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@sntxx/socket-apollo-link > Absinthe Socket Apollo Link

Installation ### Using npm ` $ npm

install --save @sntxx/socket-apollo-link ### Using [yarn](https://yarnpkg.com) $ yarn add @sntxx/socket-apollo-link ## Examples 1. Create AbsintheSocketLink (`absinthe-socket-link.js`)javascript // @flow import * as AbsintheSocket from "@sntxx/socket"; import {createAbsintheSocketLink} from "@sntxx/socket-apollo-link"; import {Socket as PhoenixSocket} from "phoenix"; export default createAbsintheSocketLink(AbsintheSocket.create( new PhoenixSocket("ws://localhost:4000/socket") )); 2. Send all the operations using AbsintheSocketLinkjavascript // @flow 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() });

HttpLink ```javascript // @flow import ApolloClient from "apollo-client"; import
{createHttpLink} from "apollo-link-http"; import {hasSubscription} from
"@jumpn/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 ## References - [Absinthe Phoenix
Socket](https://github.com/absinthe-graphql/absinthe-socket/tree/master/packages/socket)
- **Apollo Link** - [Apollo
Client](http://apollo-link-docs.netlify.com/docs/link/#apollo-client) -
[Terminating
Links](http://apollo-link-docs.netlify.com/docs/link/overview.html#terminating)
- [Directional
Composition](http://apollo-link-docs.netlify.com/docs/link/composition.html#directional)
- [Http Link](http://apollo-link-docs.netlify.com/docs/link/links/http.html) ##
License [MIT](LICENSE.txt) :copyright: Jumpn Limited.