UNPKG

@shopify/react-graphql

Version:

Tools for creating type-safe and asynchronous GraphQL components for React

42 lines (37 loc) 910 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var async = require('@shopify/async'); var reactAsync = require('@shopify/react-async'); var backgroundQuery = require('../hooks/background-query.js'); function createAsyncQuery({ id, load }) { const resolver = async.createResolver({ id, load }); function usePreload() { return reactAsync.useAsync(resolver, { assets: reactAsync.AssetTiming.NextPage }).load; } function usePrefetch(options) { const load = usePreload(); return backgroundQuery.useBackgroundQuery(load, options); } function useKeepFresh(options) { const load = usePreload(); return backgroundQuery.useBackgroundQuery(load, { pollInterval: 10000, ...options }); } return { resolver, usePreload, usePrefetch, useKeepFresh }; } exports.createAsyncQuery = createAsyncQuery;