Custom Fetch
This examples shows how to leverage the extension system to override the "exchange" hook's default fetch implementation.
ts
import { Graffle } from 'graffle'
const graffle = Graffle
.create()
.transport({ url: `http://localhost:3000/graphql` })
.anyware(({ exchange }) =>
exchange({
using: {
fetch: async () => {
return new Response(JSON.stringify({ data: { pokemon: [{ name: `Pokemon Mocked!` }] } }))
},
},
})
)
const data = await graffle.gql`{ pokemon { name } }`.send()
console.log(data)
Outputs
json
{
"pokemon": [
{
"name": "Pokemon Mocked!"
}
]
}