Catch the highlights of GraphQLConf 2023! Click for recordings. Or check out our recap blog post.
Docs
Plugins
Snapshot

Snapshot Plugin

The snapshot plugin allows applying snapshot for development usage.

The snapshot plugin writes the responses of your remote data source to your file system and then uses it instead of re-fetching it every time. It's also helpful because you can easily manipulate your data manually and see how your API mesh responds.

To get started with this plugin, install it:

npm i @graphql-mesh/plugin-snapshot

How to use?

Add the following configuration to your Mesh config file:

.meshrc.yaml
plugins:
  - snapshot:
      if: "process.env.NODE_ENV != 'production'"
      apply:
        - https://my-remote-api.com/*
      outputDir: __snapshots__

The following snapshot will work if you are in a development environment (see the if command).

To modify your snapshots and change the responses, go to __snapshots__ and modify the responses under those files.

CodeSandBox Example

You can check out our example that uses SOAP Handler with snapshot plugin.

Config API Reference

  • if - - Expression for when to activate this extension. Value can be a valid JS expression string or a boolean One of:
    • String
    • Boolean
  • apply (type: Array of String, required) - HTTP URL pattern to be applied For example; apply: - http://my-remote-api.com/* <- * will apply this extension to all paths of remote API
  • outputDir (type: String, required) - Path to the directory of the generated snapshot files