Tiny GraphQL request library for Sanity
MIT License
Tiny GraphQL request library for Sanity for Node.js and modern browsers.
npm install --save picosanity-graphql
const PicoGraphQL = require('picosanity-graphql')
const client = new PicoGraphQL({
projectId: 'myProjectId',
dataset: 'myDataset'
})
client
.fetch(
`
query($limit: Int!) {
allBlogPost(limit: $limit) {
_id
title
}
}`,
{limit: 5}
)
.then(res => console.log(res.data))
.catch(err => console.error('Oh noes: %s', err.message))
If you have a lot of whitespace in your queries (from indentation and such), I recommend you use a module such as graphql-query-compress to compress/minify the query down to the essentials.
This can often lead to a huge difference in query size and will often lead to the queries being executed as GET-requests instead of POST-requests, which prevents an extra CORS pre-flight request.
To use the mentioned module, first install it as a dependency (npm install graphql-query-compress
), then tell the client to use it:
const compress = require('graphql-query-compress')
const PicoGraphQL = require('picosanity-graphql')
const client = new PicoGraphQL({
projectId: 'myProjectId',
dataset: 'myDataset',
middleware: [compress]
// ...or call `.use(compress)` on an existing client instance
})
client
.fetch(longQuery)
.then(res => console.log(res.data))
.catch(err => console.error('Oh noes: %s', err.message))
You can load this module as a UMD-bundle from unpkg - https://unpkg.com/picosanity-graphql
If used in a global browser context, it will be available as window.PicoSanityGraphQL
MIT © Espen Hovlandsdal