@graphql-tools/executor-graphql-ws 1.0.2 → 1.1.0-rc-20230704113327-1a67c9ee

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/cjs/index.js CHANGED
@@ -11,6 +11,7 @@ function isClient(client) {
11
11
  }
12
12
  function buildGraphQLWSExecutor(clientOptionsOrClient) {
13
13
  let graphqlWSClient;
14
+ let executorConnectionParams = {};
14
15
  if (isClient(clientOptionsOrClient)) {
15
16
  graphqlWSClient = clientOptionsOrClient;
16
17
  }
@@ -18,6 +19,12 @@ function buildGraphQLWSExecutor(clientOptionsOrClient) {
18
19
  graphqlWSClient = (0, graphql_ws_1.createClient)({
19
20
  webSocketImpl: isomorphic_ws_1.default,
20
21
  lazy: true,
22
+ connectionParams: () => {
23
+ const optionsConnectionParams = (typeof clientOptionsOrClient.connectionParams === 'function'
24
+ ? clientOptionsOrClient.connectionParams()
25
+ : clientOptionsOrClient.connectionParams) || {};
26
+ return Object.assign(optionsConnectionParams, executorConnectionParams);
27
+ },
21
28
  ...clientOptionsOrClient,
22
29
  });
23
30
  if (clientOptionsOrClient.onClient) {
@@ -26,6 +33,11 @@ function buildGraphQLWSExecutor(clientOptionsOrClient) {
26
33
  }
27
34
  return function GraphQLWSExecutor(executionRequest) {
28
35
  const { document, variables, operationName, extensions, operationType = (0, utils_1.getOperationASTFromRequest)(executionRequest).operation, } = executionRequest;
36
+ // additional connection params can be supplied through the "connectionParams" field in extensions.
37
+ // TODO: connection params only from the FIRST operation in lazy mode will be used (detect connectionParams changes and reconnect, too implicit?)
38
+ if (extensions?.['connectionParams'] && typeof extensions?.['connectionParams'] === 'object') {
39
+ executorConnectionParams = Object.assign(executorConnectionParams, extensions['connectionParams']);
40
+ }
29
41
  const query = (0, graphql_1.print)(document);
30
42
  const iterableIterator = graphqlWSClient.iterate({
31
43
  query,
package/esm/index.js CHANGED
@@ -7,6 +7,7 @@ function isClient(client) {
7
7
  }
8
8
  export function buildGraphQLWSExecutor(clientOptionsOrClient) {
9
9
  let graphqlWSClient;
10
+ let executorConnectionParams = {};
10
11
  if (isClient(clientOptionsOrClient)) {
11
12
  graphqlWSClient = clientOptionsOrClient;
12
13
  }
@@ -14,6 +15,12 @@ export function buildGraphQLWSExecutor(clientOptionsOrClient) {
14
15
  graphqlWSClient = createClient({
15
16
  webSocketImpl: WebSocket,
16
17
  lazy: true,
18
+ connectionParams: () => {
19
+ const optionsConnectionParams = (typeof clientOptionsOrClient.connectionParams === 'function'
20
+ ? clientOptionsOrClient.connectionParams()
21
+ : clientOptionsOrClient.connectionParams) || {};
22
+ return Object.assign(optionsConnectionParams, executorConnectionParams);
23
+ },
17
24
  ...clientOptionsOrClient,
18
25
  });
19
26
  if (clientOptionsOrClient.onClient) {
@@ -22,6 +29,11 @@ export function buildGraphQLWSExecutor(clientOptionsOrClient) {
22
29
  }
23
30
  return function GraphQLWSExecutor(executionRequest) {
24
31
  const { document, variables, operationName, extensions, operationType = getOperationASTFromRequest(executionRequest).operation, } = executionRequest;
32
+ // additional connection params can be supplied through the "connectionParams" field in extensions.
33
+ // TODO: connection params only from the FIRST operation in lazy mode will be used (detect connectionParams changes and reconnect, too implicit?)
34
+ if (extensions?.['connectionParams'] && typeof extensions?.['connectionParams'] === 'object') {
35
+ executorConnectionParams = Object.assign(executorConnectionParams, extensions['connectionParams']);
36
+ }
25
37
  const query = print(document);
26
38
  const iterableIterator = graphqlWSClient.iterate({
27
39
  query,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-tools/executor-graphql-ws",
3
- "version": "1.0.2",
3
+ "version": "1.1.0-rc-20230704113327-1a67c9ee",
4
4
  "description": "A set of utils for faster development of GraphQL tools",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {