@gqty/solid
Version:
<p align="center"> <a href="https://gqty.dev"> <img src="internal/images/logo.png" height="150" alt="gqty" /> </a> </p>
2 lines (1 loc) • 4.23 kB
JavaScript
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 B=J((ve,q)=>{"use strict";var Y=()=>{let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e};q.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(B(),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 F=(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 G=()=>{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 R=()=>{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:x,prepare:c,retryPolicy:u=t?.defaults?.retryPolicy,refetchInterval:S,refetchOnReconnect:v=!0,refetchOnWindowVisible:T=!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:x,onSelect(){if(N(),c)return!1}}),[b,{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 C=()=>{C=void 0,a=void 0,p.reset()};if(!p.shouldFetch){C?.(),a||y.clear();return}let g=(0,Q.default)();a=g.promise,a.then(()=>C?.(),()=>C?.()),h?.(),h=$({onNext(){a?g.resolve(m):n(P)},onError(j){g.reject(j)},onComplete(){g.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&&F(()=>d(),S),v){let s=G();E(()=>{s()&&d()})}if(T){let s=R();E(()=>{s()&&d()})}return Object.assign(()=>b.latest?.query??b()?.query??m.query,{$state:{get loading(){return b.loading},get error(){return b.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:x,onError:c=u=>{throw u}}={})=>{let u,{accessor:S,selections:v,subscribe:T}=e.createResolver({cachePolicy:r,extensions:n,retryPolicy:o,operationName:i,onSubscribe:l,onSelect:f(()=>{v.size!==0&&(u?.(),u=T({onNext:()=>h(),onError:c,onComplete:x}))},{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};