UNPKG

@apollo/client

Version:

A fully-featured caching GraphQL client.

57 lines (55 loc) 2.14 kB
"use strict";; const { __DEV__ } = require("@apollo/client/utilities/environment"); Object.defineProperty(exports, "__esModule", { value: true }); exports.WebSocketLink = void 0; const subscriptions_transport_ws_1 = require("subscriptions-transport-ws"); const link_1 = require("@apollo/client/link"); const environment_1 = require("@apollo/client/utilities/environment"); const invariant_1 = require("@apollo/client/utilities/invariant"); /** * `WebSocketLink` is a terminating link that executes GraphQL operations over * WebSocket connections using the `subscriptions-transport-ws` library. It's * primarily used for GraphQL subscriptions but can also handle queries and * mutations. * * @example * * ```ts * import { WebSocketLink } from "@apollo/client/link/ws"; * import { SubscriptionClient } from "subscriptions-transport-ws"; * * const wsLink = new WebSocketLink( * new SubscriptionClient("ws://localhost:4000/subscriptions", { * reconnect: true, * }) * ); * ``` * * @deprecated `WebSocketLink` uses the deprecated and unmaintained * `subscriptions-transport-ws` library. This link is no longer maintained and * will be removed in a future major version of Apollo Client. We recommend * switching to `GraphQLWsLink`, which uses the [`graphql-ws` library](https://the-guild.dev/graphql/ws) to * send GraphQL operations through WebSocket connections. */ class WebSocketLink extends link_1.ApolloLink { subscriptionClient; constructor(paramsOrClient) { super(); if (environment_1.__DEV__) { __DEV__ && invariant_1.invariant.warn(56); } if (paramsOrClient instanceof subscriptions_transport_ws_1.SubscriptionClient) { this.subscriptionClient = paramsOrClient; } else { this.subscriptionClient = new subscriptions_transport_ws_1.SubscriptionClient(paramsOrClient.uri, paramsOrClient.options, paramsOrClient.webSocketImpl); } } request(operation) { return this.subscriptionClient.request(operation); } } exports.WebSocketLink = WebSocketLink; //# sourceMappingURL=index.cjs.map