UNPKG

kikstart-graphql-client

Version:

Small NodeJS Wrapper around apollo-client that provides easy access to running queries, mutations and subscriptions.

45 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const apollo_client_1 = require("apollo-client"); const apollo_link_1 = require("apollo-link"); const apollo_link_error_1 = require("apollo-link-error"); const apollo_link_context_1 = require("apollo-link-context"); const apollo_cache_inmemory_1 = require("apollo-cache-inmemory"); const apollo_utilities_1 = require("apollo-utilities"); exports.createLink = (httpLink, wsLink, { mutationLink, queryLink, subscriptionLink }) => { const wsOperations = []; if (mutationLink === 'ws') { wsOperations.push('mutation'); } if (queryLink === 'ws') { wsOperations.push('query'); } if (subscriptionLink === 'ws') { wsOperations.push('subscription'); } return wsOperations.length ? apollo_link_1.ApolloLink.split(({ query }) => (({ kind, operation }) => kind === 'OperationDefinition' && wsOperations.includes(operation))(apollo_utilities_1.getMainDefinition(query)), wsLink, httpLink) : httpLink; }; exports.createClient = (httpLink, wsLink, { url, wsUrl, mutationLink = 'http', queryLink = 'http', subscriptionLink = 'ws', cache, headers, log, }) => { const transportLink = exports.createLink(httpLink, wsLink, { mutationLink, queryLink, subscriptionLink, }); const link = apollo_link_1.ApolloLink.from([ apollo_link_error_1.onError((error) => (log || console).error(error)), ...(headers && Object.keys(headers).length ? [ apollo_link_context_1.setContext((_request, context) => ({ headers: { ...context.headers, ...headers }, })), ] : []), transportLink, ]); if (log) log.log(`[GraphQLClient] Connecting to ${url} / ${wsUrl}`, ...(headers && Object.keys(headers).length ? [headers] : [])); return new apollo_client_1.ApolloClient({ cache: cache || new apollo_cache_inmemory_1.InMemoryCache(), link }); }; //# sourceMappingURL=kikstart-apollo-client.js.map