UNPKG

jotai

Version:

👻 Next gen state management that will spook you

2 lines (1 loc) • 3.12 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react-query"),require("jotai")):"function"==typeof define&&define.amd?define(["exports","react-query","jotai"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jotaiQuery={},e.reactQuery,e.jotai)}(this,(function(e,t,r){"use strict";var n=r.atom(new t.QueryClient);var i=["type"];e.atomWithInfiniteQuery=function(e,o){void 0===o&&(o=function(e){return e(n)});var a=r.atom((function(n){var i,a=o(n),u="function"==typeof e?e(n):e,f=null,c=(void 0===(i=a.getQueryData(u.queryKey))&&u.initialData&&(i="function"==typeof u.initialData?u.initialData():u.initialData),i),l=r.atom(void 0===c&&!1!==u.enabled?new Promise((function(e,t){f=function(r,n){n?t(n):e(r)}})):c),d=function(){throw new Error("atomWithInfiniteQuery: setting data without mount")},s=function(e){!e.error||t.isCancelledError(e.error)?void 0!==e.data&&(f?(f(e.data),f=null):d(e.data)):f?(f(void 0,e.error),f=null):d(Promise.reject(e.error))},v=a.defaultQueryObserverOptions(u);void 0===c&&!1!==u.enabled&&"number"!=typeof v.staleTime&&(v.staleTime=1e3);var y=new t.InfiniteQueryObserver(a,v);return void 0===c&&!1!==u.enabled&&y.fetchOptimistic(v).then(s).catch((function(e){return s({error:e})})),l.onMount=function(e){if(d=e,!1!==u.enabled)return y.subscribe(s)},{dataAtom:l,observer:y,options:u}}),(function(e,t,r){var n=e(a).observer;switch(r.type){case"refetch":r.type;var o=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(r,i);n.refetch(o);break;case"fetchPreviousPage":n.fetchPreviousPage();break;case"fetchNextPage":n.fetchNextPage()}}));return r.atom((function(e){var t=e(a);return e(t.dataAtom)}),(function(e,t,r){return t(a,r)}))},e.atomWithQuery=function(e,i){void 0===i&&(i=function(e){return e(n)});var o=r.atom((function(n){var o,a=i(n),u="function"==typeof e?e(n):e,f=null,c=(void 0===(o=a.getQueryData(u.queryKey))&&u.initialData&&(o="function"==typeof u.initialData?u.initialData():u.initialData),o),l=r.atom(void 0===c&&!1!==u.enabled?new Promise((function(e,t){f=function(r,n){n?t(n):e(r)}})):c),d=function(){throw new Error("atomWithQuery: setting data without mount")},s=function(e){e.error?f?(f(void 0,e.error),f=null):d(Promise.reject(e.error)):void 0!==e.data&&(f?(f(e.data),f=null):d(e.data))},v=a.defaultQueryObserverOptions(u);void 0===c&&!1!==u.enabled&&"number"!=typeof v.staleTime&&(v.staleTime=1e3);var y=new t.QueryObserver(a,v);return void 0===c&&!1!==u.enabled&&y.fetchOptimistic(v).then(s).catch((function(e){return s({error:e})})),l.onMount=function(e){if(d=e,!1!==u.enabled)return y.subscribe(s)},{dataAtom:l,observer:y}}),(function(e,t,r){if("refetch"===r.type){var n=e(o),i=n.dataAtom,a=n.observer;return t(i,new Promise((function(){}))),Promise.resolve().then((function(){return a.refetch({cancelRefetch:!0})})).then((function(){}))}throw new Error("no action")}));return r.atom((function(e){var t=e(o);return e(t.dataAtom)}),(function(e,t,r){return t(o,r)}))},e.queryClientAtom=n,Object.defineProperty(e,"__esModule",{value:!0})}));