react-hooks-global-states 14.0.2 → 14.1.0-beta.0
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/GlobalStore.d.ts +7 -1
- package/GlobalStore.js +1 -1
- package/createContext.d.ts +2 -2
- package/createContext.js +1 -1
- package/createGlobalState.d.ts +1 -1
- package/package.json +19 -13
- package/types.d.ts +9 -3
- package/webpack.config.js +3 -2
package/GlobalStore.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export declare class GlobalStore<State, Metadata extends BaseMetadata, ActionsCo
|
|
|
16
16
|
* @description The main hook that will be used to interact with the global state
|
|
17
17
|
*/
|
|
18
18
|
use: StateHook<State, PublicStateMutator, Metadata>;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated
|
|
21
|
+
* @description Set of subscribers that are listening to state changes
|
|
22
|
+
* Useful for debugging purposes... You'll probably not need to use this in your application
|
|
23
|
+
*/
|
|
19
24
|
subscribers: Set<SubscriberParameters>;
|
|
20
25
|
state: State;
|
|
21
26
|
constructor(state: State);
|
|
@@ -82,8 +87,9 @@ export declare class GlobalStore<State, Metadata extends BaseMetadata, ActionsCo
|
|
|
82
87
|
* @returns {[State, StateMutator, Metadata]} - The state, the state setter or the actions map, the metadata
|
|
83
88
|
* */
|
|
84
89
|
getMainHook: () => StateHook<State, PublicStateMutator, Metadata>;
|
|
85
|
-
protected computeSelectedState: ({ subscription, currentDependencies, }: {
|
|
90
|
+
protected computeSelectedState: ({ subscription, newDependencies, currentDependencies, }: {
|
|
86
91
|
subscription: SubscriberParameters;
|
|
92
|
+
newDependencies: unknown[] | undefined;
|
|
87
93
|
currentDependencies: unknown[] | undefined;
|
|
88
94
|
}) => unknown;
|
|
89
95
|
createSelectorHook: typeof createSelectorHook;
|
package/GlobalStore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var t,e;t=this,e=(t,e,r,n,o,i,a)=>(()=>{"use strict";var s={78:e=>{e.exports=t},155:t=>{t.exports=e},361:t=>{t.exports=r},487:t=>{t.exports=n},506:t=>{t.exports=o},673:t=>{t.exports=i},773:t=>{t.exports=a},811:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var r=globalThis;r.isDevToolsPresent=Boolean(r.REACT_GLOBAL_STATE_HOOK_DEBUG),e.default=r}},u={};function c(t){var e=u[t];if(void 0!==e)return e.exports;var r=u[t]={exports:{}};return s[t](r,r.exports,c),r.exports}var l={};return(()=>{var t=l;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(){o=function(){return r};var t,r={},n=Object.prototype,i=n.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",l=s.toStringTag||"@@toStringTag";function f(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{f({},"")}catch(t){f=function(t,e,r){return t[e]=r}}function d(t,e,r,n){var o=e&&e.prototype instanceof m?e:m,i=Object.create(o.prototype),s=new T(n||[]);return a(i,"_invoke",{value:L(t,r,s)}),i}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=d;var v="suspendedStart",p="suspendedYield",b="executing",g="completed",y={};function m(){}function S(){}function w(){}var j={};f(j,u,(function(){return this}));var O=Object.getPrototypeOf,x=O&&O(O(M([])));x&&x!==n&&i.call(x,u)&&(j=x);var k=w.prototype=m.prototype=Object.create(j);function E(t){["next","throw","return"].forEach((function(e){f(t,e,(function(t){return this._invoke(e,t)}))}))}function C(t,r){function n(o,a,s,u){var c=h(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==e(f)&&i.call(f,"__await")?r.resolve(f.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):r.resolve(f).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,u)}))}u(c.arg)}var o;a(this,"_invoke",{value:function(t,e){function i(){return new r((function(r,o){n(t,e,r,o)}))}return o=o?o.then(i,i):i()}})}function L(e,r,n){var o=v;return function(i,a){if(o===b)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=_(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===v)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=b;var c=h(e,r,n);if("normal"===c.type){if(o=n.done?g:p,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=g,n.method="throw",n.arg=c.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=h(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function q(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(q,this),this.reset(!0)}function M(r){if(r||""===r){var n=r[u];if(n)return n.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,a=function e(){for(;++o<r.length;)if(i.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(e(r)+" is not iterable")}return S.prototype=w,a(k,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:S,configurable:!0}),S.displayName=f(w,l,"GeneratorFunction"),r.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===S||"GeneratorFunction"===(e.displayName||e.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,f(t,l,"GeneratorFunction")),t.prototype=Object.create(k),t},r.awrap=function(t){return{__await:t}},E(C.prototype),f(C.prototype,c,(function(){return this})),r.AsyncIterator=C,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new C(d(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},E(k),f(k,l,"Generator"),f(k,u,(function(){return this})),f(k,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=M,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&i.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,o){return s.type="throw",s.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),c=i.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,y):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},r}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,s(n.key),n)}}function a(t,e,r){return e&&i(t.prototype,e),r&&i(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalStore=void 0,t.createObservable=S,t.createSelectorHook=w;var u,f=c(155),d=c(506),h=c(773),v=c(487),p=c(673),b=c(361),g=c(78),y=(u=c(811))&&u.__esModule?u:{default:u},m=a((function t(e){var n,i,a=this,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{metadata:{}};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.actionsConfig=null,this.callbacks=null,this.actions=null,this.subscribers=new Set,this.initialize=function(){return t=a,e=void 0,r=o().mark((function t(){var e,r,n,i,a,s,u;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=this.getStoreActionsMap(),n=r.actions,i=r.storeTools,this.actions=n,this.storeTools=i,this.use=this.getMainHook(),a=this.onInit,s=null!==(e=this.callbacks)&&void 0!==e?e:{},u=s.onInit,a||u){t.next=8;break}return t.abrupt("return");case 8:null==a||a(i),(0,h.isNil)(u)||null==u||u(i);case 10:case"end":return t.stop()}}),t,this)})),new(e||(e=Promise))((function(n,o){function i(t){try{s(r.next(t))}catch(t){o(t)}}function a(t){try{s(r.throw(t))}catch(t){o(t)}}function s(t){var r;t.done?n(t.value):(r=t.value,r instanceof e?r:new e((function(t){t(r)}))).then(i,a)}s((r=r.apply(t,[])).next())}));var t,e,r},this.executeSetStateForSubscriber=function(t,e){var r,n,o,i=t.selector,s=t.callback,u=t.currentState,c=t.getConfig,l=null!==(r=null==c?void 0:c())&&void 0!==r?r:{};if(!e.forceUpdate&&(null!==(n=null==l?void 0:l.isEqualRoot)&&void 0!==n?n:function(t,e){return t===e})(e.currentState,e.newState))return{didUpdate:!1};var f=i?i(e.newState):e.newState;return!e.forceUpdate&&(null!==(o=null==l?void 0:l.isEqual)&&void 0!==o?o:function(t,e){return t===e})(u,f)?{didUpdate:!1}:(a.partialUpdateSubscription(t,{currentState:f}),s({state:f},{identifier:e.identifier}),{didUpdate:!0})},this.setSubscribersState=function(t,e){var n=e.forceUpdate,o=e.identifier,i=a.state;if(n||i!==t){a.state=t;var s,u={forceUpdate:n,newState:t,currentState:i,identifier:o},c=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=r(t))){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(s)throw i}}}}(a.subscribers.values());try{for(c.s();!(s=c.n()).done;){var l=s.value;a.executeSetStateForSubscriber(l,u)}}catch(t){c.e(t)}finally{c.f()}}},this.setMetadata=function(t){var e=(0,d.isFunction)(t)?t(a.metadata):t;a.metadata=e},this.getMetadata=function(){return a.metadata},this.getState=function(){return a.state},this.subscribe=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n,o=e[0],i=e[1],s=e[2],u=(0,d.isFunction)(i),c=u?o:void 0,l=u?i:o,f=null!==(n=u?s:i)&&void 0!==n?n:void 0,h=c?c(a.state):a.state;(null==f?void 0:f.skipFirst)||l(h);var v={selector:c,getConfig:function(){return f},currentState:h,callback:function(t){var e=t.state;return l(e)}};return a.subscribeCallback(v),function(){a.subscribers.delete(v)}},this.subscribeCallback=function(t){return a.executeOnSubscribed(t),a.subscribers.add(t),function(){a.subscribers.delete(t)}},this.partialUpdateSubscription=function(t,e){(0,v.isRecord)(t)&&Object.assign(t,e)},this.executeOnSubscribed=function(t){var e,r=a.onSubscribed,n=null===(e=a.callbacks)||void 0===e?void 0:e.onSubscribed;(r||n)&&(null==r||r(a.storeTools,t),null==n||n(a.storeTools,t))},this.getMainHook=function(){var t=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=(0,p.isArray)(e)?{dependencies:e}:null!=e?e:{},n=(0,f.useRef)({selector:t,config:r}),o=n.current.config.dependencies;n.current.selector=t,n.current.config=r;var i=(0,f.useMemo)((function(){var t=function(t){var e=n.current.selector;return(0,d.isFunction)(e)?e(t):t},e={currentState:t(a.state),selector:t,getConfig:function(){return n.current.config},callback:function(){throw new Error("Callback not set")}},r=function(){return e.currentState};return{subscribe:function(t){return e.callback=t,a.subscribeCallback(e)},getSnapshot:r,getServerSnapshot:r,subscription:e}}),[]),s=i.subscribe,u=i.getSnapshot,c=i.getServerSnapshot,l=i.subscription;return(0,f.useSyncExternalStore)(s,u,c),[a.computeSelectedState({subscription:l,currentDependencies:o}),a.getStateOrchestrator(),a.metadata]},e=a.setMetadata,r=a.getMetadata,n=a.actions,o=a.actions?null:a.setState.bind(a),i=a,s={actions:n,createObservable:a.createObservable.bind(i),createSelectorHook:a.createSelectorHook.bind(i),dispose:a.dispose.bind(a),getMetadata:r,getState:a.getState.bind(a),setMetadata:e,setState:o,subscribe:a.subscribe.bind(a),use:t,select:function(){return t.apply(void 0,arguments)[0]}};return Object.assign(t,s),t},this.computeSelectedState=function(t){var e,r=t.subscription,n=t.currentDependencies;if(!r.selector)return r.currentState;var o=(null!==(e=r.getConfig())&&void 0!==e?e:{}).dependencies;return n===o||(null==n?void 0:n.length)===(null==o?void 0:o.length)&&(0,p.shallowCompare)(n,o)||a.partialUpdateSubscription(r,{currentState:r.selector(a.state)}),r.currentState},this.createSelectorHook=w,this.createObservable=S,this.getStateOrchestrator=function(){return a.actions?a.actions:a.setState},this.setState=function(t){var e,r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.forceUpdate,i=n.identifier,s=a.state,u=(0,d.isFunction)(t)?t(s):t;if(o||a.state!==u){var c=a.setMetadata,l=a.getMetadata,f=a.getState,h=a.actions,v={setMetadata:c,getMetadata:l,setState:a.setSubscribersState,getState:f,actions:h,previousState:s,state:u,identifier:i},p=a.computePreventStateChange,b=null===(e=a.callbacks)||void 0===e?void 0:e.computePreventStateChange;if((p||b)&&((null==p?void 0:p(v))||(null==b?void 0:b(v))))return;a.setSubscribersState(u,{forceUpdate:o,identifier:i});var g=a.onStateChanged,y=null===(r=a.callbacks)||void 0===r?void 0:r.onStateChanged;(g||y)&&(null==g||g(v),null==y||y(v))}},this.getStoreActionsMap=function(){var t=a.actionsConfig,e=a.getMetadata,r=a.getState,n={setMetadata:a.setMetadata,getMetadata:e,getState:r,setState:a.setState,subscribe:a.subscribe,actions:null};if(!(0,v.isRecord)(t))return{actions:null,storeTools:n};var o={};n.actions=o;for(var i=Object.keys(t),u=function(){var e,r,i,a=l[c];Object.assign(o,(e={},i=function(){for(var e=t[a],r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];var u=e.apply(o,i);return"function"!=typeof u&&(0,b.throwWrongKeyOnActionCollectionConfig)(a),u.call(o,n)},(r=s(r=a))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e))},c=0,l=i;c<l.length;c++)u();return{actions:o,storeTools:n}},this.removeSubscriptions=function(){a.subscribers.clear()},this.dispose=function(){a.removeSubscriptions(),a._name="",a.actionsConfig=null,a.callbacks=null,a.metadata={},a.actions=null,a.state=Object.create(null)};var c=u.metadata,l=u.callbacks,m=u.actions,j=u.name;if(this.state=e,this._name=null!=j?j:(0,g.uniqueId)("gs:"),this.metadata=null!=c?c:{},this.callbacks=null!=l?l:null,this.actionsConfig=null!=m?m:null,y.default.isDevToolsPresent){var O=null!==(n=(new Error).stack)&&void 0!==n?n:"";null===(i=y.default.REACT_GLOBAL_STATE_HOOK_DEBUG)||void 0===i||i.call(y.default,this,u,O)}this.constructor!==t||this.initialize()}));function S(t,e){var r=null==e?void 0:e.name,n=null==e?void 0:e.isEqualRoot,o=null==e?void 0:e.isEqual,i=this.getState(),a=(null!=t?t:function(t){return t})(i),s=new m(a,{name:null!=r?r:(0,g.uniqueId)("sh:")}),u=this.subscribe((function(e){if(!(null!=n?n:Object.is)(i,e)){i=e;var r=t(e);(null!=o?o:Object.is)(a,r)||(a=r,s.setState(r))}}),{skipFirst:!0}),c=s.subscribe.bind(s),l={getState:s.getState.bind(s),subscribe:s.subscribe.bind(s),createSelectorHook:w.bind(c),createObservable:S.bind(c),dispose:function(){u(),s.dispose()}};return Object.assign(c,l),c}function w(t,e){var n=null==e?void 0:e.name,o=null==e?void 0:e.isEqualRoot,i=null==e?void 0:e.isEqual,a=this.getState(),s=(null!=t?t:function(t){return t})(a),u=new m(s,{name:null!=n?n:(0,g.uniqueId)("sh:")}),c=this.subscribe((function(e){if(!(null!=o?o:Object.is)(a,e)){a=e;var r=t(e);(null!=i?i:Object.is)(s,r)||(s=r,u.setState(r))}}),{skipFirst:!0}),l=function(){return(t=u.use.apply(u,arguments),function(t){if(Array.isArray(t))return t}(t)||function(t){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,n,o,i,a=[],s=!0,u=!1;try{for(o=(e=e.call(t)).next;!(s=(r=o.call(e)).done)&&(a.push(r.value),1!==a.length);s=!0);}catch(t){u=!0,n=t}finally{try{if(!s&&null!=e.return&&(i=e.return(),Object(i)!==i))return}finally{if(u)throw n}}return a}}(t)||r(t,1)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];var t},f={getState:function(){return u.getState()},subscribe:u.subscribe.bind(u),createSelectorHook:w.bind(l),createObservable:S.bind(l),dispose:function(){c(),u.dispose()}};return Object.assign(l,f),l}t.GlobalStore=m,t.default=m})(),l})(),"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./uniqueId.js"),require("react"),require("./throwWrongKeyOnActionCollectionConfig.js"),require("./isRecord.js"),require("json-storage-formatter/isFunction"),require("./shallowCompare.js"),require("json-storage-formatter/isNil")):"function"==typeof define&&define.amd?define(["./uniqueId.js","react","./throwWrongKeyOnActionCollectionConfig.js","./isRecord.js","json-storage-formatter/isFunction","./shallowCompare.js","json-storage-formatter/isNil"],e):"object"==typeof exports?exports["react-hooks-global-states"]=e(require("./uniqueId.js"),require("react"),require("./throwWrongKeyOnActionCollectionConfig.js"),require("./isRecord.js"),require("json-storage-formatter/isFunction"),require("./shallowCompare.js"),require("json-storage-formatter/isNil")):t["react-hooks-global-states"]=e(t["./uniqueId.js"],t.react,t["./throwWrongKeyOnActionCollectionConfig.js"],t["./isRecord.js"],t["json-storage-formatter/isFunction"],t["./shallowCompare.js"],t["json-storage-formatter/isNil"]);
|
|
1
|
+
var t,e;t=this,e=(t,e,r,n,o,i,a)=>(()=>{"use strict";var s={78:e=>{e.exports=t},155:t=>{t.exports=e},361:t=>{t.exports=r},487:t=>{t.exports=n},506:t=>{t.exports=o},673:t=>{t.exports=i},773:t=>{t.exports=a},811:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var r=globalThis;r.isDevToolsPresent=Boolean(r.REACT_GLOBAL_STATE_HOOK_DEBUG),e.default=r}},u={};function c(t){var e=u[t];if(void 0!==e)return e.exports;var r=u[t]={exports:{}};return s[t](r,r.exports,c),r.exports}var l={};return(()=>{var t=l;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(){o=function(){return r};var t,r={},n=Object.prototype,i=n.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",l=s.toStringTag||"@@toStringTag";function f(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{f({},"")}catch(t){f=function(t,e,r){return t[e]=r}}function d(t,e,r,n){var o=e&&e.prototype instanceof m?e:m,i=Object.create(o.prototype),s=new T(n||[]);return a(i,"_invoke",{value:_(t,r,s)}),i}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=d;var b="suspendedStart",p="suspendedYield",v="executing",y="completed",g={};function m(){}function S(){}function w(){}var j={};f(j,u,(function(){return this}));var O=Object.getPrototypeOf,x=O&&O(O(M([])));x&&x!==n&&i.call(x,u)&&(j=x);var k=w.prototype=m.prototype=Object.create(j);function E(t){["next","throw","return"].forEach((function(e){f(t,e,(function(t){return this._invoke(e,t)}))}))}function L(t,r){function n(o,a,s,u){var c=h(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==e(f)&&i.call(f,"__await")?r.resolve(f.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):r.resolve(f).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,u)}))}u(c.arg)}var o;a(this,"_invoke",{value:function(t,e){function i(){return new r((function(r,o){n(t,e,r,o)}))}return o=o?o.then(i,i):i()}})}function _(e,r,n){var o=b;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=C(s,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===b)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var c=h(e,r,n);if("normal"===c.type){if(o=n.done?y:p,c.arg===g)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=y,n.method="throw",n.arg=c.arg)}}}function C(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,C(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=h(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function q(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(q,this),this.reset(!0)}function M(r){if(r||""===r){var n=r[u];if(n)return n.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,a=function e(){for(;++o<r.length;)if(i.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(e(r)+" is not iterable")}return S.prototype=w,a(k,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:S,configurable:!0}),S.displayName=f(w,l,"GeneratorFunction"),r.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===S||"GeneratorFunction"===(e.displayName||e.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,f(t,l,"GeneratorFunction")),t.prototype=Object.create(k),t},r.awrap=function(t){return{__await:t}},E(L.prototype),f(L.prototype,c,(function(){return this})),r.AsyncIterator=L,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new L(d(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},E(k),f(k,l,"Generator"),f(k,u,(function(){return this})),f(k,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=M,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&i.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,o){return s.type="throw",s.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),c=i.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),g},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},r}function i(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,s(n.key),n)}}function a(t,e,r){return e&&i(t.prototype,e),r&&i(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t){var r=function(t){if("object"!=e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:r+""}Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalStore=void 0,t.createObservable=S,t.createSelectorHook=w;var u,f=c(155),d=c(506),h=c(773),b=c(487),p=c(673),v=c(361),y=c(78),g=(u=c(811))&&u.__esModule?u:{default:u},m=a((function t(e){var n,i,a=this,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{metadata:{}};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.actionsConfig=null,this.callbacks=null,this.actions=null,this.subscribers=new Set,this.initialize=function(){return t=a,e=void 0,r=o().mark((function t(){var e,r,n,i,a,s,u;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=this.getStoreActionsMap(),n=r.actions,i=r.storeTools,this.actions=n,this.storeTools=i,this.use=this.getMainHook(),a=this.onInit,s=null!==(e=this.callbacks)&&void 0!==e?e:{},u=s.onInit,a||u){t.next=8;break}return t.abrupt("return");case 8:null==a||a(i),(0,h.isNil)(u)||null==u||u(i);case 10:case"end":return t.stop()}}),t,this)})),new(e||(e=Promise))((function(n,o){function i(t){try{s(r.next(t))}catch(t){o(t)}}function a(t){try{s(r.throw(t))}catch(t){o(t)}}function s(t){var r;t.done?n(t.value):(r=t.value,r instanceof e?r:new e((function(t){t(r)}))).then(i,a)}s((r=r.apply(t,[])).next())}));var t,e,r},this.executeSetStateForSubscriber=function(t,e){var r,n,o=t.selector,i=t.callback,s=t.currentState,u=t.options;if(!e.forceUpdate&&(null!==(r=null==u?void 0:u.isEqualRoot)&&void 0!==r?r:function(t,e){return t===e})(e.currentState,e.newState))return{didUpdate:!1};var c=o?o(e.newState):e.newState;return!e.forceUpdate&&(null!==(n=null==u?void 0:u.isEqual)&&void 0!==n?n:function(t,e){return t===e})(s,c)?{didUpdate:!1}:(a.partialUpdateSubscription(t,{currentState:c}),i({state:c},{identifier:e.identifier}),{didUpdate:!0})},this.setSubscribersState=function(t,e){var n=e.forceUpdate,o=e.identifier,i=a.state;if(n||i!==t){a.state=t;var s,u={forceUpdate:n,newState:t,currentState:i,identifier:o},c=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=r(t))){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(s)throw i}}}}(a.subscribers.values());try{for(c.s();!(s=c.n()).done;){var l=s.value;a.executeSetStateForSubscriber(l,u)}}catch(t){c.e(t)}finally{c.f()}}},this.setMetadata=function(t){var e=(0,d.isFunction)(t)?t(a.metadata):t;a.metadata=e},this.getMetadata=function(){return a.metadata},this.getState=function(){return a.state},this.subscribe=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n,o=e[0],i=e[1],s=e[2],u=(0,d.isFunction)(i),c=u?o:void 0,l=u?i:o,f=null!==(n=u?s:i)&&void 0!==n?n:void 0,h=c?c(a.state):a.state;(null==f?void 0:f.skipFirst)||l(h);var b={selector:c,options:f,currentState:h,callback:function(t){var e=t.state;return l(e)}};return a.subscribeCallback(b),function(){a.subscribers.delete(b)}},this.subscribeCallback=function(t){return a.executeOnSubscribed(t),a.subscribers.add(t),function(){a.subscribers.delete(t)}},this.partialUpdateSubscription=function(t,e){(0,b.isRecord)(t)&&Object.assign(t,e)},this.executeOnSubscribed=function(t){var e,r=a.onSubscribed,n=null===(e=a.callbacks)||void 0===e?void 0:e.onSubscribed;(r||n)&&(null==r||r(a.storeTools,t),null==n||n(a.storeTools,t))},this.getMainHook=function(){var t=function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];(0,f.useDebugValue)("global-state: ".concat(a._name));var n=(0,p.isArray)(r)?{dependencies:r}:null!=r?r:{},o=(0,f.useRef)(null),i=function(e){return(0,d.isFunction)(t)?t(e):e};o.current=o.current?o.current:{options:n,selector:i,currentState:i(a.state),callback:function(){throw new Error("Callback not set")}};var s=null===(e=o.current.options)||void 0===e?void 0:e.dependencies,u=null==n?void 0:n.dependencies;Object.assign(o.current,{selector:i,options:n});var c=(0,f.useMemo)((function(){var t=function(){return o.current.currentState};return{subscribe:function(t){return o.current.callback=t,a.subscribeCallback(o.current)},getSnapshot:t,getServerSnapshot:t}}),[]),l=c.subscribe,h=c.getSnapshot,b=c.getServerSnapshot;return(0,f.useSyncExternalStore)(l,h,b),[a.computeSelectedState({subscription:o.current,newDependencies:u,currentDependencies:s}),a.getStateOrchestrator(),a.metadata]},e=a.setMetadata,r=a.getMetadata,n=a.actions,o=a.actions?null:a.setState.bind(a),i=a,s={actions:n,createObservable:a.createObservable.bind(i),createSelectorHook:a.createSelectorHook.bind(i),dispose:a.dispose.bind(a),getMetadata:r,getState:a.getState.bind(a),setMetadata:e,setState:o,subscribe:a.subscribe.bind(a),subscribers:a.subscribers,use:t,select:function(){return t.apply(void 0,arguments)[0]}};return Object.assign(t,s),t},this.computeSelectedState=function(t){var e=t.subscription,r=t.newDependencies,n=t.currentDependencies;return e.selector?(n===r||(null==n?void 0:n.length)===(null==r?void 0:r.length)&&(0,p.shallowCompare)(n,r)||a.partialUpdateSubscription(e,{currentState:e.selector(a.state)}),e.currentState):e.currentState},this.createSelectorHook=w,this.createObservable=S,this.getStateOrchestrator=function(){return a.actions?a.actions:a.setState},this.setState=function(t){var e,r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.forceUpdate,i=n.identifier,s=a.state,u=(0,d.isFunction)(t)?t(s):t;if(o||a.state!==u){var c=a.setMetadata,l=a.getMetadata,f=a.getState,h=a.actions,b={setMetadata:c,getMetadata:l,setState:a.setSubscribersState,getState:f,actions:h,previousState:s,state:u,identifier:i},p=a.computePreventStateChange,v=null===(e=a.callbacks)||void 0===e?void 0:e.computePreventStateChange;if((p||v)&&((null==p?void 0:p(b))||(null==v?void 0:v(b))))return;a.setSubscribersState(u,{forceUpdate:o,identifier:i});var y=a.onStateChanged,g=null===(r=a.callbacks)||void 0===r?void 0:r.onStateChanged;(y||g)&&(null==y||y(b),null==g||g(b))}},this.getStoreActionsMap=function(){var t=a.actionsConfig,e=a.getMetadata,r=a.getState,n={setMetadata:a.setMetadata,getMetadata:e,getState:r,setState:a.setState,subscribe:a.subscribe,actions:null};if(!(0,b.isRecord)(t))return{actions:null,storeTools:n};var o={};n.actions=o;for(var i=Object.keys(t),u=function(){var e,r,i,a=l[c];Object.assign(o,(e={},i=function(){for(var e=t[a],r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];var u=e.apply(o,i);return"function"!=typeof u&&(0,v.throwWrongKeyOnActionCollectionConfig)(a),u.call(o,n)},(r=s(r=a))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e))},c=0,l=i;c<l.length;c++)u();return{actions:o,storeTools:n}},this.removeSubscriptions=function(){a.subscribers.clear()},this.dispose=function(){a.removeSubscriptions(),a._name="",a.actionsConfig=null,a.callbacks=null,a.metadata={},a.actions=null,a.state=Object.create(null)};var c=u.metadata,l=u.callbacks,m=u.actions,j=u.name;if(this.state=e,this._name=null!=j?j:(0,y.uniqueId)("gs:"),this.metadata=null!=c?c:{},this.callbacks=null!=l?l:null,this.actionsConfig=null!=m?m:null,g.default.isDevToolsPresent){var O=null!==(n=(new Error).stack)&&void 0!==n?n:"";null===(i=g.default.REACT_GLOBAL_STATE_HOOK_DEBUG)||void 0===i||i.call(g.default,this,u,O)}this.constructor!==t||this.initialize()}));function S(t,e){var r=null==e?void 0:e.name,n=null==e?void 0:e.isEqualRoot,o=null==e?void 0:e.isEqual,i=this.getState(),a=(null!=t?t:function(t){return t})(i),s=new m(a,{name:null!=r?r:(0,y.uniqueId)("sh:")}),u=this.subscribe((function(e){if(!(null!=n?n:Object.is)(i,e)){i=e;var r=t(e);(null!=o?o:Object.is)(a,r)||(a=r,s.setState(r))}}),{skipFirst:!0}),c=s.subscribe.bind(s),l={getState:s.getState.bind(s),subscribe:s.subscribe.bind(s),createSelectorHook:w.bind(c),createObservable:S.bind(c),dispose:function(){u(),s.dispose()},subscribers:s.subscribers};return Object.assign(c,l),c}function w(t,e){var n=null==e?void 0:e.name,o=null==e?void 0:e.isEqualRoot,i=null==e?void 0:e.isEqual,a=this.getState(),s=(null!=t?t:function(t){return t})(a),u=new m(s,{name:null!=n?n:(0,y.uniqueId)("sh:")}),c=this.subscribe((function(e){if(!(null!=o?o:Object.is)(a,e)){a=e;var r=t(e);(null!=i?i:Object.is)(s,r)||(s=r,u.setState(r))}}),{skipFirst:!0}),l=function(){return(t=u.use.apply(u,arguments),function(t){if(Array.isArray(t))return t}(t)||function(t){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,n,o,i,a=[],s=!0,u=!1;try{for(o=(e=e.call(t)).next;!(s=(r=o.call(e)).done)&&(a.push(r.value),1!==a.length);s=!0);}catch(t){u=!0,n=t}finally{try{if(!s&&null!=e.return&&(i=e.return(),Object(i)!==i))return}finally{if(u)throw n}}return a}}(t)||r(t,1)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];var t},f={getState:function(){return u.getState()},subscribe:u.subscribe.bind(u),createSelectorHook:w.bind(l),createObservable:S.bind(l),dispose:function(){c(),u.dispose()},subscribers:u.subscribers};return Object.assign(l,f),l}t.GlobalStore=m,t.default=m})(),l})(),"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./uniqueId.js"),require("react"),require("./throwWrongKeyOnActionCollectionConfig.js"),require("./isRecord.js"),require("json-storage-formatter/isFunction"),require("./shallowCompare.js"),require("json-storage-formatter/isNil")):"function"==typeof define&&define.amd?define(["./uniqueId.js","react","./throwWrongKeyOnActionCollectionConfig.js","./isRecord.js","json-storage-formatter/isFunction","./shallowCompare.js","json-storage-formatter/isNil"],e):"object"==typeof exports?exports["react-hooks-global-states"]=e(require("./uniqueId.js"),require("react"),require("./throwWrongKeyOnActionCollectionConfig.js"),require("./isRecord.js"),require("json-storage-formatter/isFunction"),require("./shallowCompare.js"),require("json-storage-formatter/isNil")):t["react-hooks-global-states"]=e(t["./uniqueId.js"],t.react,t["./throwWrongKeyOnActionCollectionConfig.js"],t["./isRecord.js"],t["json-storage-formatter/isFunction"],t["./shallowCompare.js"],t["json-storage-formatter/isNil"]);
|
package/createContext.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { type PropsWithChildren, Context as ReactContext } from 'react';
|
|
2
|
-
import type { BaseMetadata, GlobalStoreCallbacks, UseHookOptions, AnyFunction, StoreTools
|
|
2
|
+
import type { BaseMetadata, GlobalStoreCallbacks, UseHookOptions, AnyFunction, StoreTools, ReadonlyStateApi, SelectHook, ObservableFragment, StateApi } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* @description Resulting type of the action collection configuration
|
|
5
5
|
*/
|
|
@@ -60,7 +60,7 @@ export type ContextStoreToolsExtensions<State, StateMutator, Metadata extends Ba
|
|
|
60
60
|
/**
|
|
61
61
|
* @description Store tools specialized for context usage
|
|
62
62
|
*/
|
|
63
|
-
export type ContextStoreTools<State, StateMutator, Metadata extends BaseMetadata> =
|
|
63
|
+
export type ContextStoreTools<State, StateMutator, Metadata extends BaseMetadata> = StoreTools<State, StateMutator, Metadata> & ContextStoreToolsExtensions<State, StateMutator, Metadata>;
|
|
64
64
|
/**
|
|
65
65
|
* @description Extensions methods for the ContextProvider component
|
|
66
66
|
*/
|
package/createContext.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=(e,t,r,o)=>(()=>{"use strict";var n={155:t=>{t.exports=e},506:e=>{e.exports=t},639:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createContext=void 0;var o=r(155),n=r(778),a=r(506),
|
|
1
|
+
var e,t;e=this,t=(e,t,r,o)=>(()=>{"use strict";var n={155:t=>{t.exports=e},506:e=>{e.exports=t},639:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createContext=void 0;var o=r(155),n=r(778),a=r(506),u=r(773);function i(e,t){var r=this,a=function(){(0,o.useDebugValue)("context-selector: ".concat(null==t?void 0:t.name));var n=r.api();return(0,o.useMemo)((function(){return n.createSelectorHook(e,t)}),[n]).apply(void 0,arguments)},u={createSelectorHook:i.bind(a),api:function(){(0,o.useDebugValue)("context-selector-api: ".concat(null==t?void 0:t.name));var a=r.api();return(0,o.useMemo)((function(){var r=a.createObservable(e,t);return Object.assign(Object.assign({},a),{getState:function(){return r.getState()},subscribe:r.subscribe.bind(r),createSelectorHook:n.createSelectorHook.bind(r),createObservable:n.createObservable.bind(r)})}),[a])}};return Object.assign(a,u),a}t.createContext=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.createContext)(null),s=function(i){var s=i.children,c=i.value,v=i.onCreated,d=(0,o.useMemo)((function(){var r,o=function(){return(0,a.isFunction)(e)?e():e},i=(0,u.isNil)(c)?o():(0,a.isFunction)(c)?c(o()):c,s=new n.GlobalStore(i,Object.assign(Object.assign({},t),{metadata:null!==(r=(0,a.isFunction)(t.metadata)?t.metadata():t.metadata)&&void 0!==r?r:{}})),v={use:l};return Object.assign(s.storeTools,v),s}),[]);return(0,o.useEffect)((function(){return function(){var e,t,r,o;null===(t=null===(e=d.callbacks)||void 0===e?void 0:e.onUnMount)||void 0===t||t.call(e,d),null===(o=(r=d).__onUnMountContext)||void 0===o||o.call(r,d),d.dispose()}}),[d]),null==v||v(d.storeTools),(0,o.createElement)(r.Provider,{value:d.use},s)},c={makeProviderWrapper:function(e){var t={current:void 0};return{wrapper:function(r){var n=r.children;return(0,o.createElement)(s,{value:null==e?void 0:e.value,onCreated:function(r){var o;t.current=r,null===(o=null==e?void 0:e.onCreated)||void 0===o||o.call(e,r)}},n)},context:t}}},l=function(){(0,o.useDebugValue)("context-use: ".concat(t.name));var e=(0,o.useContext)(r);if(!e)throw new Error("use hook must be used within a ContextProvider");return e.apply(void 0,arguments)},v=function(){(0,o.useDebugValue)("context-api: ".concat(t.name));var e=(0,o.useContext)(r);if(!e)throw new Error("api hook must be used within a ContextProvider");return e},d={createSelectorHook:i.bind(l),api:v,select:function(){return l.apply(void 0,arguments)[0]},observable:function(){(0,o.useDebugValue)("context-observable: ".concat(t.name));for(var e=v(),r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];var u=(0,o.useRef)(n);return u.current=n,(0,o.useMemo)((function(){var t,r,o;return e.createObservable((function(e){return(0,u.current[0])(e)}),{isEqualRoot:(null===(t=u.current[1])||void 0===t?void 0:t.isEqualRoot)?function(e,t){var r=u.current[1].isEqualRoot;return Boolean(r(e,t))}:void 0,isEqual:(null===(r=u.current[1])||void 0===r?void 0:r.isEqual)?function(e,t){var r=u.current[1].isEqual;return Boolean(r(e,t))}:void 0,name:null===(o=u.current[1])||void 0===o?void 0:o.name})}),[e])},actions:function(){return v().actions}};return Object.assign(s,c),Object.assign(l,d),{use:l,Provider:s,Context:r}},t.default=t.createContext},773:e=>{e.exports=r},778:e=>{e.exports=o}},a={};return function e(t){var r=a[t];if(void 0!==r)return r.exports;var o=a[t]={exports:{}};return n[t](o,o.exports,e),o.exports}(639)})(),"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("json-storage-formatter/isFunction"),require("json-storage-formatter/isNil"),require("./GlobalStore.js")):"function"==typeof define&&define.amd?define(["react","json-storage-formatter/isFunction","json-storage-formatter/isNil","./GlobalStore.js"],t):"object"==typeof exports?exports["react-hooks-global-states"]=t(require("react"),require("json-storage-formatter/isFunction"),require("json-storage-formatter/isNil"),require("./GlobalStore.js")):e["react-hooks-global-states"]=t(e.react,e["json-storage-formatter/isFunction"],e["json-storage-formatter/isNil"],e["./GlobalStore.js"]);
|
package/createGlobalState.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ interface CreateGlobalState {
|
|
|
86
86
|
* }
|
|
87
87
|
* ```
|
|
88
88
|
*/
|
|
89
|
-
<State, Metadata extends BaseMetadata, ActionsConfig extends ActionCollectionConfig<State, Metadata> | null | {}, PublicStateMutator = keyof ActionsConfig extends never | undefined ? React.Dispatch<React.SetStateAction<State>> : ActionCollectionResult<State, Metadata, NonNullable<ActionsConfig
|
|
89
|
+
<State, Metadata extends BaseMetadata, ActionsConfig extends ActionCollectionConfig<State, Metadata> | null | {}, PublicStateMutator = keyof ActionsConfig extends never | undefined ? React.Dispatch<React.SetStateAction<State>> : ActionCollectionResult<State, Metadata, NonNullable<ActionsConfig>>>(state: State, args: {
|
|
90
90
|
name?: string;
|
|
91
91
|
metadata?: Metadata;
|
|
92
92
|
callbacks?: GlobalStoreCallbacks<State, PublicStateMutator, Metadata>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-hooks-global-states",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.1.0-beta.0",
|
|
4
4
|
"description": "This is a package to easily handling global-state across your react-components using hooks.",
|
|
5
5
|
"main": "./bundle.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -62,17 +62,20 @@
|
|
|
62
62
|
"*.d.ts"
|
|
63
63
|
],
|
|
64
64
|
"scripts": {
|
|
65
|
-
"format": "prettier --write .",
|
|
66
|
-
"test
|
|
67
|
-
"test:
|
|
68
|
-
"test:
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
65
|
+
"format": "prettier --write . --log-level silent && yarn lint:fix",
|
|
66
|
+
"test": "yarn build && yarn jest",
|
|
67
|
+
"test:debug:no-watch": "node --inspect-brk node_modules/.bin/jest --no-watchman --runInBand",
|
|
68
|
+
"test:debug": "node --inspect-brk node_modules/.bin/jest --watch --runInBand",
|
|
69
|
+
"test:quick": "yarn test --no-coverage --maxWorkers=4 -c --no-watchman -u",
|
|
70
|
+
"test:coverage": "yarn test --maxWorkers=4 -c --colors --no-watchman --verbose --coverage",
|
|
71
|
+
"build": "yarn ts-check && yarn clean && webpack --config webpack.config.js",
|
|
72
|
+
"prepare": "yarn format && npm run build && yarn test:quick",
|
|
73
|
+
"version": "npm run format && yarn build && yarn jest && git add -A",
|
|
72
74
|
"postversion": "git push && git push --tags",
|
|
73
|
-
"lint": "eslint
|
|
74
|
-
"lint:fix": "eslint --fix
|
|
75
|
-
"clean": "find . -maxdepth 1 -type f \\( -name '*.js' -o -name '*.d.ts' \\) ! -name 'webpack.config.js' -exec rm {} +"
|
|
75
|
+
"lint": "eslint . --max-warnings=0",
|
|
76
|
+
"lint:fix": "eslint . --fix --max-warnings=0",
|
|
77
|
+
"clean": "find . -maxdepth 1 -type f \\( -name '*.js' -o -name '*.d.ts' \\) ! -name 'webpack.config.js' ! -name 'eslint.config.mts' -exec rm {} +",
|
|
78
|
+
"ts-check": "tsc -p tsconfig.json --noEmit"
|
|
76
79
|
},
|
|
77
80
|
"repository": {
|
|
78
81
|
"type": "git",
|
|
@@ -104,6 +107,7 @@
|
|
|
104
107
|
"@babel/preset-env": "^7.20.2",
|
|
105
108
|
"@babel/preset-react": "^7.18.6",
|
|
106
109
|
"@babel/preset-typescript": "^7.21.0",
|
|
110
|
+
"@eslint/js": "^9.39.1",
|
|
107
111
|
"@testing-library/dom": "^10.4.0",
|
|
108
112
|
"@testing-library/react": "^16.3.0",
|
|
109
113
|
"@types/jest": "^29.5.11",
|
|
@@ -114,14 +118,15 @@
|
|
|
114
118
|
"babel-loader": "^9.1.2",
|
|
115
119
|
"clean-webpack-plugin": "^4.0.0",
|
|
116
120
|
"easy-cancelable-promise": "^1.0.1",
|
|
117
|
-
"eslint": "^
|
|
121
|
+
"eslint": "^9.39.1",
|
|
118
122
|
"eslint-config-airbnb": "^18.2.1",
|
|
119
123
|
"eslint-plugin-import": "^2.22.1",
|
|
120
124
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
121
|
-
"eslint-plugin-react": "^7.
|
|
125
|
+
"eslint-plugin-react": "^7.37.5",
|
|
122
126
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
123
127
|
"jest": "^29.7.0",
|
|
124
128
|
"jest-environment-jsdom": "^30.0.4",
|
|
129
|
+
"jiti": "^2.6.1",
|
|
125
130
|
"json-storage-formatter": "^2.0.9",
|
|
126
131
|
"prettier": "^3.6.2",
|
|
127
132
|
"react": "^18.2.0",
|
|
@@ -130,6 +135,7 @@
|
|
|
130
135
|
"ts-loader": "^9.5.1",
|
|
131
136
|
"tslib": "^2.6.2",
|
|
132
137
|
"typescript": "^5.8.2",
|
|
138
|
+
"typescript-eslint": "^8.46.3",
|
|
133
139
|
"webpack": "^5.76.3",
|
|
134
140
|
"webpack-cli": "^5.0.1"
|
|
135
141
|
},
|
package/types.d.ts
CHANGED
|
@@ -133,15 +133,21 @@ export type StateApi<State, StateMutator, Metadata extends BaseMetadata> = {
|
|
|
133
133
|
* @description Disposes the global state instance, cleaning up all resources and subscriptions.
|
|
134
134
|
*/
|
|
135
135
|
dispose: () => void;
|
|
136
|
+
/**
|
|
137
|
+
* @deprecated
|
|
138
|
+
* @description Useful for debugging purposes, exposes the current subscribers of the store
|
|
139
|
+
* You'll probably not need to use this in your application
|
|
140
|
+
*/
|
|
141
|
+
subscribers: Set<SubscriberParameters>;
|
|
136
142
|
};
|
|
137
143
|
/**
|
|
138
144
|
* @description Readonly version of the StateApi, excluding mutative methods.
|
|
139
145
|
*/
|
|
140
|
-
export type ReadonlyStateApi<State, StateMutator, Metadata extends BaseMetadata> = Pick<StateApi<State, StateMutator, Metadata>, 'dispose' | 'getState' | 'subscribe' | 'createSelectorHook' | 'createObservable'>;
|
|
146
|
+
export type ReadonlyStateApi<State, StateMutator, Metadata extends BaseMetadata> = Pick<StateApi<State, StateMutator, Metadata>, 'dispose' | 'getState' | 'subscribe' | 'createSelectorHook' | 'createObservable' | 'subscribers'>;
|
|
141
147
|
/**
|
|
142
148
|
* @description Function that allows you to subscribe to a fragment of the state
|
|
143
149
|
*/
|
|
144
|
-
export type ObservableFragment<State, StateMutator, Metadata extends BaseMetadata> = SubscribeToState<State> & Pick<StateApi<State, StateMutator, Metadata>, 'getState' | 'subscribe' | 'createSelectorHook' | 'createObservable' | 'dispose'>;
|
|
150
|
+
export type ObservableFragment<State, StateMutator, Metadata extends BaseMetadata> = SubscribeToState<State> & Pick<StateApi<State, StateMutator, Metadata>, 'getState' | 'subscribe' | 'createSelectorHook' | 'createObservable' | 'dispose' | 'subscribers'>;
|
|
145
151
|
export interface StateHook<State, StateMutator, Metadata extends BaseMetadata> extends StateApi<State, StateMutator, Metadata> {
|
|
146
152
|
/**
|
|
147
153
|
* @description React hook that provides access to the state, state mutator, and metadata.
|
|
@@ -336,7 +342,7 @@ export type SubscriberParameters = {
|
|
|
336
342
|
/**
|
|
337
343
|
* Uses a function to avoid losing the reference when the subscription is created
|
|
338
344
|
*/
|
|
339
|
-
|
|
345
|
+
options: UseHookOptions<any> | SubscribeCallbackConfig<any> | undefined;
|
|
340
346
|
currentState: unknown;
|
|
341
347
|
/**
|
|
342
348
|
* @description notification callback
|
package/webpack.config.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
1
2
|
const path = require('path');
|
|
2
3
|
const TerserPlugin = require('terser-webpack-plugin');
|
|
3
4
|
|
|
@@ -13,7 +14,7 @@ const individualEntries = {
|
|
|
13
14
|
uniqueId: './src/uniqueId.ts',
|
|
14
15
|
};
|
|
15
16
|
|
|
16
|
-
const
|
|
17
|
+
const generateExternalEntryMappings = () => {
|
|
17
18
|
const keys = Object.keys(individualEntries);
|
|
18
19
|
return keys.reduce((acc, key) => {
|
|
19
20
|
acc[`./${key}`] = `./${key}.js`;
|
|
@@ -44,7 +45,7 @@ module.exports = {
|
|
|
44
45
|
'json-storage-formatter/formatFromStore': 'json-storage-formatter/formatFromStore',
|
|
45
46
|
'json-storage-formatter/formatToStore': 'json-storage-formatter/formatToStore',
|
|
46
47
|
|
|
47
|
-
...
|
|
48
|
+
...generateExternalEntryMappings(),
|
|
48
49
|
},
|
|
49
50
|
output: {
|
|
50
51
|
path: path.resolve(__dirname),
|