UNPKG

3.12 kBJavaScriptView Raw
1!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@urql/core"),require("jotai"),require("wonka")):"function"==typeof define&&define.amd?define(["exports","@urql/core","jotai","wonka"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).jotaiUrql={},t.core,t.jotai,t.wonka)}(this,(function(t,n,r,e){"use strict";var o=function(){try{return process.env.JOTAI_URQL_DEFAULT_URL}catch(t){return}}()||"/graphql",u=r.atom(n.createClient({url:o}));function i(){return i=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},i.apply(this,arguments)}t.atomWithMutation=function(t,n){void 0===n&&(n=function(t){return t(u)});var e=r.atom(new Promise((function(){})));return r.atom((function(t){return t(e)}),(function(r,o,u){o(e,new Promise((function(){})));var i=n(r),a=t(r);i.mutation(a,u.variables,u.context).toPromise().then((function(t){o(e,t),null==u.callback||u.callback(t)})).catch((function(){}))}))},t.atomWithQuery=function(t,n){void 0===n&&(n=function(t){return t(u)});var o=r.atom((function(){return{}})),a=function(t,n,o,u){var a=null,c=r.atom(new Promise((function(t){a=t})));t.resultAtom=c;var s=function(){throw new Error("setting result without mount")},l=function(n){if(c===t.resultAtom){if(!function(t){return"data"in t}(n))throw new Error("result does not have data");a?(a(n),a=null):s(n)}};return n.query(o.query,o.variables,i({},o.requestPolicy&&{requestPolicy:o.requestPolicy},o.context,u)).toPromise().then(l).catch((function(){})),c.onMount=function(t){s=t;var r=e.pipe(n.query(o.query,o.variables,i({},o.requestPolicy&&{requestPolicy:o.requestPolicy},o.context,u)),e.skip(1),e.subscribe(l));return function(){return r.unsubscribe()}},c},c=r.atom((function(r){var e=t(r);if(e.pause)return null;var u=n(r);return{resultAtom:a(r(o),u,e),client:u,args:e}})),s=r.atom(null);return r.atom((function(t){var n=t(c);if(!n)return null;var r=n.resultAtom,e=t(s);return e&&e.oldResultAtom===r&&(r=e.newResultAtom),t(r)}),(function(t,n,r){if("reexecute"===r.type){var e=t(c);if(!e)throw new Error("query is paused");var u=e.resultAtom,i=e.client,l=e.args;n(s,{oldResultAtom:u,newResultAtom:a(t(o),i,l,r.opts)})}}))},t.atomWithSubscription=function(t,n){void 0===n&&(n=function(t){return t(u)});var o=r.atom((function(o){var u=t(o);if(u.pause)return{args:u};var i=n(o),a=null,c=r.atom(new Promise((function(t){a=t}))),s=function(){throw new Error("setting result without mount")},l=function(t){if(!function(t){return"data"in t}(t))throw new Error("result does not have data");a?(a(t),a=null):s(t)},f=e.pipe(i.subscription(u.query,u.variables,u.context),e.subscribe(l)),m=setTimeout((function(){m=null,f.unsubscribe()}),1e3);return c.onMount=function(t){var n;return s=t,m?(clearTimeout(m),n=f):n=e.pipe(i.subscription(u.query,u.variables,u.context),e.subscribe(l)),function(){return n.unsubscribe()}},{resultAtom:c,args:u}}));return r.atom((function(t){var n=t(o).resultAtom;return n?t(n):null}))},t.clientAtom=u,Object.defineProperty(t,"__esModule",{value:!0})}));