UNPKG

@shopify/react-graphql

Version:

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

42 lines (35 loc) 885 B
import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js'; import { createResolver } from '@shopify/async'; import { useAsync, AssetTiming } from '@shopify/react-async'; import { useBackgroundQuery } from '../hooks/background-query.mjs'; function createAsyncQuery({ id, load }) { const resolver = createResolver({ id, load }); function usePreload() { return useAsync(resolver, { assets: AssetTiming.NextPage }).load; } function usePrefetch(options) { const load = usePreload(); return useBackgroundQuery(load, options); } function useKeepFresh(options) { const load = usePreload(); return useBackgroundQuery(load, _objectSpread2({ pollInterval: 10000 }, options)); } return { resolver, usePreload, usePrefetch, useKeepFresh }; } export { createAsyncQuery };