-
-
Notifications
You must be signed in to change notification settings - Fork 21
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Hello Jayden
Thank you for this great module. I just switch from Apollo-client to graphQL-react and it feels much better!
I am using graphQl-react in a non-react app. Currently, I have to install react and react-dom to use it.
Would you consider extracting the GraphQL
class in a separate npm module with no dependencies on react?
Thank you
Also, here is an example code of the GraphQL client running in node.
This could be helpful to have this example in the docs,
at least for me :-).
const fetch = require('node-fetch')
const { GraphQL } = require('graphql-react')
const graphql = new GraphQL()
if (!globalThis.fetch) {
globalThis.fetch = fetch
}
const apiFetch = query => async variables => {
try {
const res = await graphql.operate({
operation: { query, variables },
fetchOptionsOverride: options => {
options.url = 'https://graphql-pokemon.now.sh'
}
})
const value = await res.cacheValuePromise
if (value.graphQLErrors) throw value.graphQLErrors[0]
if (value.fetchError) throw value.fetchError
if (value.httpError) throw value.httpError
if (value.parseError) throw value.parseError
return value.data
} catch (e) {
const errorMessage = `Erreur API : ${e.message}`
console.error(e)
throw errorMessage
}
}
const pokemon = apiFetch(
'query Pokemon($name: String!) { pokemon(name: $name) { image } }'
)
const run = async () => {
const res = await pokemon({ name: 'pikachu' })
console.log(res)
}
run()
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request