UNPKG

3.34 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?Object.assign.bind():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),c=t(r);i.mutation(c,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(o){var u=t(o);if(u.pause)return null;var c=n(o),a=null,s=r.atom(new Promise((function(t){a=t}))),l=function(){throw new Error("setting result without mount")},f=function(t){if(t instanceof Promise)l(t);else{if(!function(t){return"data"in t&&!t.error}(t))throw new Error("result does not have data");a?(a(t),a=null):l(t)}};c.query(u.query,u.variables,i({},u.requestPolicy&&{requestPolicy:u.requestPolicy},u.context)).toPromise().then(f).catch((function(){})),s.onMount=function(t){l=t};var v=r.atom(null),b=r.atom((function(t){return t(s)}),(function(t,n,r){var o=e.pipe(c.query(u.query,u.variables,i({},u.requestPolicy&&{requestPolicy:u.requestPolicy},u.context)),e.subscribe(f));n(v,o),r((function(){var n;return null==(n=t(v))?void 0:n.unsubscribe()}))}));return b.onMount=function(t){var n;return t((function(t){n=t})),n},{args:u,client:c,resultAtom:b,subscriptionAtom:v,listener:f}}));return r.atom((function(t){var n=t(o);return n?t(n.resultAtom):null}),(function(t,n,r){if("reexecute"===r.type){var u=t(o);if(!u)throw new Error("query is paused");var c=u.args,a=u.client,s=u.subscriptionAtom,l=u.listener;l(new Promise((function(){})));var f=e.pipe(a.query(c.query,c.variables,i({},c.requestPolicy&&{requestPolicy:c.requestPolicy},c.context,r.opts)),e.subscribe(l)),v=t(s);null==v||v.unsubscribe(),n(s,f)}}))},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),c=null,a=r.atom(new Promise((function(t){c=t}))),s=function(){throw new Error("setting result without mount")},l=!1,f=function(t){if(!function(t){return"data"in t}(t))throw new Error("result does not have data");if(c){var n;if(!l)null==(n=v)||n.unsubscribe(),v=null;c(t),c=null}else s(t)},v=e.pipe(i.subscription(u.query,u.variables,u.context),e.subscribe(f));return a.onMount=function(t){return s=t,l=!0,v||(v=e.pipe(i.subscription(u.query,u.variables,u.context),e.subscribe(f))),function(){var t;return null==(t=v)?void 0:t.unsubscribe()}},{resultAtom:a,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})}));