UNPKG

@gqty/solid

Version:

The No-GraphQL Client for React

2 lines (1 loc) 4.21 kB
var V=Object.create;var w=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var J=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var K=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of U(t))!H.call(e,o)&&o!==r&&w(e,o,{get:()=>t[o],enumerable:!(n=z(t,o))||n.enumerable});return e};var X=(e,t,r)=>(r=e!=null?V(W(e)):{},K(t||!e||!e.__esModule?w(r,"default",{value:e,enumerable:!0}):r,e));var F=J((ve,B)=>{"use strict";var Y=()=>{let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e};B.exports=Y});var k=(e,t)=>(r,n)=>(...o)=>e.resolve(({mutation:i})=>r(i,...o),{...t?.defaults,...n});var A=typeof queueMicrotask=="function"?queueMicrotask:e=>Promise.resolve().then(e),f=(e,t)=>{let r=!1,{debounceLimit:n=1e3}=t??{},o;return(...i)=>{if(t?.updateArguments?o=i:o??(o=i),r)return;if(n--<=0)switch(t?.limitAction){case"ignore":return;case"invoke":return e(...o);case"throw":default:throw new Error("Maximum debounce limit reached.")}r=!0,A(l);function l(){r?(r=!1,A(l)):(n=t?.debounceLimit??1e3,e(...o))}}};var Q=X(F(),1);import{prepass as O}from"gqty";import{batch as se,createEffect as E,createResource as ae,createSignal as ce,onCleanup as ue,onMount as le}from"solid-js";import{onCleanup as Z,onMount as _}from"solid-js";var G=(e,t,r)=>{let n;_(()=>{n||(n=setInterval(()=>{let o=r?.()??[];e(...o)},t))}),Z(()=>{clearInterval(n)})};import{createSignal as ee,onCleanup as te,onMount as re}from"solid-js";var R=()=>{let{navigator:e}=globalThis,[t,r]=ee(e.onLine),n=()=>{r(e.onLine)};return re(()=>{globalThis.addEventListener("online",n),globalThis.addEventListener("offline",n)}),te(()=>{globalThis.removeEventListener("online",n),globalThis.removeEventListener("offline",n)}),t};import{createSignal as ne,onCleanup as oe,onMount as ie}from"solid-js";var q=()=>{let{document:e}=globalThis,[t,r]=ne(!e.hidden),n=()=>{r(!e.hidden)};return ie(()=>{e.addEventListener("visibilitychange",n)}),oe(()=>{e.removeEventListener("visibilitychange",n)}),t};var D=(e,t)=>{let r=new Set,n=i=>{r.add(i),o()},o=f(()=>{se(()=>{r.forEach(i=>i()),r.clear()})});return({cachePolicy:i=t?.defaults?.cachePolicy??"default",extensions:l,operationName:g,prepare:c,retryPolicy:u=t?.defaults?.retryPolicy,refetchInterval:S,refetchOnReconnect:x=!0,refetchOnWindowVisible:v=!0}={})=>{let a,h,N=f(()=>d({skipPrepass:!0}),{limitAction:"ignore"}),{accessor:m,context:p,resolve:I,restorePreviousSelections:M,selections:y,subscribe:$}=e.createResolver({cachePolicy:i,extensions:l,retryPolicy:u,operationName:g,onSelect(){if(N(),c)return!1}}),[T,{refetch:P}]=ae(()=>a,{storage:()=>ce(void 0,{equals:!1})}),d=async s=>{if((s?.ignoreCache||e.cache!==p.cache)&&(p.shouldFetch=!0),!s?.skipPrepass&&isFinite(e.cache.maxAge)&&(y.size===0&&M(),c?c(m,{prepass:O}):O(m,y)),y.size===0)return;let b=()=>{b=void 0,a=void 0,p.reset()};if(!p.shouldFetch){b?.(),a||y.clear();return}let C=(0,Q.default)();a=C.promise,a.then(()=>b?.(),()=>b?.()),h?.(),h=$({onNext(){a?C.resolve(m):n(P)},onError(j){C.reject(j)},onComplete(){C.resolve(m)}}),n(P)};if(le(()=>d({skipPrepass:!0})),ue(()=>h?.()),c){p.shouldFetch=!1;let s=c;c=void 0,s(m,{prepass:O}),c=s,p.shouldFetch&&(a=I())}if(S&&G(()=>d(),S),x){let s=R();E(()=>{s()&&d()})}if(v){let s=q();E(()=>{s()&&d()})}return Object.assign(()=>T()?.query??m.query,{$state:{get loading(){return T.loading},get error(){return T.error}},$refetch:async(s=!0)=>{if(!a)return M(),await d({ignoreCache:s})}})}};import{createSignal as me,onCleanup as pe}from"solid-js";var L=(e,t)=>({cachePolicy:r=t?.defaults?.cachePolicy,extensions:n,retryPolicy:o=t?.defaults?.retryPolicy,operationName:i,onSubscribe:l,onComplete:g,onError:c=u=>{throw u}}={})=>{let u,{accessor:S,selections:x,subscribe:v}=e.createResolver({cachePolicy:r,extensions:n,retryPolicy:o,operationName:i,onSubscribe:l,onSelect:f(()=>{x.size!==0&&(u?.(),u=v({onNext:()=>h(),onError:c,onComplete:g}))},{limitAction:"ignore"})});pe(()=>{u?.()});let[a,h]=me(void 0,{equals:!1});return()=>(a(),S.subscription)};var je=(e,t)=>({createQuery:D(e,t),createMutation:k(e,t),createSubscription:L(e,t)});export{je as createSolidClient};