qortex-core 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -3,8 +3,8 @@
3
3
  * Using readonly to prevent accidental mutations
4
4
  */
5
5
  type QueryKey = string | readonly (string | number)[];
6
- /** Function that fetches data, can be async or sync */
7
- type Fetcher<T = any> = () => Promise<T> | T;
6
+ /** Function that fetches data, must be async */
7
+ type Fetcher<T = any> = () => Promise<T>;
8
8
  /** Function that compares two values for equality */
9
9
  type EqualityFn<T = any> = (a: T | undefined, b: T | undefined) => boolean;
10
10
  /** Strategy for equality comparison */
@@ -66,7 +66,7 @@ type DefaultConfig = {
66
66
  * Public query state returned by getQueryState
67
67
  * Improved with stricter error typing and better generic constraints
68
68
  */
69
- type QueryState<T = any, E = Error> = {
69
+ type QueryState<T = any, E = unknown> = {
70
70
  data?: T;
71
71
  error?: E;
72
72
  status: QueryStatus;
package/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- function c(t){return Array.isArray(t)?t.join(","):String(t)}function l(t,r,a="shallow"){if(t===r)return !0;if(t==null||r==null)return t===r;if(typeof t!="object"||typeof r!="object")return !1;try{let e=t,s=r;if(Array.isArray(e)&&Array.isArray(s)){if(e.length!==s.length)return !1;for(let o=0;o<e.length;o++)if(a==="deep"){if(!l(e[o],s[o],a))return !1}else if(e[o]!==s[o])return !1;return !0}if(Array.isArray(e)||Array.isArray(s))return !1;let n=Object.keys(e),u=Object.keys(s);if(n.length!==u.length)return !1;for(let o=0;o<n.length;o++){let y=n[o];if(a==="deep"){if(!l(e[y],s[y],a))return !1}else if(e[y]!==s[y])return !1}return !0}catch{return !1}}function g(t,r){return r||((a,e)=>l(a,e,t||"shallow"))}function h(t,r){return {status:"idle",updatedAt:void 0,staleTime:t?.staleTime??0,isInvalidated:!1,fetcher:t?.fetcher,equalityFn:g(t?.equalityStrategy,t?.equalityFn),equalityStrategy:t?.equalityStrategy??"shallow",placeholderData:t?.placeholderData,usePreviousDataOnError:t?.usePreviousDataOnError??!1,usePlaceholderOnError:t?.usePlaceholderOnError??!1,refetchOnSubscribe:t?.refetchOnSubscribe??"stale",enabled:t?.enabled!==!1,refetch:r||(()=>Promise.resolve(void 0)),isSuccess:!1,isError:!1}}function d(t){let r=Date.now(),a=t.updatedAt==null||r-(t.updatedAt||0)>t.staleTime||t.isInvalidated,e=t.data,s=!1;switch(t.status){case"error":t.usePlaceholderOnError&&t.placeholderData!==void 0&&(e=t.placeholderData,s=!0);break;case"fetching":!t.data&&t.placeholderData&&(e=t.placeholderData,s=!0);break;case"success":case"idle":e=t.data??t.placeholderData,s=t.data?!1:!!t.placeholderData;break}return {data:e,error:t.error,status:t.status,updatedAt:t.updatedAt,isStale:a,isPlaceholderData:s,isLoading:t.status==="fetching"&&!t.updatedAt,isFetching:t.status==="fetching",isError:t.isError,isSuccess:t.isSuccess,refetch:t.refetch}}function Q(t){console.warn(`[qortex] No fetcher or data for key "${c(t)}". Register a fetcher or set initial data.`);}var f=class{constructor(){this.cache=new Map;this.subs=new Map;this.lastReturnedState=new Map;this.defaultConfig={};this.throttleTime=50;}dangerClearCache(){this.cache.clear(),this.subs.clear(),this.lastReturnedState.clear();}setDefaultConfig({throttleTime:r,...a}){this.defaultConfig={...this.defaultConfig,...a},r!==void 0&&(this.throttleTime=r);}ensureState(r,a={}){let e=c(r),s=this.cache.get(e);if(s){let n={...this.defaultConfig,...s,...a};Object.assign(s,n),s.enabled=n.enabled!==!1,this.cache.set(e,s);}else {let n={...this.defaultConfig,...a},u=h(n,()=>this.fetchQuery(r));this.cache.set(e,u);}return this.cache.get(e)}emit(r,a){let e=c(r);this.cache.set(e,a);let s=this.subs.get(e);if(!s)return;let n=d(a);for(let u of Array.from(s))u(n);}registerFetcher(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);}fetchQuery(r,a){let e=this.ensureState(r,a);if(e.fetchPromise)return e.fetchPromise;let s=e.fetcher;if(!s)return e.updatedAt===void 0&&Q(r),Promise.resolve(e.data);e.status="fetching",e.lastFetchTime=Date.now(),this.emit(r,e);let n=s(),u=Promise.resolve(n);return e.fetchPromise=u,u.then(o=>{e.data=e.equalityFn(e.data,o)?e.data:o,e.status="success",e.updatedAt=Date.now(),e.isError=!1,e.isSuccess=!0;}).catch(o=>{e.error=o,e.status="error",e.isError=!0,e.isSuccess=!1;}).finally(()=>{e.fetchPromise=void 0,this.emit(r,e);}),u}setQueryData(r,a){let e=this.ensureState(r),s=e.data;e.equalityFn(s,a)||(e.data=a,e.updatedAt=Date.now(),e.error=void 0,e.status="success",e.isInvalidated=!1,e.isError=!1,e.isSuccess=!0,this.emit(r,e));}getQueryData(r,a){let e=this.ensureState(r,a);return this.handleMountLogic(r,e),e.data??e.placeholderData}getQueryState(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);let s=d(e),n=c(r),u=this.lastReturnedState?.get(n);return !u||!l(u,s,"shallow")?(this.lastReturnedState||(this.lastReturnedState=new Map),this.lastReturnedState.set(n,s),s):u}invalidateQuery(r){let a=this.ensureState(r);a.isInvalidated=!0,this.emit(r,a),this.fetchQuery(r);}subscribeQuery(r,a,e){let s=c(r),n=this.ensureState(r,e);return this.subs.has(s)||this.subs.set(s,new Set),this.subs.get(s).add(a),this.handleMountLogic(r,n),()=>{this.subs.get(s).delete(a);}}handleMountLogic(r,a){let e=a.lastFetchTime&&Date.now()-a.lastFetchTime<this.throttleTime;if(a?.status==="fetching"||!a?.enabled||e||!a?.fetcher)return;let s=Date.now(),n=a?.updatedAt==null||s-(a.updatedAt||0)>a.staleTime||a.isInvalidated,u=!1;a.refetchOnSubscribe==="always"&&(u=!0),a.refetchOnSubscribe==="stale"&&(u=n),u&&this.fetchQuery(r);}},p=f;var i=new p,v=i.registerFetcher.bind(i),O=i.fetchQuery.bind(i),K=i.setQueryData.bind(i),C=i.getQueryData.bind(i),w=i.getQueryState.bind(i),x=i.invalidateQuery.bind(i),A=i.subscribeQuery.bind(i),E=i.setDefaultConfig.bind(i),I=i.dangerClearCache.bind(i);
3
+ function c(t){return Array.isArray(t)?t.join(","):String(t)}function y(t,r,a="shallow"){if(t===r)return !0;if(t==null||r==null)return t===r;if(typeof t!="object"||typeof r!="object")return !1;try{let e=t,n=r;if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return !1;for(let o=0;o<e.length;o++)if(a==="deep"){if(!y(e[o],n[o],a))return !1}else if(e[o]!==n[o])return !1;return !0}if(Array.isArray(e)||Array.isArray(n))return !1;let s=Object.keys(e),i=Object.keys(n);if(s.length!==i.length)return !1;for(let o=0;o<s.length;o++){let l=s[o];if(a==="deep"){if(!y(e[l],n[l],a))return !1}else if(e[l]!==n[l])return !1}return !0}catch{return !1}}function g(t,r){return r||((a,e)=>y(a,e,t||"shallow"))}function h(t,r){return {status:"idle",updatedAt:void 0,staleTime:t?.staleTime??0,isInvalidated:!1,fetcher:t?.fetcher,equalityFn:g(t?.equalityStrategy,t?.equalityFn),equalityStrategy:t?.equalityStrategy??"shallow",placeholderData:t?.placeholderData,usePreviousDataOnError:t?.usePreviousDataOnError??!1,usePlaceholderOnError:t?.usePlaceholderOnError??!1,refetchOnSubscribe:t?.refetchOnSubscribe??"stale",enabled:t?.enabled!==!1,refetch:r||(()=>Promise.resolve(void 0)),isSuccess:!1,isError:!1}}function d(t){let r=Date.now(),a=t.updatedAt!==void 0&&r-t.updatedAt>t.staleTime||t.isInvalidated,e=t.data,n=!1;switch(t.status){case"error":t.usePlaceholderOnError&&t.placeholderData!==void 0&&(e=t.placeholderData,n=!0);break;case"fetching":!t.data&&t.placeholderData&&(e=t.placeholderData,n=!0);break;case"success":case"idle":e=t.data??t.placeholderData,n=t.data?!1:!!t.placeholderData;break}return {data:e,error:t.error,status:t.status,updatedAt:t.updatedAt,isStale:a,isPlaceholderData:n,isLoading:t.status==="fetching"&&!t.updatedAt,isFetching:t.status==="fetching",isError:t.isError,isSuccess:t.isSuccess,refetch:t.refetch}}function Q(t){console.warn(`[qortex] No fetcher or data for key "${c(t)}". Register a fetcher or set initial data.`);}var f=class{constructor(){this.cache=new Map;this.subs=new Map;this.lastReturnedState=new Map;this.defaultConfig={};this.throttleTime=50;}dangerClearCache(){this.cache.clear(),this.subs.clear(),this.lastReturnedState.clear();}setDefaultConfig({throttleTime:r,...a}){this.defaultConfig={...this.defaultConfig,...a},r!==void 0&&(this.throttleTime=r);}ensureState(r,a={}){let e=c(r),n=this.cache.get(e);if(n){let s={...this.defaultConfig,...n,...a};Object.assign(n,s),n.enabled=s.enabled!==!1,this.cache.set(e,n);}else {let s={...this.defaultConfig,...a},i=h(s,()=>this.fetchQuery(r));this.cache.set(e,i);}return this.cache.get(e)}emit(r,a){let e=c(r);this.cache.set(e,a);let n=this.subs.get(e);if(!n)return;let s=d(a);for(let i of Array.from(n))i(s);}registerFetcher(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);}fetchQuery(r,a){let e=this.ensureState(r,a);if(e.fetchPromise)return e.fetchPromise;let n=e.fetcher;if(!n)return e.updatedAt===void 0&&Q(r),Promise.resolve(e.data);let s=n();return e.status="fetching",e.lastFetchTime=Date.now(),e.fetchPromise=s,this.emit(r,e),s.then(i=>{e.data=e.equalityFn(e.data,i)?e.data:i,e.status="success",e.isError=!1,e.isSuccess=!0,e.updatedAt=Date.now(),e.fetchPromise=void 0,this.emit(r,e);}).catch(i=>{e.error=i,e.status="error",e.isError=!0,e.isSuccess=!1,e.updatedAt=Date.now(),e.fetchPromise=void 0,this.emit(r,e);}),s}setQueryData(r,a){let e=this.ensureState(r),n=e.data;e.equalityFn(n,a)||(e.data=a,e.updatedAt=Date.now(),e.error=void 0,e.status="success",e.isInvalidated=!1,e.isError=!1,e.isSuccess=!0,this.emit(r,e));}getQueryData(r,a){let e=this.ensureState(r,a);return this.handleMountLogic(r,e),e.data??e.placeholderData}getQueryState(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);let n=d(e),s=c(r),i=this.lastReturnedState?.get(s);return !i||!y(i,n,"shallow")?(this.lastReturnedState||(this.lastReturnedState=new Map),this.lastReturnedState.set(s,n),n):i}invalidateQuery(r){let a=this.ensureState(r);a.isInvalidated=!0,this.emit(r,a),this.fetchQuery(r);}subscribeQuery(r,a,e){let n=c(r),s=this.ensureState(r,e);return this.subs.has(n)||this.subs.set(n,new Set),this.subs.get(n).add(a),this.handleMountLogic(r,s),()=>{this.subs.get(n).delete(a);}}handleMountLogic(r,a){let e=a.lastFetchTime&&Date.now()-a.lastFetchTime<this.throttleTime;if(a?.status==="fetching"||!a?.enabled||e||!a?.fetcher)return;let n=Date.now(),s=a?.updatedAt==null||n-(a.updatedAt||0)>a.staleTime||a.isInvalidated,i=!1;a.refetchOnSubscribe==="always"&&(i=!0),a.refetchOnSubscribe==="stale"&&(i=s),i&&this.fetchQuery(r);}},p=f;var u=new p,v=u.registerFetcher.bind(u),O=u.fetchQuery.bind(u),K=u.setQueryData.bind(u),w=u.getQueryData.bind(u),C=u.getQueryState.bind(u),x=u.invalidateQuery.bind(u),A=u.subscribeQuery.bind(u),E=u.setDefaultConfig.bind(u),I=u.dangerClearCache.bind(u);
4
4
 
