Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update dependency graphql-ws to v6 #2375

Merged
merged 1 commit into from
Jan 15, 2025
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 15, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
graphql-ws (source) ^5.0.0 -> ^6.0.0 age adoption passing confidence

Release Notes

enisdenjo/graphql-ws (graphql-ws)

v6.0.0

Compare Source

Major Changes
Migrating from v5 to v6
import { makeHandler } from 'graphql-ws/use/@​fastify/websocket';

makeHandler({
  schema(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  context(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onConnect(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onDisconnect(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onClose(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onSubscribe(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onOperation(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onError(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onNext(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onComplete(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
});
Migrating from v5 to v6

Simply remove the /lib/ part from your graphql-ws imports that use a handler.

ws
- import { useServer } from 'graphql-ws/lib/use/ws';
+ import { useServer } from 'graphql-ws/use/ws';
uWebSockets.js
- import { makeBehavior } from 'graphql-ws/lib/use/uWebSockets';
+ import { makeBehavior } from 'graphql-ws/use/uWebSockets';
@​fastify/websocket
- import { makeHandler } from 'graphql-ws/lib/use/@​fastify/websocket';
+ import { makeHandler } from 'graphql-ws/use/@​fastify/websocket';
Bun
- import { handleProtocols, makeHandler } from 'graphql-ws/lib/use/bun';
+ import { handleProtocols, makeHandler } from 'graphql-ws/use/bun';
Deno
- import { makeHandler } from 'https://esm.sh/graphql-ws/lib/use/deno';
+ import { makeHandler } from 'https://esm.sh/graphql-ws/use/deno';
  • #​613 3f11aba Thanks @​enisdenjo! - ErrorMessage uses and onError returns GraphQLFormattedError (instead of GraphQLError)

    Thanks @​benjie for working on this in #​599

  • #​613 3f11aba Thanks @​enisdenjo! - Least supported Node version is v20

    Node v10 has been deprecated for years now. There is no reason to support it. Bumping the engine to the current LTS (v20) also allows the code to be leaner and use less polyfills.

  • #​613 3f11aba Thanks @​enisdenjo! - Least supported graphql peer dependency is ^15.10.1 and ^16

    Users are advised to use the latest of graphql because of various improvements in performance and security.

  • #​613 3f11aba Thanks @​enisdenjo! - NextMessage uses and onNext returns FormattedExecutionResult (instead of ExecutionResult)

  • #​613 3f11aba Thanks @​enisdenjo! - schema, context, onSubscribe, onOperation, onError, onNext and onComplete hooks don't have the full accompanying message anymore, only the ID and the relevant part from the message

    There is really no need to pass the full SubscribeMessage to the onSubscribe hook. The only relevant parts from the message are the id and the payload, the type is useless since the hook inherently has it (onNext is next type, onError is error type, etc).

    The actual techincal reason for not having the full message is to avoid serialising results and errors twice. Both onNext and onError allow the user to augment the result and return it to be used instead. onNext originally had the NextMessage argument which already has the FormattedExecutionResult, and onError originally had the ErrorMessage argument which already has the GraphQLFormattedError, and they both also returned FormattedExecutionResult and GraphQLFormattedError respectivelly - meaning, if the user serialised the results - the serialisation would happen twice.

    Additionally, the onOperation, onError, onNext and onComplete now have the payload which is the SubscribeMessage.payload (SubscribePayload) for easier access to the original query as well as execution params extensions.

Migrating from v5 to v6
schema
import { ExecutionArgs } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- schema(ctx, message, argsWithoutSchema: Omit<ExecutionArgs, 'schema'>) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ schema(ctx, id, payload) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
context
import { ExecutionArgs } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- context(ctx, message, args: ExecutionArgs) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ context(ctx, id, payload, args: ExecutionArgs) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
onSubscribe
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onSubscribe(ctx, message) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ onSubscribe(ctx, id, payload) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
onOperation

The SubscribeMessage.payload is not useful here at all, the payload has been parsed to ready-to-use graphql execution args and should be used instead.

import { ExecutionArgs } from 'graphql';
import { ServerOptions, SubscribePayload, OperationResult } from 'graphql-ws';

const opts: ServerOptions = {
- onOperation(ctx, message, args: ExecutionArgs, result: OperationResult) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ onOperation(ctx, id, payload, args: ExecutionArgs, result: OperationResult) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
onError

The ErrorMessage.payload (GraphQLFormattedError[]) is not useful here at all, the user has access to GraphQLError[] that are true instances of the error containing object references to originalErrors and other properties. The user can always convert and return GraphQLFormattedError[] by using the .toJSON() method.

import { GraphQLError, GraphQLFormattedError } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onError(ctx, message, errors) {
-   const messageId = message.id;
-   const graphqlErrors: readonly GraphQLError[] = errors;
-   const errorMessagePayload: readonly GraphQLFormattedError[] = message.payload;
- },
+ onError(ctx, id, payload, errors) {
+   const messageId = id;
+   const graphqlErrors: readonly GraphQLError[] = errors;
+   const subscribeMessagePayload: SubscribePayload = payload;
+   const errorMessagePayload: readonly GraphQLFormattedError[] = errors.map((e) => e.toJSON());
+ },
};
onNext

The NextMessage.payload (FormattedExecutionResult) is not useful here at all, the user has access to ExecutionResult that contains actual object references to error instances. The user can always convert and return FormattedExecutionResult by serialising the errors with GraphQLError.toJSON() method.

import { ExecutionArgs, ExecutionResult, FormattedExecutionResult } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onNext(ctx, message, args: ExecutionArgs, result: ExecutionResult) {
-   const messageId = message.id;
-   const nextMessagePayload: FormattedExecutionResult = message.payload;
- },
+ onNext(ctx, id, payload, args: ExecutionArgs, result: ExecutionResult) {
+   const messageId = id;
+   const subscribeMessagePayload: SubscribePayload = payload;
+   const nextMessagePayload: FormattedExecutionResult = { ...result, errors: result.errors?.map((e) => e.toJSON()) };
+ },
};
onComplete
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onComplete(ctx, message) {
-   const messageId = message.id;
- },
+ onComplete(ctx, id, payload) {
+   const messageId = id;
+   const subscribeMessagePayload: SubscribePayload = payload;
+ },
};
Migrating from v5 to v6

If you had used the suggested "ws server usage with custom subscribe method that gracefully handles thrown errors" recipe, you can simply remove it since this behaviour is now baked in.

import { subscribe } from 'graphql';
import { useServer } from 'graphql-ws/use/ws';
import { WebSocketServer } from 'ws'; // yarn add ws

const wsServer = new WebSocketServer({
  port: 4000,
  path: '/graphql',
});

useServer(
  {
    schema,
-   async subscribe(...args) {
-     const result = await subscribe(...args);
-     if ('next' in result) {
-       // is an async iterable, augment the next method to handle thrown errors
-       const originalNext = result.next;
-       result.next = async () => {
-         try {
-           return await originalNext();
-         } catch (err) {
-           // gracefully handle the error thrown from the next method
-           return { value: { errors: [err] } };
-         }
-       };
-     }
-     return result;
-   },
  },
  wsServer,
);
Migrating from v5 to v6

Replace all ocurrances of isMessage with validateMessage. Note that validateMessage throws if the message is not valid, compared with isMessage that simply returned true/false.

- import { isMessage } from 'graphql-ws';
+ import { validateMessage } from 'graphql-ws';

function isGraphQLWSMessage(val) {
- return isMessage(val);
+ try {
+   validateMessage(val);
+   return true;
+ } catch {
+   return false;
+ }
}
Migrating from v5 to v6

Replace all ocurrances of isFatalConnectionProblem with shouldRetry. Note that the result is inverted, where you returned false in isFatalConnectionProblem you should return true in shouldRetry.

import { createClient } from 'graphql-ws';

const client = createClient({
  url: 'ws://localhost:4000/graphql',
- isFatalConnectionProblem: () => false,
+ shouldRetry: () => true,
});
Minor Changes
  • #​613 3f11aba Thanks @​enisdenjo! - Client is truly zero-dependency, not even a peer dependency on graphql

    In non-browser environments, you can use only the client and not even depend on graphql by importing from graphql-ws/client.

    import { createClient } from 'graphql-ws/client';
    
    const client = createClient({
      url: 'ws://localhost:4000/graphql',
    });

    Note that, in browser envirments (and of course having your bundler use the browser package.json field), you don't have to import from graphql-ws/client - simply importing from graphql-ws will only have the createClient available.

  • #​615 29dd26a Thanks @​enisdenjo! - Define optional peer dependencies and least supported versions

    Using the peerDependencies in combination with peerDependenciesMeta configuration in package.json.

v5.16.2

Compare Source

Patch Changes

v5.16.1

Compare Source

Patch Changes

v5.16.0

Compare Source

Bug Fixes
  • server: Return all subscriptions regardless of the return invocation order (f442288)
  • server: should not send error messages if socket closes before onSubscribe hooks resolves (db47a66), closes #​539
Features
  • server: Close code and reason are optional (6ae6e6f), closes #​547

v5.15.0

Compare Source

Bug Fixes
  • client: Use TerminatedCloseEvent class extending an Error for rejecting promises when terminating (74b4ceb), closes #​531
  • server: Dispose of subscriptions on close even if added late to the subscriptions list (#​534) (e45d6b1), closes #​532
Features

5.14.3 (2023-12-20)

Bug Fixes
  • client: Use closures instead of bindings (with this) (812129d)
  • remove package.json workspaces entry in release (63a831e), closes #​524

5.14.2 (2023-10-23)

Bug Fixes
  • client: correct close code for Bad Gateway reason (#​512) (0438650)

5.14.1 (2023-09-28)

Bug Fixes
  • server: Acknowledge connection before notifying the client to avoid race conditions with slow sends (#​506) (8cb82bd), closes #​501

v5.14.3

Compare Source

Bug Fixes
  • client: Use closures instead of bindings (with this) (812129d)
  • remove package.json workspaces entry in release (63a831e), closes #​524

v5.14.2

Compare Source

Bug Fixes
  • client: correct close code for Bad Gateway reason (#​512) (0438650)

v5.14.1

Compare Source

Bug Fixes
  • server: Acknowledge connection before notifying the client to avoid race conditions with slow sends (#​506) (8cb82bd), closes #​501

v5.14.0

Compare Source

Features

5.13.1 (2023-05-15)

Bug Fixes

v5.13.1

Compare Source

Bug Fixes

v5.13.0

Compare Source

Features

5.12.1 (2023-03-31)

Bug Fixes
  • Add file extensions to imports/exports in ESM type definitions (48775be)

v5.12.1

Compare Source

Bug Fixes
  • Add file extensions to imports/exports in ESM type definitions (48775be)

v5.12.0

Compare Source

Features

5.11.3 (2023-02-01)

Bug Fixes

5.11.2 (2022-09-21)

Bug Fixes
  • Reorder types paths in package.json for better import resolution (#​406) (37263c5)

5.11.1 (2022-09-16)

Bug Fixes
  • server: Shouldn't send a complete message if client sent it (331fe47), closes #​403

v5.11.3

Compare Source

Bug Fixes

v5.11.2

Compare Source

Bug Fixes
  • Reorder types paths in package.json for better import resolution (#​406) (37263c5)

v5.11.1

Compare Source

Bug Fixes
  • server: Shouldn't send a complete message if client sent it (331fe47), closes #​403

v5.11.0

Compare Source

Features
  • client: Provide subscribe payload in generateID (d0bc6e1), closes #​398

5.10.2 (2022-09-12)

Performance Improvements

5.10.1 (2022-08-19)

Bug Fixes
  • client: Debounce close by lazyCloseTimeout (c332837), closes #​388

v5.10.2

Compare Source

Performance Improvements

v5.10.1

Compare Source

Bug Fixes
  • client: Debounce close by lazyCloseTimeout (c332837), closes #​388

v5.10.0

Compare Source

Features

5.9.1 (2022-07-01)

Bug Fixes

v5.9.1

Compare Source

Bug Fixes

v5.9.0

Compare Source

Features

5.8.2 (2022-05-12)

Bug Fixes
  • server: Should clean up subscription reservations on abrupt errors without relying on connection close (611c223)

5.8.1 (2022-04-25)

Bug Fixes
  • client: isFatalConnectionProblem defaults to undefined for using shouldRetry (9d5c573)

v5.8.2

Compare Source

Bug Fixes
  • server: Should clean up subscription reservations on abrupt errors without relying on connection close (611c223)

v5.8.1

Compare Source

Bug Fixes
  • client: isFatalConnectionProblem defaults to undefined for using shouldRetry (9d5c573)

v5.8.0

Compare Source

Features
  • client: Deprecate isFatalConnectionProblem option in favour of shouldRetry (d8dcf21)

v5.7.0

Compare Source

Features
  • client: Terminate the WebSocket abruptly and immediately (53ad515), closes #​290

5.6.4 (2022-03-24)

Bug Fixes
  • Warn about subscriptions-transport-ws clients and provide migration link (e080739), closes #​339 #​325

5.6.3 (2022-03-13)

Bug Fixes
  • client: Stop execution if connectionParams took too long and the server kicked the client off (1e94e45), closes #​331

5.6.2 (2022-02-23)

Bug Fixes
  • server: handleProtocols accepts arrays too and gracefully rejects other types (98dec1a), closes #​318

5.6.1 (2022-02-21)

Bug Fixes
  • server: Handle upgrade requests with multiple subprotocols and omit Sec-WebSocket-Protocol header if none supported (9bae064)

v5.6.4

Compare Source

Bug Fixes
  • Warn about subscriptions-transport-ws clients and provide migration link (e080739), closes #​339 #​325

v5.6.3

Compare Source

Bug Fixes
  • client: Stop execution if connectionParams took too long and the server kicked the client off (1e94e45), closes #​331

v5.6.2

Compare Source

Bug Fixes
  • server: handleProtocols accepts arrays too and gracefully rejects other types (98dec1a), closes #​318

v5.6.1

Compare Source

Bug Fixes
  • server: Handle upgrade requests with multiple subprotocols and omit Sec-WebSocket-Protocol header if none supported (9bae064)

v5.6.0

Compare Source

Features
  • TypeScript generic for connection init payload (connectionParams) (#​311) (e67cf80)

5.5.5 (2021-10-29)

Bug Fixes
  • client: Limit client emitted error close message size (2d959f6)
  • client: Report close causing internal errors to error listeners (4e7e389)

5.5.4 (2021-10-27)

Bug Fixes
  • fastify-websocket: Handle connection and socket emitted errors (71e9586)
  • fastify-websocket: Handle server emitted errors (3fa17a7)
  • ws: Handle socket emitted errors (a22c00f)
  • ws: Limit server emitted error close message size (50620df)
  • ws: Log server emitted errors to the console (0826b0a)

5.5.3 (2021-10-20)

Bug Fixes
  • client: Distinguish client connection closes (ed4d9db)

5.5.2 (2021-10-20)

Bug Fixes
  • client: Don't complete after connection error (5f829c3)
  • client: Report close error even if Complete message followed (27754b2), closes #​245

5.5.1 (2021-10-19)

Bug Fixes
  • server: Limit internal server error close message size (8479f76)
  • server: Log internal errors to the console (6ddf0d1)
  • ws,fastify-websocket: Send only on ready socket (8d13c9e)

v5.5.5

Compare Source

Bug Fixes
  • client: Limit client emitted error close message size (2d959f6)
  • client: Report close causing internal errors to error listeners (4e7e389)

v5.5.4

Compare Source

Bug Fixes
  • fastify-websocket: Handle connection and socket emitted errors (71e9586)
  • fastify-websocket: Handle server emitted errors (3fa17a7)
  • ws: Handle socket emitted errors (a22c00f)
  • ws: Limit server emitted error close message size (50620df)
  • ws: Log server emitted errors to the console (0826b0a)

v5.5.3

Compare Source

Bug Fixes
  • client: Distinguish client connection closes (ed4d9db)

v5.5.2

Compare Source

Bug Fixes
  • client: Don't complete after connection error (5f829c3)
  • client: Report close error even if Complete message followed (27754b2), closes #​245

v5.5.1

Compare Source

Bug Fixes
  • server: Limit internal server error close message size (8479f76)
  • server: Log internal errors to the console (6ddf0d1)
  • ws,fastify-websocket: Send only on ready socket (8d13c9e)

v5.5.0

Compare Source

Bug Fixes
  • Define graphql execution results (a64c91b)
  • server: Operation result can be async generator or iterable (b1fb883)
Features

5.4.1 (2021-08-26)

Bug Fixes
  • Add support for graphql@v16 (ad5aea2)
  • Sink's next callback always receives an ExecutionResult (045b402)

v5.4.1

Compare Source

Bug Fixes
  • Add support for graphql@v16 (ad5aea2)
  • Sink's next callback always receives an ExecutionResult (045b402)

v5.4.0

Compare Source

Bug Fixes
  • client: Specify and fail on fatal internal WebSocket close codes (a720125)
  • Use 4406 close code for unsupported subprotocol (1002 is an internal WebSocket close code) (df85281)
  • Use 4500 close code for internal server errors (1011 is an internal WebSocket close code) (3c0316d)
Features
  • Centralise expected close codes in CloseCode enum (d10a75c)
  • server: Add support for ws@v8 (9119153)

v5.3.0

Compare Source

Bug Fixes
  • client: ConnectionInit payload is absent if connectionParams returns nothing (98f8265)
Features
  • client: connectionParams can return undefined (a543187)
  • client: Add opened event for when a WebSocket opens (9053224)

v5.2.0

Compare Source

Features
  • server: Optional onPing and onPong message type listeners (f36066f)

5.1.2 (2021-06-09)

Bug Fixes
  • client: Return ping's payload through the response pong (ee6193a)

5.1.1 (2021-06-09)

Bug Fixes
  • server: Return ping's payload through the response pong (47730a9), closes #​117

v5.1.2

Compare Source

Bug Fixes
  • client: Return ping's payload through the response pong (ee6193a)

v5.1.1

Compare Source

Bug Fixes
  • server: Return ping's payload through the response pong (47730a9), closes #​117

v5.1.0

Compare Source

Features
  • client: disablePong option for when implementing a custom pinger (6510360), closes #​117
  • Optional payload for ping/pong message types (2fe0345), closes #​117

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

changeset-bot bot commented Jan 15, 2025

⚠️ No Changeset found

Latest commit: 2600b39

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

🚀 Snapshot Release (alpha)

The latest changes of this PR are available as alpha on npm (based on the declared changesets):

Package Version Info
@envelop/apollo-federation 5.0.1-alpha-20250115180319-2600b39b554c9b615436a8899e7a659f6d66caaf npm ↗︎ unpkg ↗︎
@envelop/response-cache-redis 4.1.3-alpha-20250115180319-2600b39b554c9b615436a8899e7a659f6d66caaf npm ↗︎ unpkg ↗︎

@theguild-bot
Copy link
Collaborator

✅ Benchmark Results

     ✓ no_errors
     ✓ expected_result

     checks.............................................: 100.00% ✓ 870138     ✗ 0     
     ✓ { mode:envelop-cache-and-no-internal-tracing }...: 100.00% ✓ 210416     ✗ 0     
     ✓ { mode:envelop-cache-jit }.......................: 100.00% ✓ 338700     ✗ 0     
     ✓ { mode:envelop-just-cache }......................: 100.00% ✓ 208250     ✗ 0     
     ✓ { mode:graphql-js }..............................: 100.00% ✓ 112772     ✗ 0     
     data_received......................................: 3.3 GB  28 MB/s
     data_sent..........................................: 189 MB  1.6 MB/s
     envelop_init.......................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     envelop_total......................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     event_loop_lag.....................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-and-no-internal-tracing }...: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     graphql_context....................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     graphql_execute....................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     graphql_parse......................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     graphql_validate...................................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-cache-jit }.......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:envelop-just-cache }......................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     ✓ { mode:graphql-js }..............................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     http_req_blocked...................................: avg=2.92µs  min=1.24µs   med=2.58µs  max=4.89ms  p(90)=3.44µs  p(95)=3.78µs 
     http_req_connecting................................: avg=25ns    min=0s       med=0s      max=1.46ms  p(90)=0s      p(95)=0s     
     http_req_duration..................................: avg=2.46ms  min=171.64µs med=2.16ms  max=78.48ms p(90)=4.52ms  p(95)=4.98ms 
       { expected_response:true }.......................: avg=2.46ms  min=171.64µs med=2.16ms  max=78.48ms p(90)=4.52ms  p(95)=4.98ms 
     ✓ { mode:envelop-cache-and-no-internal-tracing }...: avg=2.57ms  min=354.75µs med=2.28ms  max=14.4ms  p(90)=4.49ms  p(95)=4.84ms 
     ✓ { mode:envelop-cache-jit }.......................: avg=1.46ms  min=171.64µs med=1.21ms  max=13.59ms p(90)=2.44ms  p(95)=2.58ms 
     ✓ { mode:envelop-just-cache }......................: avg=2.58ms  min=393.59µs med=2.3ms   max=34.82ms p(90)=4.48ms  p(95)=4.86ms 
     ✓ { mode:graphql-js }..............................: avg=5.04ms  min=1.08ms   med=4.35ms  max=78.48ms p(90)=8.46ms  p(95)=9.13ms 
     http_req_failed....................................: 0.00%   ✓ 0          ✗ 435069
     http_req_receiving.................................: avg=33.51µs min=13.56µs  med=29.18µs max=6.37ms  p(90)=44.55µs p(95)=49.06µs
     http_req_sending...................................: avg=12.06µs min=4.46µs   med=9.9µs   max=7.77ms  p(90)=14.1µs  p(95)=18.1µs 
     http_req_tls_handshaking...........................: avg=0s      min=0s       med=0s      max=0s      p(90)=0s      p(95)=0s     
     http_req_waiting...................................: avg=2.42ms  min=138.95µs med=2.12ms  max=78.39ms p(90)=4.47ms  p(95)=4.93ms 
     http_reqs..........................................: 435069  3625.28151/s
     iteration_duration.................................: avg=2.75ms  min=362.55µs med=2.43ms  max=79.76ms p(90)=4.8ms   p(95)=5.27ms 
     iterations.........................................: 435069  3625.28151/s
     vus................................................: 10      min=10       max=10  
     vus_max............................................: 20      min=20       max=20  

Copy link
Contributor

💻 Website Preview

The latest changes are available as preview in: https://7fa5ec5e.envelop.pages.dev

@ardatan ardatan merged commit 9b62b6e into main Jan 15, 2025
13 checks passed
@renovate renovate bot deleted the renovate/graphql-ws-6.x branch January 15, 2025 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants