@urql/exchange-execute
An exchange for executing queries against a local schema in urql
@urql/exchange-execute
is an exchange for the urql
GraphQL client which executes queries against a local schema.
This is a replacement for the default fetchExchange which sends queries over HTTP/S to be executed remotely.
Quick Start Guide
First install @urql/exchange-execute
alongside urql
:
yarn add @urql/exchange-execute
npm install --save @urql/exchange-execute
You'll then need to add the executeExchange
, that this package exposes, to your urql
Client,
by replacing the default fetch exchange with it:
import { createClient, cacheExchange } from 'urql';
import { executeExchange } from '@urql/exchange-execute';
const client = createClient({
url: 'http://localhost:1234/graphql',
exchanges: [
cacheExchange,
executeExchange({
}),
],
});
Usage
The exchange takes the same arguments as the execute function provided by graphql-js.
Here's a brief example of how it might be used:
import { buildSchema } from 'graphql';
const schema = buildSchema(`
type Todo {
id: ID!
text: String!
}
type Query {
todos: [Todo]!
}
type Mutation {
addTodo(text: String!): Todo!
}
`);
let todos = [];
const rootValue = {
todos: () => todos,
addTodo: (_, args) => {
const todo = { id: todos.length.toString(), ...args };
todos = [...todos, todo];
return todo;
}
}
executeExchange({
schema,
rootValue,
}),