Graphql Yoga Versions Save

🧘 Rewrite of a fully-featured GraphQL Server with focus on easy setup, performance & great developer experience. The core of Yoga implements WHATWG Fetch API and can run/deploy on any JS environment.

release-1715159920198

1 week ago

[email protected]

Patch Changes

@graphql-yoga/[email protected]

[email protected]

Patch Changes

  • #3237 3324bbab Thanks @ardatan! - dependencies updates:

  • #3237 3324bbab Thanks @ardatan! - In such environments like CloudFlare Workers, the request object in the context always has the initial request object, so it was impossible to access the actual Request object from the execution context. Now Yoga ensures that the request in the context is the same with the actual Request.

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Major Changes

  • #3251 a8ddac54 Thanks @EmrysMyrddin! - Adds a cache for metrics definition (Summary, Histogram and Counter).

    Fixes an issue preventing this plugin to be initialized multiple times, leading to metrics duplication error (https://github.com/ardatan/graphql-mesh/issues/6545).

    Behavior Breaking Change:

    Due to Prometheus client API limitations, a metric is only defined once for a given registry. This means that if the configuration of the metrics, it will be silently ignored on plugin re-initialization.

    This is to avoid potential loss of metrics data produced between the plugin re-initialization and the last pull by the prometheus agent.

    If you need to be sure metrics configuration is up to date after a plugin re-initialization, you can either:

    • restart the whole node process instead of just recreating a graphql server at runtime
    • clear the registry using registry.clear() before plugin re-initialization:
      function usePrometheusWithReset() {
        registry.clear()
        return usePrometheus({ ... })
      }
      
    • use a new registry for each plugin instance:
      function usePrometheusWithRegistry() {
        const registry = new Registry()
        return usePrometheus({
          registry,
          ...
        })
      }
      

    Keep in mind that this implies potential data loss in pull mode.

    API Breaking Change:

    To ensure metrics from being registered multiple times on the same registry, the signature of createHistogram, createSummary and createCounter have been changed to now include the registry as a mandatory parameter.

    If you were customizing metrics parameters, you will need to update the metric definitions

    usePrometheus({
      execute: createHistogram({
    +   registry: registry
        histogram: new Histogram({
          name: 'my_custom_name',
          help: 'HELP ME',
          labelNames: ['opText'] as const,
    -     registers: [registry],
        }),
        fillLabelsFn: () => {}
      }),
      requestCount: createCounter({
    +   registry: registry
        histogram: new Histogram({
          name: 'my_custom_name',
          help: 'HELP ME',
          labelNames: ['opText'] as const,
    -     registers: [registry],
        }),
        fillLabelsFn: () => {}
      }),
      requestSummary: createSummary({
    +   registry: registry
        histogram: new Histogram({
          name: 'my_custom_name',
          help: 'HELP ME',
          labelNames: ['opText'] as const,
    -     registers: [registry],
        }),
        fillLabelsFn: () => {}
      }),
    })
    

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

release-1711751967019

1 month ago

[email protected]

Patch Changes

@graphql-yoga/[email protected]

[email protected]

Minor Changes

  • #3197 f775b341 Thanks @n1ru4l! - Experimental support for aborting GraphQL execution when the HTTP request is canceled.

    The execution of subsequent GraphQL resolvers is now aborted if the incoming HTTP request is canceled from the client side. This reduces the load of your API in case incoming requests with deep GraphQL operation selection sets are canceled.

    import { createYoga, useExecutionCancellation } from 'graphql-yoga'
    
    const yoga = createYoga({
      plugins: [useExecutionCancellation()]
    })
    

    Learn more in our docs

    Action Required In order to benefit from this new feature, you need to update your integration setup for Fastify, Koa and Hapi.

    - const response = await yoga.handleNodeRequest(req, { ... })
    + const response = await yoga.handleNodeRequestAndResponse(req, res, { ... })
    

    Please refer to the corresponding integration guides for examples.

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

release-1710339740692

2 months ago

[email protected]

Patch Changes

@graphql-yoga/[email protected]

[email protected]

Minor Changes

  • #3196 71db7548 Thanks @n1ru4l! - Allow setting async iterable within onParams hook setResult function

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Minor Changes

  • #3183 6725f8e7 Thanks @n1ru4l! - Inject request into extractPersistedOperationId function for allowing to extract the ID based on request header, query parameters or request path.

Patch Changes

@graphql-yoga/[email protected]

Minor Changes

  • 9047d76d Thanks @ardatan! - Ability to rename the metrics without creating a new histogram

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

release-1707049234397

3 months ago

@graphql-yoga/[email protected]

Major Changes

release-1705590560943

3 months ago

@graphql-yoga/[email protected]

Patch Changes

release-1705415020500

3 months ago

@graphql-yoga/[email protected]

Minor Changes

  • #3164 353c0fed Thanks @n1ru4l! - Add servedFromResponseCache symbol property to responses served from the response cache in order to allow other plugins to determine, whether a response was served from the cache and apply custom logic based on that.

release-1704296367444

4 months ago

[email protected]

Patch Changes

@graphql-yoga/[email protected]

[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

release-1703259759953

4 months ago

@graphql-yoga/[email protected]

Patch Changes

  • #3149 b9d2afcc Thanks @EmrysMyrddin! - Fix unauthorized error resulting in an response with 500 status or in a server crash (depending on actual HTTP server implementation used).

release-1703245294977

4 months ago

[email protected]

Patch Changes

@graphql-yoga/[email protected]

[email protected]

Minor Changes

@graphql-yoga/[email protected]

Minor Changes

  • #2992 b1f0e3a2 Thanks @magrinj! - Adding support of conditionalSchema option. (Currently without support for WebSocket subscriptions)

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

@graphql-yoga/[email protected]

Patch Changes

release-1703016319040

4 months ago

@graphql-yoga/[email protected]

Patch Changes