picosanity-graphql
Tiny GraphQL request library for Sanity for Node.js and modern browsers.
Targets
- Node.js >= 8
- Modern browsers (Edge >= 14, Chrome, Safari, Firefox etc)
Features
- Easy configuration (projectId/dataset instead of URLs)
- Automatically uses GET-requests if within query size limit (prevents CORS preflight request)
- Automatically uses API CDN if within query size limit (faster responses if query is cached)
- Supports running middleware on passed queries before requesting
Installation
npm install --save picosanity-graphql
Usage
const PicoGraphQL = const client = projectId: 'myProjectId' dataset: 'myDataset' client
Compressing queries
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 = const PicoGraphQL = const client = projectId: 'myProjectId' dataset: 'myDataset' middleware: compress // ...or call `.use(compress)` on an existing client instance client
UMD bundle
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
License
MIT © Espen Hovlandsdal