qortex-core 0.2.0 → 0.2.1

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
@@ -7,6 +7,8 @@ type QueryKey = string | readonly (string | number)[];
7
7
  type Fetcher<T = any> = () => Promise<T> | T;
8
8
  /** Function that compares two values for equality */
9
9
  type EqualityFn<T = any> = (a: T | undefined, b: T | undefined) => boolean;
10
+ /** Strategy for equality comparison */
11
+ type EqualityStrategy = 'shallow' | 'deep';
10
12
  /**
11
13
  * Infers the return type of a fetcher function
12
14
  *
@@ -39,6 +41,7 @@ type QueryOptions<T = any> = {
39
41
  refetchOnSubscribe?: "always" | "stale" | false;
40
42
  fetcher?: Fetcher<T>;
41
43
  equalityFn?: EqualityFn<T>;
44
+ equalityStrategy?: EqualityStrategy;
42
45
  staleTime?: number;
43
46
  signal?: AbortSignal;
44
47
  placeholderData?: T;
@@ -56,6 +59,7 @@ type DefaultConfig = {
56
59
  usePreviousDataOnError?: boolean;
57
60
  usePlaceholderOnError?: boolean;
58
61
  equalityFn?: EqualityFn<any>;
62
+ equalityStrategy?: EqualityStrategy;
59
63
  throttleTime?: number;
60
64
  };
61
65
  /**
@@ -198,4 +202,4 @@ declare const dangerClearCache: QueryManagerCore["dangerClearCache"];
198
202
  */
199
203
  declare function serializeKey(key: QueryKey): string;
200
204
 
201
- export { DefaultConfig, EqualityFn, Fetcher, InferFetcherResult, QueryKey, QueryManagerCore, QueryOptions, QueryState, QueryStatus, _queryManager, dangerClearCache, fetchQuery, getQueryData, getQueryState, invalidateQuery, registerFetcher, serializeKey, setDefaultConfig, setQueryData, subscribeQuery };
205
+ export { DefaultConfig, EqualityFn, EqualityStrategy, Fetcher, InferFetcherResult, QueryKey, QueryManagerCore, QueryOptions, QueryState, QueryStatus, _queryManager, dangerClearCache, fetchQuery, getQueryData, getQueryState, invalidateQuery, registerFetcher, serializeKey, setDefaultConfig, setQueryData, subscribeQuery };
package/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- function c(t){return Array.isArray(t)?t.join(","):String(t)}function l(t,r){if(t===r)return !0;if(t==null||r==null)return t===r;if(typeof t!="object"||typeof r!="object")return !1;try{let a=t,e=r,s=Object.keys(a),i=Object.keys(e);if(s.length!==i.length)return !1;for(let n=0;n<s.length;n++){let o=s[n];if(a[o]!==e[o])return !1}return !0}catch{return !1}}function f(t,r){return {status:"idle",updatedAt:void 0,staleTime:t?.staleTime??0,isInvalidated:!1,fetcher:t?.fetcher,equalityFn:t?.equalityFn??l,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 h(t){console.warn(`[qortex] No fetcher or data for key "${c(t)}". Register a fetcher or set initial data.`);}var y=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),i={...this.defaultConfig,...a};if(s)Object.assign(s,i),s.enabled=i.enabled!==!1,this.cache.set(e,s);else {let n=f(i,()=>this.fetchQuery(r));this.cache.set(e,n);}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 i=d(a);for(let n of Array.from(s))n(i);}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&&h(r),Promise.resolve(e.data);e.status="fetching",e.lastFetchTime=Date.now(),this.emit(r,e);let i=s(),n=Promise.resolve(i);return e.fetchPromise=n,n.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);}),n}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),i=c(r),n=this.lastReturnedState?.get(i);return !n||!l(n,s)?(this.lastReturnedState||(this.lastReturnedState=new Map),this.lastReturnedState.set(i,s),s):n}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),i=this.ensureState(r,e);return this.subs.has(s)||this.subs.set(s,new Set),this.subs.get(s).add(a),this.handleMountLogic(r,i),()=>{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(),i=a?.updatedAt==null||s-(a.updatedAt||0)>a.staleTime||a.isInvalidated,n=!1;a.refetchOnSubscribe==="always"&&(n=!0),a.refetchOnSubscribe==="stale"&&(n=i),n&&this.fetchQuery(r);}},Q=y;var u=new Q,m=u.registerFetcher.bind(u),D=u.fetchQuery.bind(u),v=u.setQueryData.bind(u),O=u.getQueryData.bind(u),K=u.getQueryState.bind(u),C=u.invalidateQuery.bind(u),x=u.subscribeQuery.bind(u),w=u.setDefaultConfig.bind(u),I=u.dangerClearCache.bind(u);
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),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),n={...this.defaultConfig,...a};if(s)Object.assign(s,n),s.enabled=n.enabled!==!1,this.cache.set(e,s);else {let 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),x=i.getQueryState.bind(i),w=i.invalidateQuery.bind(i),A=i.subscribeQuery.bind(i),E=i.setDefaultConfig.bind(i),I=i.dangerClearCache.bind(i);
4
4
 