5
5
  exports.QueryManagerCore = f;
6
- exports._queryManager = i;
6
+ exports._queryManager = u;
7
7
  exports.dangerClearCache = I;
8
8
  exports.fetchQuery = O;
9
- exports.getQueryData = C;
10
- exports.getQueryState = w;
9
+ exports.getQueryData = w;
10
+ exports.getQueryState = C;
11
11
  exports.invalidateQuery = x;
12
12
  exports.registerFetcher = v;
13
13
  exports.serializeKey = c;
package/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- function c(t){return Array.isArray(t)?t.join(","):String(t)}function l(t,r,a="shallow"){if(t===r)return !0;if(t==null||r==null)return t===r;if(typeof t!="object"||typeof r!="object")return !1;try{let e=t,s=r;if(Array.isArray(e)&&Array.isArray(s)){if(e.length!==s.length)return !1;for(let o=0;o<e.length;o++)if(a==="deep"){if(!l(e[o],s[o],a))return !1}else if(e[o]!==s[o])return !1;return !0}if(Array.isArray(e)||Array.isArray(s))return !1;let n=Object.keys(e),u=Object.keys(s);if(n.length!==u.length)return !1;for(let o=0;o<n.length;o++){let y=n[o];if(a==="deep"){if(!l(e[y],s[y],a))return !1}else if(e[y]!==s[y])return !1}return !0}catch{return !1}}function g(t,r){return r||((a,e)=>l(a,e,t||"shallow"))}function h(t,r){return {status:"idle",updatedAt:void 0,staleTime:t?.staleTime??0,isInvalidated:!1,fetcher:t?.fetcher,equalityFn:g(t?.equalityStrategy,t?.equalityFn),equalityStrategy:t?.equalityStrategy??"shallow",placeholderData:t?.placeholderData,usePreviousDataOnError:t?.usePreviousDataOnError??!1,usePlaceholderOnError:t?.usePlaceholderOnError??!1,refetchOnSubscribe:t?.refetchOnSubscribe??"stale",enabled:t?.enabled!==!1,refetch:r||(()=>Promise.resolve(void 0)),isSuccess:!1,isError:!1}}function d(t){let r=Date.now(),a=t.updatedAt==null||r-(t.updatedAt||0)>t.staleTime||t.isInvalidated,e=t.data,s=!1;switch(t.status){case"error":t.usePlaceholderOnError&&t.placeholderData!==void 0&&(e=t.placeholderData,s=!0);break;case"fetching":!t.data&&t.placeholderData&&(e=t.placeholderData,s=!0);break;case"success":case"idle":e=t.data??t.placeholderData,s=t.data?!1:!!t.placeholderData;break}return {data:e,error:t.error,status:t.status,updatedAt:t.updatedAt,isStale:a,isPlaceholderData:s,isLoading:t.status==="fetching"&&!t.updatedAt,isFetching:t.status==="fetching",isError:t.isError,isSuccess:t.isSuccess,refetch:t.refetch}}function Q(t){console.warn(`[qortex] No fetcher or data for key "${c(t)}". Register a fetcher or set initial data.`);}var f=class{constructor(){this.cache=new Map;this.subs=new Map;this.lastReturnedState=new Map;this.defaultConfig={};this.throttleTime=50;}dangerClearCache(){this.cache.clear(),this.subs.clear(),this.lastReturnedState.clear();}setDefaultConfig({throttleTime:r,...a}){this.defaultConfig={...this.defaultConfig,...a},r!==void 0&&(this.throttleTime=r);}ensureState(r,a={}){let e=c(r),s=this.cache.get(e);if(s){let n={...this.defaultConfig,...s,...a};Object.assign(s,n),s.enabled=n.enabled!==!1,this.cache.set(e,s);}else {let n={...this.defaultConfig,...a},u=h(n,()=>this.fetchQuery(r));this.cache.set(e,u);}return this.cache.get(e)}emit(r,a){let e=c(r);this.cache.set(e,a);let s=this.subs.get(e);if(!s)return;let n=d(a);for(let u of Array.from(s))u(n);}registerFetcher(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);}fetchQuery(r,a){let e=this.ensureState(r,a);if(e.fetchPromise)return e.fetchPromise;let s=e.fetcher;if(!s)return e.updatedAt===void 0&&Q(r),Promise.resolve(e.data);e.status="fetching",e.lastFetchTime=Date.now(),this.emit(r,e);let n=s(),u=Promise.resolve(n);return e.fetchPromise=u,u.then(o=>{e.data=e.equalityFn(e.data,o)?e.data:o,e.status="success",e.updatedAt=Date.now(),e.isError=!1,e.isSuccess=!0;}).catch(o=>{e.error=o,e.status="error",e.isError=!0,e.isSuccess=!1;}).finally(()=>{e.fetchPromise=void 0,this.emit(r,e);}),u}setQueryData(r,a){let e=this.ensureState(r),s=e.data;e.equalityFn(s,a)||(e.data=a,e.updatedAt=Date.now(),e.error=void 0,e.status="success",e.isInvalidated=!1,e.isError=!1,e.isSuccess=!0,this.emit(r,e));}getQueryData(r,a){let e=this.ensureState(r,a);return this.handleMountLogic(r,e),e.data??e.placeholderData}getQueryState(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);let s=d(e),n=c(r),u=this.lastReturnedState?.get(n);return !u||!l(u,s,"shallow")?(this.lastReturnedState||(this.lastReturnedState=new Map),this.lastReturnedState.set(n,s),s):u}invalidateQuery(r){let a=this.ensureState(r);a.isInvalidated=!0,this.emit(r,a),this.fetchQuery(r);}subscribeQuery(r,a,e){let s=c(r),n=this.ensureState(r,e);return this.subs.has(s)||this.subs.set(s,new Set),this.subs.get(s).add(a),this.handleMountLogic(r,n),()=>{this.subs.get(s).delete(a);}}handleMountLogic(r,a){let e=a.lastFetchTime&&Date.now()-a.lastFetchTime<this.throttleTime;if(a?.status==="fetching"||!a?.enabled||e||!a?.fetcher)return;let s=Date.now(),n=a?.updatedAt==null||s-(a.updatedAt||0)>a.staleTime||a.isInvalidated,u=!1;a.refetchOnSubscribe==="always"&&(u=!0),a.refetchOnSubscribe==="stale"&&(u=n),u&&this.fetchQuery(r);}},p=f;var i=new p,v=i.registerFetcher.bind(i),O=i.fetchQuery.bind(i),K=i.setQueryData.bind(i),C=i.getQueryData.bind(i),w=i.getQueryState.bind(i),x=i.invalidateQuery.bind(i),A=i.subscribeQuery.bind(i),E=i.setDefaultConfig.bind(i),I=i.dangerClearCache.bind(i);
1
+ function c(t){return Array.isArray(t)?t.join(","):String(t)}function y(t,r,a="shallow"){if(t===r)return !0;if(t==null||r==null)return t===r;if(typeof t!="object"||typeof r!="object")return !1;try{let e=t,n=r;if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return !1;for(let o=0;o<e.length;o++)if(a==="deep"){if(!y(e[o],n[o],a))return !1}else if(e[o]!==n[o])return !1;return !0}if(Array.isArray(e)||Array.isArray(n))return !1;let s=Object.keys(e),i=Object.keys(n);if(s.length!==i.length)return !1;for(let o=0;o<s.length;o++){let l=s[o];if(a==="deep"){if(!y(e[l],n[l],a))return !1}else if(e[l]!==n[l])return !1}return !0}catch{return !1}}function g(t,r){return r||((a,e)=>y(a,e,t||"shallow"))}function h(t,r){return {status:"idle",updatedAt:void 0,staleTime:t?.staleTime??0,isInvalidated:!1,fetcher:t?.fetcher,equalityFn:g(t?.equalityStrategy,t?.equalityFn),equalityStrategy:t?.equalityStrategy??"shallow",placeholderData:t?.placeholderData,usePreviousDataOnError:t?.usePreviousDataOnError??!1,usePlaceholderOnError:t?.usePlaceholderOnError??!1,refetchOnSubscribe:t?.refetchOnSubscribe??"stale",enabled:t?.enabled!==!1,refetch:r||(()=>Promise.resolve(void 0)),isSuccess:!1,isError:!1}}function d(t){let r=Date.now(),a=t.updatedAt!==void 0&&r-t.updatedAt>t.staleTime||t.isInvalidated,e=t.data,n=!1;switch(t.status){case"error":t.usePlaceholderOnError&&t.placeholderData!==void 0&&(e=t.placeholderData,n=!0);break;case"fetching":!t.data&&t.placeholderData&&(e=t.placeholderData,n=!0);break;case"success":case"idle":e=t.data??t.placeholderData,n=t.data?!1:!!t.placeholderData;break}return {data:e,error:t.error,status:t.status,updatedAt:t.updatedAt,isStale:a,isPlaceholderData:n,isLoading:t.status==="fetching"&&!t.updatedAt,isFetching:t.status==="fetching",isError:t.isError,isSuccess:t.isSuccess,refetch:t.refetch}}function Q(t){console.warn(`[qortex] No fetcher or data for key "${c(t)}". Register a fetcher or set initial data.`);}var f=class{constructor(){this.cache=new Map;this.subs=new Map;this.lastReturnedState=new Map;this.defaultConfig={};this.throttleTime=50;}dangerClearCache(){this.cache.clear(),this.subs.clear(),this.lastReturnedState.clear();}setDefaultConfig({throttleTime:r,...a}){this.defaultConfig={...this.defaultConfig,...a},r!==void 0&&(this.throttleTime=r);}ensureState(r,a={}){let e=c(r),n=this.cache.get(e);if(n){let s={...this.defaultConfig,...n,...a};Object.assign(n,s),n.enabled=s.enabled!==!1,this.cache.set(e,n);}else {let s={...this.defaultConfig,...a},i=h(s,()=>this.fetchQuery(r));this.cache.set(e,i);}return this.cache.get(e)}emit(r,a){let e=c(r);this.cache.set(e,a);let n=this.subs.get(e);if(!n)return;let s=d(a);for(let i of Array.from(n))i(s);}registerFetcher(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);}fetchQuery(r,a){let e=this.ensureState(r,a);if(e.fetchPromise)return e.fetchPromise;let n=e.fetcher;if(!n)return e.updatedAt===void 0&&Q(r),Promise.resolve(e.data);let s=n();return e.status="fetching",e.lastFetchTime=Date.now(),e.fetchPromise=s,this.emit(r,e),s.then(i=>{e.data=e.equalityFn(e.data,i)?e.data:i,e.status="success",e.isError=!1,e.isSuccess=!0,e.updatedAt=Date.now(),e.fetchPromise=void 0,this.emit(r,e);}).catch(i=>{e.error=i,e.status="error",e.isError=!0,e.isSuccess=!1,e.updatedAt=Date.now(),e.fetchPromise=void 0,this.emit(r,e);}),s}setQueryData(r,a){let e=this.ensureState(r),n=e.data;e.equalityFn(n,a)||(e.data=a,e.updatedAt=Date.now(),e.error=void 0,e.status="success",e.isInvalidated=!1,e.isError=!1,e.isSuccess=!0,this.emit(r,e));}getQueryData(r,a){let e=this.ensureState(r,a);return this.handleMountLogic(r,e),e.data??e.placeholderData}getQueryState(r,a){let e=this.ensureState(r,a);this.handleMountLogic(r,e);let n=d(e),s=c(r),i=this.lastReturnedState?.get(s);return !i||!y(i,n,"shallow")?(this.lastReturnedState||(this.lastReturnedState=new Map),this.lastReturnedState.set(s,n),n):i}invalidateQuery(r){let a=this.ensureState(r);a.isInvalidated=!0,this.emit(r,a),this.fetchQuery(r);}subscribeQuery(r,a,e){let n=c(r),s=this.ensureState(r,e);return this.subs.has(n)||this.subs.set(n,new Set),this.subs.get(n).add(a),this.handleMountLogic(r,s),()=>{this.subs.get(n).delete(a);}}handleMountLogic(r,a){let e=a.lastFetchTime&&Date.now()-a.lastFetchTime<this.throttleTime;if(a?.status==="fetching"||!a?.enabled||e||!a?.fetcher)return;let n=Date.now(),s=a?.updatedAt==null||n-(a.updatedAt||0)>a.staleTime||a.isInvalidated,i=!1;a.refetchOnSubscribe==="always"&&(i=!0),a.refetchOnSubscribe==="stale"&&(i=s),i&&this.fetchQuery(r);}},p=f;var u=new p,v=u.registerFetcher.bind(u),O=u.fetchQuery.bind(u),K=u.setQueryData.bind(u),w=u.getQueryData.bind(u),C=u.getQueryState.bind(u),x=u.invalidateQuery.bind(u),A=u.subscribeQuery.bind(u),E=u.setDefaultConfig.bind(u),I=u.dangerClearCache.bind(u);
2
2
 
3
- export { f as QueryManagerCore, i as _queryManager, I as dangerClearCache, O as fetchQuery, C as getQueryData, w as getQueryState, x as invalidateQuery, v as registerFetcher, c as serializeKey, E as setDefaultConfig, K as setQueryData, A as subscribeQuery };
3
+ export { f as QueryManagerCore, u as _queryManager, I as dangerClearCache, O as fetchQuery, w as getQueryData, C as getQueryState, x as invalidateQuery, v as registerFetcher, c as serializeKey, E as setDefaultConfig, K as setQueryData, A as subscribeQuery };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qortex-core",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Framework-agnostic query cache & fetch registry (MFE friendly).",
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",