UNPKG

kikstart-graphql-client

Version:

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

58 lines 2.6 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const graphql_tag_1 = __importDefault(require("graphql-tag")); const kikstart_apollo_client_1 = require("./kikstart-apollo-client"); const apollo_link_ws_1 = require("apollo-link-ws"); const apollo_link_http_1 = require("apollo-link-http"); const subscriptions_transport_ws_1 = require("subscriptions-transport-ws"); const ws_1 = __importDefault(require("ws")); const node_fetch_1 = __importDefault(require("node-fetch")); class GraphQLClient { constructor(config) { this.config = config; if (config.uri) { console.warn('Deprecated config parameter: uri, please use url instead.'); config.url = config.uri; } if (config.wsUri) { console.warn('Deprecated config parameter: wsUri, please use wsUrl instead.'); config.wsUrl = config.wsUri; } config.wsUrl = config.wsUrl || config.url.replace('https://', 'wss://').replace('http://', 'ws://'); this.httpLink = apollo_link_http_1.createHttpLink({ uri: config.url, fetch: node_fetch_1.default }); this.wsClient = new subscriptions_transport_ws_1.SubscriptionClient(config.wsUrl, { ...config.wsOptions, connectionParams: config.connectionParams ? config.connectionParams : { headers: config.headers || {} }, reconnect: true, }, ws_1.default); this.wsLink = new apollo_link_ws_1.WebSocketLink(this.wsClient); this.apollo = kikstart_apollo_client_1.createClient(this.httpLink, this.wsLink, this.config); } query(query) { return typeof query === 'string' ? graphql_tag_1.default(query) : query; } async runQuery(query, variables = {}) { return this.apollo.query({ query: this.query(query), variables }); } async runMutation(mutation, variables = {}) { return this.apollo.mutate({ mutation: this.query(mutation), variables }); } runSubscription(query, variables = {}) { return this.apollo.subscribe({ query: this.query(query), variables }); } disconnect() { if (this.config.log) { this.config.log.log(`[GraphQLClient] Disconnecting from ${this.config.url} / ${this.config.wsUrl}`); } this.wsClient.close(); } } exports.GraphQLClient = GraphQLClient; //# sourceMappingURL=kikstart-graphql-client.js.map