5
- exports.QueryManagerCore = y;
6
- exports._queryManager = u;
5
+ exports.QueryManagerCore = f;
6
+ exports._queryManager = i;
7
7
  exports.dangerClearCache = I;
8
- exports.fetchQuery = D;
9
- exports.getQueryData = O;
10
- exports.getQueryState = K;
11
- exports.invalidateQuery = C;
12
- exports.registerFetcher = m;
8
+ exports.fetchQuery = O;
9
+ exports.getQueryData = C;
10
+ exports.getQueryState = x;
11
+ exports.invalidateQuery = w;
12
+ exports.registerFetcher = v;
13
13
  exports.serializeKey = c;
14
- exports.setDefaultConfig = w;
15
- exports.setQueryData = v;
16
- exports.subscribeQuery = x;
14
+ exports.setDefaultConfig = E;
15
+ exports.setQueryData = K;
16
+ exports.subscribeQuery = A;
package/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- function c(t){return Array.isArray(t)?t.join(","):String(t)}function l(t,r){if(t===r)return !0;if(t==null||r==null)return t===r;if(typeof t!="object"||typeof r!="object")return !1;try{let a=t,e=r,s=Object.keys(a),i=Object.keys(e);if(s.length!==i.length)return !1;for(let n=0;n<s.length;n++){let o=s[n];if(a[o]!==e[o])return !1}return !0}catch{return !1}}function f(t,r){return {status:"idle",updatedAt:void 0,staleTime:t?.staleTime??0,isInvalidated:!1,fetcher:t?.fetcher,equalityFn:t?.equalityFn??l,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 h(t){console.warn(`[qortex] No fetcher or data for key "${c(t)}". Register a fetcher or set initial data.`);}var y=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),i={...this.defaultConfig,...a};if(s)Object.assign(s,i),s.enabled=i.enabled!==!1,this.cache.set(e,s);else {let n=f(i,()=>this.fetchQuery(r));this.cache.set(e,n);}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 i=d(a);for(let n of Array.from(s))n(i);}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&&h(r),Promise.resolve(e.data);e.status="fetching",e.lastFetchTime=Date.now(),this.emit(r,e);let i=s(),n=Promise.resolve(i);return e.fetchPromise=n,n.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);}),n}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),i=c(r),n=this.lastReturnedState?.get(i);return !n||!l(n,s)?(this.lastReturnedState||(this.lastReturnedState=new Map),this.lastReturnedState.set(i,s),s):n}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),i=this.ensureState(r,e);return this.subs.has(s)||this.subs.set(s,new Set),this.subs.get(s).add(a),this.handleMountLogic(r,i),()=>{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(),i=a?.updatedAt==null||s-(a.updatedAt||0)>a.staleTime||a.isInvalidated,n=!1;a.refetchOnSubscribe==="always"&&(n=!0),a.refetchOnSubscribe==="stale"&&(n=i),n&&this.fetchQuery(r);}},Q=y;var u=new Q,m=u.registerFetcher.bind(u),D=u.fetchQuery.bind(u),v=u.setQueryData.bind(u),O=u.getQueryData.bind(u),K=u.getQueryState.bind(u),C=u.invalidateQuery.bind(u),x=u.subscribeQuery.bind(u),w=u.setDefaultConfig.bind(u),I=u.dangerClearCache.bind(u);
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),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),n={...this.defaultConfig,...a};if(s)Object.assign(s,n),s.enabled=n.enabled!==!1,this.cache.set(e,s);else {let 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),x=i.getQueryState.bind(i),w=i.invalidateQuery.bind(i),A=i.subscribeQuery.bind(i),E=i.setDefaultConfig.bind(i),I=i.dangerClearCache.bind(i);
2
2
 
3
- export { y as QueryManagerCore, u as _queryManager, I as dangerClearCache, D as fetchQuery, O as getQueryData, K as getQueryState, C as invalidateQuery, m as registerFetcher, c as serializeKey, w as setDefaultConfig, v as setQueryData, x as subscribeQuery };
3
+ export { f as QueryManagerCore, i as _queryManager, I as dangerClearCache, O as fetchQuery, C as getQueryData, x as getQueryState, w 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.0",
3
+ "version": "0.2.1",
4
4
  "description": "Framework-agnostic query cache & fetch registry (MFE friendly).",
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",