@electric-sql/pglite-react
Version:
Hooks for using PGlite
2 lines • 2.26 kB
JavaScript
;var y=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var n in t)y(e,n,{get:t[n],enumerable:!0})},b=(e,t,n,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of k(t))!h.call(e,r)&&r!==n&&y(e,r,{get:()=>t[r],enumerable:!(u=w(t,r))||u.enumerable});return e};var W=e=>b(y({},"__esModule",{value:!0}),e);var U={};x(U,{PGliteProvider:()=>S,makePGliteProvider:()=>m,useLiveIncrementalQuery:()=>E,useLiveQuery:()=>R,usePGlite:()=>a});module.exports=W(U);var P=require("react"),Q=require("react/jsx-runtime");function m(){let e=(0,P.createContext)(void 0);return{usePGlite:t=>{let n=(0,P.useContext)(e);if(t!==void 0)return t;if(!n)throw new Error("No PGlite instance found, use PGliteProvider to provide one");return n},PGliteProvider:({children:t,db:n})=>(0,Q.jsx)(e.Provider,{value:n,children:t})}}var{PGliteProvider:S,usePGlite:a}=m();var G=require("@electric-sql/pglite/template"),o=require("react");function C(e,t){if(!e&&!t)return!0;if(e?.length!==t?.length)return!1;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n]))return!1;return!0}function L(e,t,n){let u=a(),r=(0,o.useRef)(t),c=(0,o.useRef)(void 0),i,p=!1;typeof e!="string"&&!(e instanceof Promise)&&(i=e,p=c.current!==i,c.current=i);let[l,T]=(0,o.useState)(i?.initialResults),v=r.current;return C(r.current,t)||(r.current=t,v=t),(0,o.useEffect)(()=>{let d=!1,f=s=>{d||T(s)};if(typeof e=="string"){let s=n!==void 0?u.live.incrementalQuery(e,v,n,f):u.live.query(e,v,f);return()=>{d=!0,s.then(({unsubscribe:g})=>g())}}else{if(e instanceof Promise)return e.then(s=>{d||(c.current=s,T(s.initialResults),s.subscribe(f))}),()=>{d=!0,c.current?.unsubscribe(f)};if(i)return T(i.initialResults),i.subscribe(f),()=>{d=!0,i.unsubscribe(f)};throw new Error("Should never happen")}},[u,n,e,v,i]),p&&i?i.initialResults:l&&{rows:l.rows,fields:l.fields,totalCount:l.totalCount,offset:l.offset,limit:l.limit}}function R(e,t){return L(e,t)}R.sql=function(e,...t){let{query:n,params:u}=(0,G.query)(e,...t);return L(n,u)};function E(e,t,n){return L(e,t,n)}0&&(module.exports={PGliteProvider,makePGliteProvider,useLiveIncrementalQuery,useLiveQuery,usePGlite});
//# sourceMappingURL=index.cjs.map