@graphql-mesh/transport-ws 1.0.1-alpha-4105c094996f232c2b96db211bb33770260fcaef → 1.0.1-rc-e0761af90892ebf921391882f5be47de39fb638c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,18 +1,16 @@
1
1
  # @graphql-mesh/transport-ws
2
2
 
3
- ## 1.0.1-alpha-4105c094996f232c2b96db211bb33770260fcaef
3
+ ## 1.0.1-rc-e0761af90892ebf921391882f5be47de39fb638c
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - [#591](https://github.com/graphql-hive/gateway/pull/591) [`7d42160`](https://github.com/graphql-hive/gateway/commit/7d42160c31a10efbc680826704410fc1a33fb97c) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
7
+ - [#421](https://github.com/graphql-hive/gateway/pull/421) [`53a8ac2`](https://github.com/graphql-hive/gateway/commit/53a8ac2c0a5f140f9aed6355dfa4122fefc7f884) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
8
8
 
9
- - Removed dependency [`isomorphic-ws@^5.0.0` ↗︎](https://www.npmjs.com/package/isomorphic-ws/v/5.0.0) (from `dependencies`)
10
-
11
- - [#591](https://github.com/graphql-hive/gateway/pull/591) [`7d42160`](https://github.com/graphql-hive/gateway/commit/7d42160c31a10efbc680826704410fc1a33fb97c) Thanks [@ardatan](https://github.com/ardatan)! - Avoid having an extra Client instantiation in the transport, and use the one in the executor
9
+ - Updated dependency [`graphql-ws@^6.0.3` ↗︎](https://www.npmjs.com/package/graphql-ws/v/6.0.3) (from `^5.16.0`, in `dependencies`)
10
+ - Added dependency [`isomorphic-ws@^5.0.0` ↗︎](https://www.npmjs.com/package/isomorphic-ws/v/5.0.0) (to `dependencies`)
12
11
 
13
- - Updated dependencies [[`7d42160`](https://github.com/graphql-hive/gateway/commit/7d42160c31a10efbc680826704410fc1a33fb97c)]:
14
- - @graphql-tools/executor-graphql-ws@2.0.1-alpha-4105c094996f232c2b96db211bb33770260fcaef
15
- - @graphql-mesh/transport-common@0.7.28-alpha-4105c094996f232c2b96db211bb33770260fcaef
12
+ - Updated dependencies [[`53a8ac2`](https://github.com/graphql-hive/gateway/commit/53a8ac2c0a5f140f9aed6355dfa4122fefc7f884)]:
13
+ - @graphql-tools/executor-graphql-ws@2.0.1-rc-e0761af90892ebf921391882f5be47de39fb638c
16
14
 
17
15
  ## 1.0.0
18
16
 
package/dist/index.cjs CHANGED
@@ -4,6 +4,12 @@ var crossHelpers = require('@graphql-mesh/cross-helpers');
4
4
  var stringInterpolation = require('@graphql-mesh/string-interpolation');
5
5
  var utils = require('@graphql-mesh/utils');
6
6
  var executorGraphqlWs = require('@graphql-tools/executor-graphql-ws');
7
+ var graphqlWs = require('graphql-ws');
8
+ var WebSocket = require('isomorphic-ws');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
7
13
 
8
14
  function switchProtocols(url) {
9
15
  if (url.startsWith("https://")) {
@@ -15,7 +21,7 @@ function switchProtocols(url) {
15
21
  return url;
16
22
  }
17
23
  var index = {
18
- getSubgraphExecutor({ transportEntry, logger }, onClient) {
24
+ getSubgraphExecutor({ transportEntry, logger }, buildExecutor = executorGraphqlWs.buildGraphQLWSExecutor) {
19
25
  const wsExecutorMap = /* @__PURE__ */ new Map();
20
26
  if (!transportEntry.location) {
21
27
  throw new Error(
@@ -44,42 +50,47 @@ var index = {
44
50
  let wsExecutor = wsExecutorMap.get(hash);
45
51
  if (!wsExecutor) {
46
52
  const executorLogger = logger?.child("GraphQL WS").child(hash);
47
- wsExecutor = executorGraphqlWs.buildGraphQLWSExecutor({
48
- headers,
49
- url: wsUrl,
50
- lazy: true,
51
- lazyCloseTimeout: 3e3,
52
- ...transportEntry.options,
53
- connectionParams,
54
- on: {
55
- connecting(isRetry) {
56
- executorLogger?.debug("connecting", { isRetry });
57
- },
58
- opened(socket) {
59
- executorLogger?.debug("opened", { socket });
60
- },
61
- connected(socket, payload) {
62
- executorLogger?.debug("connected", { socket, payload });
63
- },
64
- ping(received, payload) {
65
- executorLogger?.debug("ping", { received, payload });
66
- },
67
- pong(received, payload) {
68
- executorLogger?.debug("pong", { received, payload });
69
- },
70
- message(message) {
71
- executorLogger?.debug("message", { message });
72
- },
73
- closed(event) {
74
- executorLogger?.debug("closed", { event });
75
- wsExecutorMap.delete(hash);
76
- },
77
- error(error) {
78
- executorLogger?.debug("error", { error });
53
+ wsExecutor = buildExecutor(
54
+ graphqlWs.createClient({
55
+ webSocketImpl: headers ? class WebSocketWithHeaders extends WebSocket__default.default {
56
+ constructor(url, protocol) {
57
+ super(url, protocol, { headers });
58
+ }
59
+ } : WebSocket__default.default,
60
+ url: wsUrl,
61
+ lazy: true,
62
+ lazyCloseTimeout: 3e3,
63
+ ...transportEntry.options,
64
+ connectionParams,
65
+ on: {
66
+ connecting(isRetry) {
67
+ executorLogger?.debug("connecting", { isRetry });
68
+ },
69
+ opened(socket) {
70
+ executorLogger?.debug("opened", { socket });
71
+ },
72
+ connected(socket, payload) {
73
+ executorLogger?.debug("connected", { socket, payload });
74
+ },
75
+ ping(received, payload) {
76
+ executorLogger?.debug("ping", { received, payload });
77
+ },
78
+ pong(received, payload) {
79
+ executorLogger?.debug("pong", { received, payload });
80
+ },
81
+ message(message) {
82
+ executorLogger?.debug("message", { message });
83
+ },
84
+ closed(event) {
85
+ executorLogger?.debug("closed", { event });
86
+ wsExecutorMap.delete(hash);
87
+ },
88
+ error(error) {
89
+ executorLogger?.debug("error", { error });
90
+ }
79
91
  }
80
- },
81
- onClient
82
- });
92
+ })
93
+ );
83
94
  wsExecutorMap.set(hash, wsExecutor);
84
95
  }
85
96
  return wsExecutor(execReq);
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as _graphql_mesh_transport_common from '@graphql-mesh/transport-common';
2
2
  import { DisposableExecutor } from '@graphql-mesh/transport-common';
3
+ import { DisposableAsyncExecutor } from '@graphql-tools/utils';
3
4
  import { Client } from 'graphql-ws';
4
5
 
5
6
  interface WSTransportOptions {
@@ -11,7 +12,7 @@ interface WSTransportOptions {
11
12
  connectionParams?: Record<string, string>;
12
13
  }
13
14
  declare const _default: {
14
- getSubgraphExecutor({ transportEntry, logger }: _graphql_mesh_transport_common.TransportGetSubgraphExecutorOptions<WSTransportOptions>, onClient?: (client: Client) => void): DisposableExecutor & AsyncDisposable;
15
+ getSubgraphExecutor({ transportEntry, logger }: _graphql_mesh_transport_common.TransportGetSubgraphExecutorOptions<WSTransportOptions>, buildExecutor?: (client: Client) => DisposableAsyncExecutor): DisposableExecutor & AsyncDisposable;
15
16
  };
16
17
 
17
18
  export { type WSTransportOptions, _default as default };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as _graphql_mesh_transport_common from '@graphql-mesh/transport-common';
2
2
  import { DisposableExecutor } from '@graphql-mesh/transport-common';
3
+ import { DisposableAsyncExecutor } from '@graphql-tools/utils';
3
4
  import { Client } from 'graphql-ws';
4
5
 
5
6
  interface WSTransportOptions {
@@ -11,7 +12,7 @@ interface WSTransportOptions {
11
12
  connectionParams?: Record<string, string>;
12
13
  }
13
14
  declare const _default: {
14
- getSubgraphExecutor({ transportEntry, logger }: _graphql_mesh_transport_common.TransportGetSubgraphExecutorOptions<WSTransportOptions>, onClient?: (client: Client) => void): DisposableExecutor & AsyncDisposable;
15
+ getSubgraphExecutor({ transportEntry, logger }: _graphql_mesh_transport_common.TransportGetSubgraphExecutorOptions<WSTransportOptions>, buildExecutor?: (client: Client) => DisposableAsyncExecutor): DisposableExecutor & AsyncDisposable;
15
16
  };
16
17
 
17
18
  export { type WSTransportOptions, _default as default };
package/dist/index.js CHANGED
@@ -2,6 +2,8 @@ import { process } from '@graphql-mesh/cross-helpers';
2
2
  import { getInterpolatedHeadersFactory } from '@graphql-mesh/string-interpolation';
3
3
  import { makeAsyncDisposable, isDisposable, dispose } from '@graphql-mesh/utils';
4
4
  import { buildGraphQLWSExecutor } from '@graphql-tools/executor-graphql-ws';
5
+ import { createClient } from 'graphql-ws';
6
+ import WebSocket from 'isomorphic-ws';
5
7
 
6
8
  function switchProtocols(url) {
7
9
  if (url.startsWith("https://")) {
@@ -13,7 +15,7 @@ function switchProtocols(url) {
13
15
  return url;
14
16
  }
15
17
  var index = {
16
- getSubgraphExecutor({ transportEntry, logger }, onClient) {
18
+ getSubgraphExecutor({ transportEntry, logger }, buildExecutor = buildGraphQLWSExecutor) {
17
19
  const wsExecutorMap = /* @__PURE__ */ new Map();
18
20
  if (!transportEntry.location) {
19
21
  throw new Error(
@@ -42,42 +44,47 @@ var index = {
42
44
  let wsExecutor = wsExecutorMap.get(hash);
43
45
  if (!wsExecutor) {
44
46
  const executorLogger = logger?.child("GraphQL WS").child(hash);
45
- wsExecutor = buildGraphQLWSExecutor({
46
- headers,
47
- url: wsUrl,
48
- lazy: true,
49
- lazyCloseTimeout: 3e3,
50
- ...transportEntry.options,
51
- connectionParams,
52
- on: {
53
- connecting(isRetry) {
54
- executorLogger?.debug("connecting", { isRetry });
55
- },
56
- opened(socket) {
57
- executorLogger?.debug("opened", { socket });
58
- },
59
- connected(socket, payload) {
60
- executorLogger?.debug("connected", { socket, payload });
61
- },
62
- ping(received, payload) {
63
- executorLogger?.debug("ping", { received, payload });
64
- },
65
- pong(received, payload) {
66
- executorLogger?.debug("pong", { received, payload });
67
- },
68
- message(message) {
69
- executorLogger?.debug("message", { message });
70
- },
71
- closed(event) {
72
- executorLogger?.debug("closed", { event });
73
- wsExecutorMap.delete(hash);
74
- },
75
- error(error) {
76
- executorLogger?.debug("error", { error });
47
+ wsExecutor = buildExecutor(
48
+ createClient({
49
+ webSocketImpl: headers ? class WebSocketWithHeaders extends WebSocket {
50
+ constructor(url, protocol) {
51
+ super(url, protocol, { headers });
52
+ }
53
+ } : WebSocket,
54
+ url: wsUrl,
55
+ lazy: true,
56
+ lazyCloseTimeout: 3e3,
57
+ ...transportEntry.options,
58
+ connectionParams,
59
+ on: {
60
+ connecting(isRetry) {
61
+ executorLogger?.debug("connecting", { isRetry });
62
+ },
63
+ opened(socket) {
64
+ executorLogger?.debug("opened", { socket });
65
+ },
66
+ connected(socket, payload) {
67
+ executorLogger?.debug("connected", { socket, payload });
68
+ },
69
+ ping(received, payload) {
70
+ executorLogger?.debug("ping", { received, payload });
71
+ },
72
+ pong(received, payload) {
73
+ executorLogger?.debug("pong", { received, payload });
74
+ },
75
+ message(message) {
76
+ executorLogger?.debug("message", { message });
77
+ },
78
+ closed(event) {
79
+ executorLogger?.debug("closed", { event });
80
+ wsExecutorMap.delete(hash);
81
+ },
82
+ error(error) {
83
+ executorLogger?.debug("error", { error });
84
+ }
77
85
  }
78
- },
79
- onClient
80
- });
86
+ })
87
+ );
81
88
  wsExecutorMap.set(hash, wsExecutor);
82
89
  }
83
90
  return wsExecutor(execReq);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-mesh/transport-ws",
3
- "version": "1.0.1-alpha-4105c094996f232c2b96db211bb33770260fcaef",
3
+ "version": "1.0.1-rc-e0761af90892ebf921391882f5be47de39fb638c",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,12 +44,13 @@
44
44
  "dependencies": {
45
45
  "@graphql-mesh/cross-helpers": "^0.4.9",
46
46
  "@graphql-mesh/string-interpolation": "^0.5.6",
47
- "@graphql-mesh/transport-common": "0.7.28-alpha-4105c094996f232c2b96db211bb33770260fcaef",
47
+ "@graphql-mesh/transport-common": "^0.7.27",
48
48
  "@graphql-mesh/types": "^0.103.6",
49
49
  "@graphql-mesh/utils": "^0.103.6",
50
- "@graphql-tools/executor-graphql-ws": "2.0.1-alpha-4105c094996f232c2b96db211bb33770260fcaef",
50
+ "@graphql-tools/executor-graphql-ws": "2.0.1-rc-e0761af90892ebf921391882f5be47de39fb638c",
51
51
  "@graphql-tools/utils": "^10.7.0",
52
52
  "graphql-ws": "^6.0.3",
53
+ "isomorphic-ws": "^5.0.0",
53
54
  "tslib": "^2.8.1",
54
55
  "ws": "^8.18.0"
55
56
  },