react-hooks-global-states 16.0.1-beta → 16.0.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/jest.config.js +50 -0
- package/package.json +52 -2
- package/GlobalStore.cjs +0 -1
- package/GlobalStore.d.ts +0 -160
- package/GlobalStore.debugProps.cjs +0 -1
- package/GlobalStore.debugProps.d.ts +0 -5
- package/GlobalStore.debugProps.js +0 -1
- package/GlobalStore.debugProps.mjs +0 -1
- package/GlobalStore.js +0 -1
- package/GlobalStore.mjs +0 -1
- package/actions.cjs +0 -1
- package/actions.d.ts +0 -32
- package/actions.js +0 -1
- package/actions.mjs +0 -1
- package/bundle.cjs +0 -1
- package/bundle.js +0 -1
- package/bundle.mjs +0 -1
- package/createContext.cjs +0 -1
- package/createContext.d.ts +0 -15
- package/createContext.js +0 -1
- package/createContext.mjs +0 -1
- package/createGlobalState.cjs +0 -1
- package/createGlobalState.d.ts +0 -7
- package/createGlobalState.js +0 -1
- package/createGlobalState.mjs +0 -1
- package/index.d.ts +0 -9
- package/isRecord.cjs +0 -1
- package/isRecord.d.ts +0 -2
- package/isRecord.js +0 -1
- package/isRecord.mjs +0 -1
- package/shallowCompare.cjs +0 -1
- package/shallowCompare.d.ts +0 -52
- package/shallowCompare.js +0 -1
- package/shallowCompare.mjs +0 -1
- package/throwWrongKeyOnActionCollectionConfig.cjs +0 -12
- package/throwWrongKeyOnActionCollectionConfig.d.ts +0 -2
- package/throwWrongKeyOnActionCollectionConfig.js +0 -12
- package/throwWrongKeyOnActionCollectionConfig.mjs +0 -12
- package/types.cjs +0 -1
- package/types.d.ts +0 -1268
- package/types.js +0 -1
- package/types.mjs +0 -0
- package/uniqueId.cjs +0 -1
- package/uniqueId.d.ts +0 -7
- package/uniqueId.js +0 -1
- package/uniqueId.mjs +0 -1
package/jest.config.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Tests run against the COMPILED output in `dist/` by default, so we exercise the
|
|
5
|
+
* exact artifact that gets published (minification, dual ESM/CJS emit, `__esModule`
|
|
6
|
+
* interop shape, etc.) instead of the raw TypeScript source.
|
|
7
|
+
*
|
|
8
|
+
* Toggle to the source with: TEST_TARGET=src yarn jest
|
|
9
|
+
* (useful for quick iteration/coverage against `src`, and for debugging with
|
|
10
|
+
* original identifiers).
|
|
11
|
+
*
|
|
12
|
+
* How it works: test files import from the `@react-hooks-global-states` alias (barrel)
|
|
13
|
+
* or `@react-hooks-global-states/<name>` (subpath). At RUNTIME, `moduleNameMapper`
|
|
14
|
+
* points that alias at `src` or `dist`. For type-checking, tsconfig `paths` always
|
|
15
|
+
* points the alias at `src`, so we get source-level type safety while executing
|
|
16
|
+
* whichever build we selected.
|
|
17
|
+
*/
|
|
18
|
+
const target = process.env.TEST_TARGET === 'src' ? 'src' : 'dist';
|
|
19
|
+
|
|
20
|
+
/** @type {import('jest').Config} */
|
|
21
|
+
const config = {
|
|
22
|
+
testEnvironment: 'jsdom',
|
|
23
|
+
collectCoverageFrom: ['./src/*.ts', './__tests__/*.tsx', './__tests__/*.ts'],
|
|
24
|
+
coverageDirectory: './coverage',
|
|
25
|
+
coverageReporters: ['text', 'html'],
|
|
26
|
+
setupFilesAfterEnv: ['./jestSetup.ts'],
|
|
27
|
+
// Keep `dist/` out of test discovery and Jest's haste map (otherwise `dist/package.json`
|
|
28
|
+
// collides with the root one). Modules under `dist/` are still reachable because
|
|
29
|
+
// `moduleNameMapper` resolves the alias to explicit files, not via haste/discovery.
|
|
30
|
+
testPathIgnorePatterns: ['/node_modules/', '<rootDir>/dist/'],
|
|
31
|
+
modulePathIgnorePatterns: ['<rootDir>/dist/package.json'],
|
|
32
|
+
haste: {
|
|
33
|
+
// Don't index `dist/` for haste; avoids the duplicate-name warning.
|
|
34
|
+
retainAllFiles: false,
|
|
35
|
+
},
|
|
36
|
+
transform: {
|
|
37
|
+
// Use the test tsconfig so ts-jest resolves the `@react-hooks-global-states` alias
|
|
38
|
+
// (`paths`) during type-checking, matching what the editor / `ts-check:tests` use.
|
|
39
|
+
'^.+\\.tsx?$': ['ts-jest', { tsconfig: '<rootDir>/__test__/tsconfig.json' }],
|
|
40
|
+
},
|
|
41
|
+
moduleNameMapper: {
|
|
42
|
+
// Order matters: match the subpath form before the bare barrel.
|
|
43
|
+
// The barrel points at the package entry file directly (dist has no index.js).
|
|
44
|
+
'^@react-hooks-global-states$':
|
|
45
|
+
target === 'dist' ? '<rootDir>/dist/bundle.cjs' : '<rootDir>/src/index.ts',
|
|
46
|
+
'^@react-hooks-global-states/(.*)$': `<rootDir>/${target}/$1`,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
module.exports = config;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-hooks-global-states",
|
|
3
|
-
"version": "16.0.1
|
|
3
|
+
"version": "16.0.1",
|
|
4
4
|
"description": "A package to easily handle global state across your React components using hooks.",
|
|
5
5
|
"main": "./bundle.cjs",
|
|
6
6
|
"module": "./bundle.mjs",
|
|
@@ -65,6 +65,27 @@
|
|
|
65
65
|
"*.mjs",
|
|
66
66
|
"*.d.ts"
|
|
67
67
|
],
|
|
68
|
+
"scripts": {
|
|
69
|
+
"format": "prettier --write . --log-level silent && yarn lint:fix",
|
|
70
|
+
"test": "yarn build && yarn ts-check:tests && yarn jest",
|
|
71
|
+
"test:logs": "sh -c 'yarn build && yarn jest \"$@\" 2>&1 | grep -i \"console\" -A 2' --",
|
|
72
|
+
"test:debug:no-watch": "node --inspect-brk node_modules/.bin/jest --no-watchman --runInBand",
|
|
73
|
+
"test:debug": "node --inspect-brk node_modules/.bin/jest --watch --runInBand",
|
|
74
|
+
"test:quick": "yarn ts-check:tests && yarn test --no-coverage --maxWorkers=4 -c --no-watchman -u",
|
|
75
|
+
"test:coverage": "yarn test --maxWorkers=4 -c --colors --no-watchman --verbose --coverage",
|
|
76
|
+
"test:interop": "yarn build && tsx scripts/test-interop.ts",
|
|
77
|
+
"build": "yarn ts-check && yarn clean && tsc -p tsconfig.build.json && tsx esbuild.config.ts && tsx scripts/prepare-dist.ts",
|
|
78
|
+
"prepare": "yarn format && npm run build && yarn test:quick",
|
|
79
|
+
"version": "npm run format && yarn build && yarn jest && git add -A",
|
|
80
|
+
"postversion": "git push && git push --tags",
|
|
81
|
+
"publish:pkg": "yarn build && cd dist && npm publish --tag latest --registry https://registry.npmjs.org/",
|
|
82
|
+
"publish:beta": "yarn build && cd dist && npm publish --tag beta --registry https://registry.npmjs.org/",
|
|
83
|
+
"lint": "eslint . --max-warnings=0",
|
|
84
|
+
"lint:fix": "eslint . --fix --max-warnings=0",
|
|
85
|
+
"clean": "rm -rf dist coverage",
|
|
86
|
+
"ts-check": "tsc -p tsconfig.json --noEmit",
|
|
87
|
+
"ts-check:tests": "tsc -p __test__/tsconfig.json --noEmit"
|
|
88
|
+
},
|
|
68
89
|
"repository": {
|
|
69
90
|
"type": "git",
|
|
70
91
|
"url": "git+https://github.com/johnny-quesada-developer/react-hooks-global-states.git"
|
|
@@ -87,8 +108,37 @@
|
|
|
87
108
|
"url": "https://github.com/johnny-quesada-developer/react-hooks-global-states/issues"
|
|
88
109
|
},
|
|
89
110
|
"homepage": "https://github.com/johnny-quesada-developer/react-hooks-global-states#readme",
|
|
111
|
+
"devDependencies": {
|
|
112
|
+
"@eslint/js": "^9.39.1",
|
|
113
|
+
"@testing-library/dom": "^10.4.0",
|
|
114
|
+
"@testing-library/react": "^16.3.0",
|
|
115
|
+
"@types/jest": "^29.5.11",
|
|
116
|
+
"@types/react": "^18.2.45",
|
|
117
|
+
"@types/react-dom": "^18.2.18",
|
|
118
|
+
"@typescript-eslint/eslint-plugin": "^4.9.1",
|
|
119
|
+
"@typescript-eslint/parser": "^4.9.1",
|
|
120
|
+
"easy-cancelable-promise": "^1.0.1",
|
|
121
|
+
"esbuild": "^0.24.0",
|
|
122
|
+
"eslint": "^9.39.1",
|
|
123
|
+
"eslint-config-airbnb": "^18.2.1",
|
|
124
|
+
"eslint-plugin-import": "^2.22.1",
|
|
125
|
+
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
126
|
+
"eslint-plugin-react": "^7.37.5",
|
|
127
|
+
"eslint-plugin-react-hooks": "^4.2.0",
|
|
128
|
+
"jest": "^29.7.0",
|
|
129
|
+
"jest-environment-jsdom": "^30.0.4",
|
|
130
|
+
"jiti": "^2.6.1",
|
|
131
|
+
"prettier": "^3.6.2",
|
|
132
|
+
"react": "^18.2.0",
|
|
133
|
+
"react-dom": "^18.2.0",
|
|
134
|
+
"ts-jest": "^29.1.1",
|
|
135
|
+
"tslib": "^2.6.2",
|
|
136
|
+
"tsx": "^4.19.0",
|
|
137
|
+
"typescript": "^5.8.2",
|
|
138
|
+
"typescript-eslint": "^8.46.3"
|
|
139
|
+
},
|
|
90
140
|
"dependencies": {
|
|
91
|
-
"json-storage-formatter": "4.0.0"
|
|
141
|
+
"json-storage-formatter": "^4.0.0"
|
|
92
142
|
},
|
|
93
143
|
"peerDependencies": {
|
|
94
144
|
"react": ">=18.0.0",
|
package/GlobalStore.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var V=Object.create;var m=Object.defineProperty,W=Object.defineProperties,B=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,w=Object.getOwnPropertySymbols,G=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var F=(i,t,e)=>t in i?m(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,k=(i,t)=>{for(var e in t||(t={}))E.call(t,e)&&F(i,e,t[e]);if(w)for(var e of w(t))z.call(t,e)&&F(i,e,t[e]);return i},x=(i,t)=>W(i,I(t));var D=(i,t)=>{for(var e in t)m(i,e,{get:t[e],enumerable:!0})},H=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!E.call(i,s)&&s!==e&&m(i,s,{get:()=>t[s],enumerable:!(a=B(t,s))||a.enumerable});return i};var g=(i,t,e)=>(e=i!=null?V(G(i)):{},H(t||!i||!i.__esModule?m(e,"default",{value:i,enumerable:!0}):e,i)),K=i=>H(m({},"__esModule",{value:!0}),i);var $={};D($,{GlobalStore:()=>M,createObservable:()=>y,createSelectorHook:()=>R,default:()=>N});module.exports=K($);var f=require("react"),p=g(require("json-storage-formatter/isFunction")),_=g(require("./isRecord.cjs")),A=g(require("./shallowCompare.cjs")),U=g(require("./throwWrongKeyOnActionCollectionConfig.cjs")),v=g(require("./uniqueId.cjs")),O=g(require("./GlobalStore.debugProps.cjs"));var M=class i{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var l,o,u;let{metadata:a,callbacks:s,actions:c,name:r}=e;if((0,p.default)(t)&&(this.stateCallback=t),(0,p.default)(a)&&(this.metadataCallback=a),this._name=r!=null?r:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=c!=null?c:null,O.default.isDevToolsPresent){let b=(l=new Error().stack)!=null?l:"";(u=(o=O.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(o,this,e,b)}this.constructor===i&&this.initialize()}async initialize(){var l,o,u,b,d,S,h,C;let t=(o=(l=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:l.call(this))!=null?o:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,p.default)(s)&&this.cleanupFunctions.push(s);let{onInit:c}=(d=this.callbacks)!=null?d:{};if(!c)return;let r=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,n=(C=c==null?void 0:c(r))!=null?C:null;(0,p.default)(n)&&this.cleanupFunctions.push(n)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:c,isEqualRoot:r=(o,u)=>o===u,isEqual:n=(o,u)=>o===u}=t;if(!e.forceUpdate&&r(e.currentState,e.newState))return{didUpdate:!1};let l=a?a(e.newState):e.newState;return!e.forceUpdate&&n(c,l)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:l}),s({state:l},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let r=this.subscribers.values(),n={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let l of r)this.executeSetStateForSubscriber(l,n)}setMetadata(t){let e=(0,p.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,p.default)(e),c=s?t:void 0,r=s?e:t,n=(u=s?a:e)!=null?u:void 0,l=c?c(this.state):this.state;n!=null&&n.skipFirst||r(l);let o=k({selector:c,currentState:l,onStoreChange:({state:b})=>r(b)},n);return this.subscribeCallback(o),()=>{this.subscribers.delete(o)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(r,n=[])=>{(0,f.useDebugValue)(t);let l=(0,A.isArray)(n)?{dependencies:n}:n!=null?n:{},o=(0,f.useRef)(null),u=P=>(0,p.default)(r)?r(P):P;o.current=o.current?o.current:k({selector:u,currentState:u(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},l);let b=o.current.dependencies,d=l==null?void 0:l.dependencies,S=x(k({},l),{selector:u,dependencies:d});this.partialUpdateSubscription(o.current,S);let{subscribe:h,getSnapshot:C,getServerSnapshot:q}=(0,f.useMemo)(()=>{let P=j=>(o.current.onStoreChange=j,this.subscribeCallback(o.current)),T=()=>o.current.currentState;return{subscribe:P,getSnapshot:T,getServerSnapshot:T}},[]);return this.reselectIfDependenciesChanged({subscription:o.current,newDependencies:d,currentDependencies:b}),[(0,f.useSyncExternalStore)(h,C,q),this.getStateOrchestrator(),this.metadata]},a=this,s=this.getMetadata.bind(this),c={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:this.dispose.bind(this),metadata:void 0,getMetadata:s,getState:this.getState.bind(this),reset:this.reset.bind(this),setMetadata:this.setMetadata.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),subscribers:this.subscribers,use:e,select:(...r)=>e(...r)[0]};return Object.assign(e,c),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState.bind(this)}setState(t,{forceUpdate:e,identifier:a}={}){var o,u,b,d,S,h;let s=this.state,c=(0,p.default)(t)?t(s):t;if(!e&&this.state===c)return;let r=this.setActualStateWithoutValidations,n={previousState:s,state:c,identifier:a},l=x(k(k({},this.storeTools),n),{setState:r});Object.defineProperty(l,"metadata",{configurable:!0,enumerable:!0,get:l.getMetadata}),!((o=this.callbacks)!=null&&o.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,l)))&&(this.setActualStateWithoutValidations(c,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,l),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,l))}getStoreActionsMap(){let t=this.getMetadata.bind(this),e={setMetadata:this.setMetadata.bind(this),get metadata(){return t()},getMetadata:t,getState:this.getState.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),actions:null};if(!(0,_.default)(this.actionsConfig))return{actions:null,storeTools:e};let a=this.actionsConfig,s={};e.actions=s;let c=Object.keys(a);for(let r of c)Object.assign(s,{[r](...n){let o=a[r].apply(s,n);return typeof o!="function"&&(0,U.default)(r),o.call(s,e)}});return{actions:s,storeTools:e}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var o,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let c=(u=(o=this.onInit)==null?void 0:o.call(this))!=null?u:null;(0,p.default)(c)&&this.cleanupFunctions.push(c);let{onInit:r}=(b=this.callbacks)!=null?b:{};if(!r)return;let n=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,l=(h=r==null?void 0:r(n))!=null?h:null;(0,p.default)(l)&&this.cleanupFunctions.push(l)}};function y(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=n.subscribe.bind(n),u={getState:n.getState.bind(n),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}function R(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=(...b)=>{let[d]=n.use(...b);return d},u={getState:()=>n.getState(),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}var N=M;
|
package/GlobalStore.d.ts
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import type { ActionCollectionConfig, GlobalStoreCallbacks, ActionCollectionResult, MetadataSetter, SubscribeCallbackConfig, SubscribeCallback, SelectorCallback, SubscriberParameters, StateHook, BaseMetadata, StateChanges, StoreTools, ObservableFragment, UnsubscribeCallback, AnyFunction, ReadonlyHook, ReadonlyStateApi, CleanupFunction } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* The GlobalStore class is the main class of the library and it is used to create a GlobalStore instances
|
|
4
|
-
* */
|
|
5
|
-
export declare class GlobalStore<State, Metadata extends BaseMetadata, ActionsConfig extends ActionCollectionConfig<State, Metadata> | undefined | unknown, PublicStateMutator = keyof ActionsConfig extends never | undefined ? React.Dispatch<React.SetStateAction<State>> : ActionCollectionResult<State, Metadata, NonNullable<ActionsConfig>>> {
|
|
6
|
-
protected cleanupFunctions: CleanupFunction[];
|
|
7
|
-
protected _name: string;
|
|
8
|
-
actionsConfig: ActionsConfig | null;
|
|
9
|
-
callbacks: GlobalStoreCallbacks<State, PublicStateMutator, Metadata> | null;
|
|
10
|
-
metadata: Metadata;
|
|
11
|
-
/**
|
|
12
|
-
* @description If the actionsConfig is defined, this will be a map of actions that can be used to modify or interact with the state
|
|
13
|
-
* */
|
|
14
|
-
actions: PublicStateMutator extends AnyFunction ? null : PublicStateMutator;
|
|
15
|
-
storeTools: StoreTools<State, PublicStateMutator, Metadata>;
|
|
16
|
-
/**
|
|
17
|
-
* @description The main hook that will be used to interact with the global state
|
|
18
|
-
*/
|
|
19
|
-
use: StateHook<State, PublicStateMutator, Metadata>;
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated
|
|
22
|
-
* @description Set of subscribers that are listening to state changes
|
|
23
|
-
* Useful for debugging purposes... You'll probably not need to use this in your application
|
|
24
|
-
*/
|
|
25
|
-
subscribers: Set<SubscriberParameters>;
|
|
26
|
-
state: State;
|
|
27
|
-
protected stateCallback?: () => State;
|
|
28
|
-
protected metadataCallback?: () => Metadata;
|
|
29
|
-
constructor(state: State | (() => State));
|
|
30
|
-
constructor(state: State | (() => State), args: {
|
|
31
|
-
metadata?: Metadata | (() => Metadata);
|
|
32
|
-
callbacks?: GlobalStoreCallbacks<State, PublicStateMutator, Metadata>;
|
|
33
|
-
actions?: ActionsConfig;
|
|
34
|
-
name?: string;
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* This method is meant to be overridden by the extended classes
|
|
38
|
-
*/
|
|
39
|
-
protected onInit?: () => void | CleanupFunction;
|
|
40
|
-
/**
|
|
41
|
-
* This method is meant to be overridden by the extended classes
|
|
42
|
-
*/
|
|
43
|
-
protected onStateChanged?: (args: StateChanges<State>) => void;
|
|
44
|
-
/**
|
|
45
|
-
* @description
|
|
46
|
-
* Initializes the global store, setting up the main hook and actions map if applicable,
|
|
47
|
-
*/
|
|
48
|
-
protected initialize(): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* set the state for a single subscriber
|
|
51
|
-
* validate if the state should be updated by comparing the previous state and the new state
|
|
52
|
-
*/
|
|
53
|
-
protected executeSetStateForSubscriber(subscription: SubscriberParameters, args: {
|
|
54
|
-
forceUpdate: boolean | undefined;
|
|
55
|
-
newState: State;
|
|
56
|
-
currentState: State;
|
|
57
|
-
identifier: string | undefined;
|
|
58
|
-
}): {
|
|
59
|
-
didUpdate: boolean;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* set the state and update all the subscribers
|
|
63
|
-
* @param {State} newState - The new state to set
|
|
64
|
-
* @param {object} options - The options for setting the state
|
|
65
|
-
* @param {boolean} [options.forceUpdate] - Whether to force the update even if the state is the same
|
|
66
|
-
* @param {string} [options.identifier] - An optional identifier for the state change
|
|
67
|
-
* */
|
|
68
|
-
setActualStateWithoutValidations(newState: State, { forceUpdate, identifier }: {
|
|
69
|
-
forceUpdate?: boolean;
|
|
70
|
-
identifier?: string;
|
|
71
|
-
}): void;
|
|
72
|
-
/**
|
|
73
|
-
* Set the value of the metadata property, this is no reactive and will not trigger a re-render
|
|
74
|
-
* @param {MetadataSetter<Metadata>} setter - The setter function or the value to set
|
|
75
|
-
* */
|
|
76
|
-
setMetadata(setter: Parameters<MetadataSetter<Metadata>>[0]): void;
|
|
77
|
-
/**
|
|
78
|
-
* Returns the metadata [non-reactive additional information associated with the global state]
|
|
79
|
-
*/
|
|
80
|
-
getMetadata(): Metadata;
|
|
81
|
-
/**
|
|
82
|
-
* Get the current value of the state
|
|
83
|
-
*/
|
|
84
|
-
getState(): State;
|
|
85
|
-
/**
|
|
86
|
-
* Subscribe an individual callback to state changes
|
|
87
|
-
*/
|
|
88
|
-
subscribe<TDerivate>(...[param1, param2, param3]: [
|
|
89
|
-
SubscribeCallback<State> | SelectorCallback<State, TDerivate>,
|
|
90
|
-
(SubscribeCallbackConfig<State> | SubscribeCallback<TDerivate>)?,
|
|
91
|
-
SubscribeCallbackConfig<State | TDerivate>?
|
|
92
|
-
]): UnsubscribeCallback;
|
|
93
|
-
/**
|
|
94
|
-
* Adds a subscription object to the subscribers set and returns the unsubscribe function
|
|
95
|
-
*/
|
|
96
|
-
protected subscribeCallback(subscription: SubscriberParameters): () => void;
|
|
97
|
-
partialUpdateSubscription(subscription: SubscriberParameters, values: Partial<SubscriberParameters>): void;
|
|
98
|
-
/**
|
|
99
|
-
* Returns a custom hook that allows to handle a global state
|
|
100
|
-
* @returns {[State, StateMutator, Metadata]} - The state, the state setter or the actions map, the metadata
|
|
101
|
-
* */
|
|
102
|
-
getMainHook(): StateHook<State, PublicStateMutator, Metadata>;
|
|
103
|
-
protected reselectIfDependenciesChanged({ subscription, newDependencies, currentDependencies, }: {
|
|
104
|
-
subscription: SubscriberParameters;
|
|
105
|
-
newDependencies: unknown[] | undefined;
|
|
106
|
-
currentDependencies: unknown[] | undefined;
|
|
107
|
-
}): void;
|
|
108
|
-
createSelectorHook: typeof createSelectorHook;
|
|
109
|
-
createObservable: typeof createObservable;
|
|
110
|
-
/**
|
|
111
|
-
* Returns the state setter or the actions map
|
|
112
|
-
* @returns {StateMutator} - The state setter or the actions map
|
|
113
|
-
* */
|
|
114
|
-
protected getStateOrchestrator(): PublicStateMutator;
|
|
115
|
-
/**
|
|
116
|
-
* This is the only setState function that should be exposed outside the class
|
|
117
|
-
* This is responsible for defining whenever or not the state change should be allowed or prevented
|
|
118
|
-
* the function also execute the functions:
|
|
119
|
-
* - onStateChanged (if defined) - this function is executed after the state change
|
|
120
|
-
* - computePreventStateChange (if defined) - this function is executed before the state change and it should return a boolean value that will be used to determine if the state change should be prevented or not
|
|
121
|
-
*/
|
|
122
|
-
setState(setter: Parameters<React.Dispatch<React.SetStateAction<State>>>[0], { forceUpdate, identifier, }?: {
|
|
123
|
-
forceUpdate?: boolean;
|
|
124
|
-
identifier?: string;
|
|
125
|
-
}): void;
|
|
126
|
-
/**
|
|
127
|
-
* This creates storeTools and actions map if applicable
|
|
128
|
-
* */
|
|
129
|
-
getStoreActionsMap(): {
|
|
130
|
-
actions: PublicStateMutator extends AnyFunction ? null : PublicStateMutator;
|
|
131
|
-
storeTools: StoreTools<State, PublicStateMutator, Metadata>;
|
|
132
|
-
};
|
|
133
|
-
protected removeSubscriptions(): void;
|
|
134
|
-
protected executeCleanupTasks(): void;
|
|
135
|
-
dispose(): void;
|
|
136
|
-
reset(): void;
|
|
137
|
-
reset(state: State, metadata: Metadata): void;
|
|
138
|
-
__devtools_getLifeCycleStoreToolsWrapper?: (logsPrefix: string) => StoreTools<State, PublicStateMutator, Metadata>;
|
|
139
|
-
__devtools_initialize_getStoreActionsMapWrapped?: () => {
|
|
140
|
-
actions: PublicStateMutator extends AnyFunction ? null : PublicStateMutator;
|
|
141
|
-
storeTools: StoreTools<State, PublicStateMutator, Metadata>;
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
export declare function createObservable<RootState, PublicStateMutator, Metadata extends BaseMetadata, Selected>(this: Pick<ReadonlyStateApi<RootState, PublicStateMutator, Metadata>, 'getState' | 'subscribe'>, selector: (state: RootState) => Selected, options?: {
|
|
145
|
-
isEqual?: (current: Selected, next: Selected) => boolean;
|
|
146
|
-
isEqualRoot?: (current: RootState, next: RootState) => boolean;
|
|
147
|
-
name?: string;
|
|
148
|
-
}): ObservableFragment<Selected, PublicStateMutator, Metadata>;
|
|
149
|
-
/**
|
|
150
|
-
* @description
|
|
151
|
-
* Creates a derived hook bound to a selected fragment of the root state.
|
|
152
|
-
* The derived hook re-renders only when the selected value changes and
|
|
153
|
-
* exposes the same API as the parent state hook.
|
|
154
|
-
*/
|
|
155
|
-
export declare function createSelectorHook<RootState, PublicStateMutator, Metadata extends BaseMetadata, Selected>(this: Pick<ReadonlyStateApi<RootState, PublicStateMutator, Metadata>, 'getState' | 'subscribe'>, selector: (state: RootState) => Selected, options?: {
|
|
156
|
-
isEqual?: (current: Selected, next: Selected) => boolean;
|
|
157
|
-
isEqualRoot?: (current: RootState, next: RootState) => boolean;
|
|
158
|
-
name?: string;
|
|
159
|
-
}): ReadonlyHook<Selected, PublicStateMutator, Metadata>;
|
|
160
|
-
export default GlobalStore;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var T=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var r=(e,o)=>{for(var n in o)T(e,n,{get:o[n],enumerable:!0})},A=(e,o,n,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of t(o))!_.call(e,s)&&s!==n&&T(e,s,{get:()=>o[s],enumerable:!(i=l(o,s))||i.enumerable});return e};var E=e=>A(T({},"__esModule",{value:!0}),e);var d={};r(d,{default:()=>O});module.exports=E(d);var a=globalThis;a.isDevToolsPresent=!!a.REACT_GLOBAL_STATE_HOOK_DEBUG;var O=a;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var T=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var r=(e,o)=>{for(var n in o)T(e,n,{get:o[n],enumerable:!0})},A=(e,o,n,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of t(o))!_.call(e,s)&&s!==n&&T(e,s,{get:()=>o[s],enumerable:!(i=l(o,s))||i.enumerable});return e};var E=e=>A(T({},"__esModule",{value:!0}),e);var d={};r(d,{default:()=>O});module.exports=E(d);var a=globalThis;a.isDevToolsPresent=!!a.REACT_GLOBAL_STATE_HOOK_DEBUG;var O=a;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var o=globalThis;o.isDevToolsPresent=!!o.REACT_GLOBAL_STATE_HOOK_DEBUG;var e=o;export{e as default};
|
package/GlobalStore.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var V=Object.create;var m=Object.defineProperty,W=Object.defineProperties,B=Object.getOwnPropertyDescriptor,I=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,w=Object.getOwnPropertySymbols,G=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var F=(i,t,e)=>t in i?m(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,k=(i,t)=>{for(var e in t||(t={}))E.call(t,e)&&F(i,e,t[e]);if(w)for(var e of w(t))z.call(t,e)&&F(i,e,t[e]);return i},x=(i,t)=>W(i,I(t));var D=(i,t)=>{for(var e in t)m(i,e,{get:t[e],enumerable:!0})},H=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!E.call(i,s)&&s!==e&&m(i,s,{get:()=>t[s],enumerable:!(a=B(t,s))||a.enumerable});return i};var g=(i,t,e)=>(e=i!=null?V(G(i)):{},H(t||!i||!i.__esModule?m(e,"default",{value:i,enumerable:!0}):e,i)),K=i=>H(m({},"__esModule",{value:!0}),i);var $={};D($,{GlobalStore:()=>M,createObservable:()=>y,createSelectorHook:()=>R,default:()=>N});module.exports=K($);var f=require("react"),p=g(require("json-storage-formatter/isFunction")),_=g(require("./isRecord.js")),A=g(require("./shallowCompare.js")),U=g(require("./throwWrongKeyOnActionCollectionConfig.js")),v=g(require("./uniqueId.js")),O=g(require("./GlobalStore.debugProps.js"));var M=class i{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var l,o,u;let{metadata:a,callbacks:s,actions:c,name:r}=e;if((0,p.default)(t)&&(this.stateCallback=t),(0,p.default)(a)&&(this.metadataCallback=a),this._name=r!=null?r:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=c!=null?c:null,O.default.isDevToolsPresent){let b=(l=new Error().stack)!=null?l:"";(u=(o=O.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(o,this,e,b)}this.constructor===i&&this.initialize()}async initialize(){var l,o,u,b,d,S,h,C;let t=(o=(l=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:l.call(this))!=null?o:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,p.default)(s)&&this.cleanupFunctions.push(s);let{onInit:c}=(d=this.callbacks)!=null?d:{};if(!c)return;let r=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,n=(C=c==null?void 0:c(r))!=null?C:null;(0,p.default)(n)&&this.cleanupFunctions.push(n)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:c,isEqualRoot:r=(o,u)=>o===u,isEqual:n=(o,u)=>o===u}=t;if(!e.forceUpdate&&r(e.currentState,e.newState))return{didUpdate:!1};let l=a?a(e.newState):e.newState;return!e.forceUpdate&&n(c,l)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:l}),s({state:l},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let r=this.subscribers.values(),n={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let l of r)this.executeSetStateForSubscriber(l,n)}setMetadata(t){let e=(0,p.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,p.default)(e),c=s?t:void 0,r=s?e:t,n=(u=s?a:e)!=null?u:void 0,l=c?c(this.state):this.state;n!=null&&n.skipFirst||r(l);let o=k({selector:c,currentState:l,onStoreChange:({state:b})=>r(b)},n);return this.subscribeCallback(o),()=>{this.subscribers.delete(o)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(r,n=[])=>{(0,f.useDebugValue)(t);let l=(0,A.isArray)(n)?{dependencies:n}:n!=null?n:{},o=(0,f.useRef)(null),u=P=>(0,p.default)(r)?r(P):P;o.current=o.current?o.current:k({selector:u,currentState:u(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},l);let b=o.current.dependencies,d=l==null?void 0:l.dependencies,S=x(k({},l),{selector:u,dependencies:d});this.partialUpdateSubscription(o.current,S);let{subscribe:h,getSnapshot:C,getServerSnapshot:q}=(0,f.useMemo)(()=>{let P=j=>(o.current.onStoreChange=j,this.subscribeCallback(o.current)),T=()=>o.current.currentState;return{subscribe:P,getSnapshot:T,getServerSnapshot:T}},[]);return this.reselectIfDependenciesChanged({subscription:o.current,newDependencies:d,currentDependencies:b}),[(0,f.useSyncExternalStore)(h,C,q),this.getStateOrchestrator(),this.metadata]},a=this,s=this.getMetadata.bind(this),c={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:this.dispose.bind(this),metadata:void 0,getMetadata:s,getState:this.getState.bind(this),reset:this.reset.bind(this),setMetadata:this.setMetadata.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),subscribers:this.subscribers,use:e,select:(...r)=>e(...r)[0]};return Object.assign(e,c),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState.bind(this)}setState(t,{forceUpdate:e,identifier:a}={}){var o,u,b,d,S,h;let s=this.state,c=(0,p.default)(t)?t(s):t;if(!e&&this.state===c)return;let r=this.setActualStateWithoutValidations,n={previousState:s,state:c,identifier:a},l=x(k(k({},this.storeTools),n),{setState:r});Object.defineProperty(l,"metadata",{configurable:!0,enumerable:!0,get:l.getMetadata}),!((o=this.callbacks)!=null&&o.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,l)))&&(this.setActualStateWithoutValidations(c,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,l),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,l))}getStoreActionsMap(){let t=this.getMetadata.bind(this),e={setMetadata:this.setMetadata.bind(this),get metadata(){return t()},getMetadata:t,getState:this.getState.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),actions:null};if(!(0,_.default)(this.actionsConfig))return{actions:null,storeTools:e};let a=this.actionsConfig,s={};e.actions=s;let c=Object.keys(a);for(let r of c)Object.assign(s,{[r](...n){let o=a[r].apply(s,n);return typeof o!="function"&&(0,U.default)(r),o.call(s,e)}});return{actions:s,storeTools:e}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var o,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let c=(u=(o=this.onInit)==null?void 0:o.call(this))!=null?u:null;(0,p.default)(c)&&this.cleanupFunctions.push(c);let{onInit:r}=(b=this.callbacks)!=null?b:{};if(!r)return;let n=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,l=(h=r==null?void 0:r(n))!=null?h:null;(0,p.default)(l)&&this.cleanupFunctions.push(l)}};function y(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=n.subscribe.bind(n),u={getState:n.getState.bind(n),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}function R(i,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,c=this.getState(),r=(i!=null?i:b=>b)(c),n=new M(r,{name:e!=null?e:(0,v.default)("sh:")}),l=this.subscribe(b=>{if((a!=null?a:Object.is)(c,b))return;c=b;let S=i(b);(s!=null?s:Object.is)(r,S)||(r=S,n.setState(S))},{skipFirst:!0}),o=(...b)=>{let[d]=n.use(...b);return d},u={getState:()=>n.getState(),subscribe:n.subscribe.bind(n),createSelectorHook:R.bind(o),createObservable:y.bind(o),dispose:()=>{l(),n.dispose()},subscribers:n.subscribers};return Object.assign(o,u),o}var N=M;
|
package/GlobalStore.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var w=Object.defineProperty,F=Object.defineProperties;var E=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var R=(b,t,e)=>t in b?w(b,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):b[t]=e,f=(b,t)=>{for(var e in t||(t={}))H.call(t,e)&&R(b,e,t[e]);if(y)for(var e of y(t))_.call(t,e)&&R(b,e,t[e]);return b},C=(b,t)=>F(b,E(t));import{useDebugValue as U,useMemo as q,useRef as j,useSyncExternalStore as V}from"react";import p from"json-storage-formatter/isFunction";import W from"./isRecord.mjs";import B,{isArray as I}from"./shallowCompare.mjs";import L from"./throwWrongKeyOnActionCollectionConfig.mjs";import m from"./uniqueId.mjs";import x from"./GlobalStore.debugProps.mjs";var g=class b{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=A;this.createObservable=P;var c,n,l;let{metadata:a,callbacks:o,actions:r,name:i}=e;if(p(t)&&(this.stateCallback=t),p(a)&&(this.metadataCallback=a),this._name=i!=null?i:m("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=o!=null?o:null,this.actionsConfig=r!=null?r:null,x.isDevToolsPresent){let u=(c=new Error().stack)!=null?c:"";(l=(n=x).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||l.call(n,this,e,u)}this.constructor===b&&this.initialize()}async initialize(){var c,n,l,u,d,S,h,k;let t=(n=(c=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:c.call(this))!=null?n:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let o=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;p(o)&&this.cleanupFunctions.push(o);let{onInit:r}=(d=this.callbacks)!=null?d:{};if(!r)return;let i=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,s=(k=r==null?void 0:r(i))!=null?k:null;p(s)&&this.cleanupFunctions.push(s)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:o,currentState:r,isEqualRoot:i=(n,l)=>n===l,isEqual:s=(n,l)=>n===l}=t;if(!e.forceUpdate&&i(e.currentState,e.newState))return{didUpdate:!1};let c=a?a(e.newState):e.newState;return!e.forceUpdate&&s(r,c)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:c}),o({state:c},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let o=this.state;if(!(e||o!==t))return;this.state=t;let i=this.subscribers.values(),s={forceUpdate:e,newState:t,currentState:o,identifier:a};for(let c of i)this.executeSetStateForSubscriber(c,s)}setMetadata(t){let e=p(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var l;let o=p(e),r=o?t:void 0,i=o?e:t,s=(l=o?a:e)!=null?l:void 0,c=r?r(this.state):this.state;s!=null&&s.skipFirst||i(c);let n=f({selector:r,currentState:c,onStoreChange:({state:u})=>i(u)},s);return this.subscribeCallback(n),()=>{this.subscribers.delete(n)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(i,s=[])=>{U(t);let c=I(s)?{dependencies:s}:s!=null?s:{},n=j(null),l=M=>p(i)?i(M):M;n.current=n.current?n.current:f({selector:l,currentState:l(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},c);let u=n.current.dependencies,d=c==null?void 0:c.dependencies,S=C(f({},c),{selector:l,dependencies:d});this.partialUpdateSubscription(n.current,S);let{subscribe:h,getSnapshot:k,getServerSnapshot:O}=q(()=>{let M=T=>(n.current.onStoreChange=T,this.subscribeCallback(n.current)),v=()=>n.current.currentState;return{subscribe:M,getSnapshot:v,getServerSnapshot:v}},[]);return this.reselectIfDependenciesChanged({subscription:n.current,newDependencies:d,currentDependencies:u}),[V(h,k,O),this.getStateOrchestrator(),this.metadata]},a=this,o=this.getMetadata.bind(this),r={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:this.dispose.bind(this),metadata:void 0,getMetadata:o,getState:this.getState.bind(this),reset:this.reset.bind(this),setMetadata:this.setMetadata.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),subscribers:this.subscribers,use:e,select:(...i)=>e(...i)[0]};return Object.assign(e,r),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:o}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&B(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState.bind(this)}setState(t,{forceUpdate:e,identifier:a}={}){var n,l,u,d,S,h;let o=this.state,r=p(t)?t(o):t;if(!e&&this.state===r)return;let i=this.setActualStateWithoutValidations,s={previousState:o,state:r,identifier:a},c=C(f(f({},this.storeTools),s),{setState:i});Object.defineProperty(c,"metadata",{configurable:!0,enumerable:!0,get:c.getMetadata}),!((n=this.callbacks)!=null&&n.computePreventStateChange&&((u=(l=this.callbacks)==null?void 0:l.computePreventStateChange)!=null&&u.call(l,c)))&&(this.setActualStateWithoutValidations(r,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,c),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,c))}getStoreActionsMap(){let t=this.getMetadata.bind(this),e={setMetadata:this.setMetadata.bind(this),get metadata(){return t()},getMetadata:t,getState:this.getState.bind(this),setState:this.setState.bind(this),subscribe:this.subscribe.bind(this),actions:null};if(!W(this.actionsConfig))return{actions:null,storeTools:e};let a=this.actionsConfig,o={};e.actions=o;let r=Object.keys(a);for(let i of r)Object.assign(o,{[i](...s){let n=a[i].apply(o,s);return typeof n!="function"&&L(i),n.call(o,e)}});return{actions:o,storeTools:e}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var n,l,u,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,o=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(o);let r=(l=(n=this.onInit)==null?void 0:n.call(this))!=null?l:null;p(r)&&this.cleanupFunctions.push(r);let{onInit:i}=(u=this.callbacks)!=null?u:{};if(!i)return;let s=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,c=(h=i==null?void 0:i(s))!=null?h:null;p(c)&&this.cleanupFunctions.push(c)}};function P(b,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,o=t==null?void 0:t.isEqual,r=this.getState(),i=(b!=null?b:u=>u)(r),s=new g(i,{name:e!=null?e:m("sh:")}),c=this.subscribe(u=>{if((a!=null?a:Object.is)(r,u))return;r=u;let S=b(u);(o!=null?o:Object.is)(i,S)||(i=S,s.setState(S))},{skipFirst:!0}),n=s.subscribe.bind(s),l={getState:s.getState.bind(s),subscribe:s.subscribe.bind(s),createSelectorHook:A.bind(n),createObservable:P.bind(n),dispose:()=>{c(),s.dispose()},subscribers:s.subscribers};return Object.assign(n,l),n}function A(b,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,o=t==null?void 0:t.isEqual,r=this.getState(),i=(b!=null?b:u=>u)(r),s=new g(i,{name:e!=null?e:m("sh:")}),c=this.subscribe(u=>{if((a!=null?a:Object.is)(r,u))return;r=u;let S=b(u);(o!=null?o:Object.is)(i,S)||(i=S,s.setState(S))},{skipFirst:!0}),n=(...u)=>{let[d]=s.use(...u);return d},l={getState:()=>s.getState(),subscribe:s.subscribe.bind(s),createSelectorHook:A.bind(n),createObservable:P.bind(n),dispose:()=>{c(),s.dispose()},subscribers:s.subscribers};return Object.assign(n,l),n}var Y=g;export{g as GlobalStore,P as createObservable,A as createSelectorHook,Y as default};
|
package/actions.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var y=Object.create;var A=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!f.call(t,i)&&i!==o&&A(t,i,{get:()=>e[i],enumerable:!(n=l(e,i))||n.enumerable});return t};var M=(t,e,o)=>(o=t!=null?y(S(t)):{},a(e||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),x=t=>a(A({},"__esModule",{value:!0}),t);var C={};T(C,{actions:()=>c,default:()=>R});module.exports=x(C);var r=M(require("./GlobalStore.cjs"));function c(t,e){let o=(n,i)=>{let p={setMetadata:(...s)=>n.setMetadata(...s),get metadata(){return n.getMetadata()},getMetadata:()=>n.getMetadata(),getState:()=>n.getState(),setState:(...s)=>n.setState(...s),subscribe:(...s)=>n.subscribe(...s),actionsConfig:i,actions:null},{storeTools:u,actions:d}=r.default.prototype.getStoreActionsMap.call(p);return u.actions=n.actions,d};return t&&e?o(t,e):n=>i=>o(i,n)}var R=c;
|
package/actions.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { Any, DerivedActionsBuilder, DerivedActionsConfig, StoreTools } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a reusable action template builder.
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* const makeUserActions = actions<API>()({
|
|
7
|
-
* syncUser(id) {
|
|
8
|
-
* return (store) => {...}
|
|
9
|
-
* }
|
|
10
|
-
* });
|
|
11
|
-
*
|
|
12
|
-
* const { syncUser } = makeUserActions(api);
|
|
13
|
-
*/
|
|
14
|
-
export declare function actions<Api extends StoreTools<Any, Any, Any>>(): DerivedActionsBuilder<Api>;
|
|
15
|
-
/**
|
|
16
|
-
* Creates and action group from a config and binds it the provided store
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* const userActions = actions(api, {
|
|
20
|
-
* syncUser(id) {
|
|
21
|
-
* return (store) => {...}
|
|
22
|
-
* }
|
|
23
|
-
* });
|
|
24
|
-
*
|
|
25
|
-
* const { syncUser } = userActions;
|
|
26
|
-
*/
|
|
27
|
-
export declare function actions<Api extends StoreTools<Any, Any, Any>, Actions extends DerivedActionsConfig<Api>>(api: Api, actions: Actions): {
|
|
28
|
-
[key in keyof Actions]: {
|
|
29
|
-
(...params: Parameters<Actions[key]>): ReturnType<ReturnType<Actions[key]>>;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
export default actions;
|
package/actions.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var y=Object.create;var A=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!f.call(t,i)&&i!==o&&A(t,i,{get:()=>e[i],enumerable:!(n=l(e,i))||n.enumerable});return t};var M=(t,e,o)=>(o=t!=null?y(S(t)):{},a(e||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),x=t=>a(A({},"__esModule",{value:!0}),t);var C={};T(C,{actions:()=>c,default:()=>R});module.exports=x(C);var r=M(require("./GlobalStore.js"));function c(t,e){let o=(n,i)=>{let p={setMetadata:(...s)=>n.setMetadata(...s),get metadata(){return n.getMetadata()},getMetadata:()=>n.getMetadata(),getState:()=>n.getState(),setState:(...s)=>n.setState(...s),subscribe:(...s)=>n.subscribe(...s),actionsConfig:i,actions:null},{storeTools:u,actions:d}=r.default.prototype.getStoreActionsMap.call(p);return u.actions=n.actions,d};return t&&e?o(t,e):n=>i=>o(i,n)}var R=c;
|
package/actions.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import c from"./GlobalStore.mjs";function p(o,i){let s=(t,n)=>{let A={setMetadata:(...e)=>t.setMetadata(...e),get metadata(){return t.getMetadata()},getMetadata:()=>t.getMetadata(),getState:()=>t.getState(),setState:(...e)=>t.setState(...e),subscribe:(...e)=>t.subscribe(...e),actionsConfig:n,actions:null},{storeTools:a,actions:r}=c.prototype.getStoreActionsMap.call(A);return a.actions=t.actions,r};return o&&i?s(o,i):t=>n=>s(n,t)}var d=p;export{p as actions,d as default};
|
package/bundle.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var u=(t,o)=>{for(var a in o)n(t,a,{get:o[a],enumerable:!0})},d=(t,o,a,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of f(o))!A.call(t,e)&&e!==a&&n(t,e,{get:()=>o[e],enumerable:!(l=p(o,e))||l.enumerable});return t};var k=t=>d(n({},"__esModule",{value:!0}),t);var m={};u(m,{GlobalStore:()=>r.GlobalStore,actions:()=>x.actions,createContext:()=>S.createContext,createGlobalState:()=>i.createGlobalState,isRecord:()=>b.isRecord,shallowCompare:()=>C.shallowCompare,throwWrongKeyOnActionCollectionConfig:()=>s.throwWrongKeyOnActionCollectionConfig,uniqueId:()=>c.uniqueId});module.exports=k(m);var r=require("./GlobalStore.cjs"),i=require("./createGlobalState.cjs"),C=require("./shallowCompare.cjs"),c=require("./uniqueId.cjs"),s=require("./throwWrongKeyOnActionCollectionConfig.cjs"),b=require("./isRecord.cjs"),x=require("./actions.cjs"),S=require("./createContext.cjs");
|
package/bundle.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var u=(t,o)=>{for(var a in o)n(t,a,{get:o[a],enumerable:!0})},d=(t,o,a,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of f(o))!A.call(t,e)&&e!==a&&n(t,e,{get:()=>o[e],enumerable:!(l=p(o,e))||l.enumerable});return t};var k=t=>d(n({},"__esModule",{value:!0}),t);var m={};u(m,{GlobalStore:()=>r.GlobalStore,actions:()=>x.actions,createContext:()=>S.createContext,createGlobalState:()=>i.createGlobalState,isRecord:()=>b.isRecord,shallowCompare:()=>C.shallowCompare,throwWrongKeyOnActionCollectionConfig:()=>s.throwWrongKeyOnActionCollectionConfig,uniqueId:()=>c.uniqueId});module.exports=k(m);var r=require("./GlobalStore.js"),i=require("./createGlobalState.js"),C=require("./shallowCompare.js"),c=require("./uniqueId.js"),s=require("./throwWrongKeyOnActionCollectionConfig.js"),b=require("./isRecord.js"),x=require("./actions.js"),S=require("./createContext.js");
|
package/bundle.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{GlobalStore as e}from"./GlobalStore.mjs";import{createGlobalState as n}from"./createGlobalState.mjs";import{shallowCompare as r}from"./shallowCompare.mjs";import{uniqueId as C}from"./uniqueId.mjs";import{throwWrongKeyOnActionCollectionConfig as s}from"./throwWrongKeyOnActionCollectionConfig.mjs";import{isRecord as x}from"./isRecord.mjs";import{actions as p}from"./actions.mjs";import{createContext as A}from"./createContext.mjs";export{e as GlobalStore,p as actions,A as createContext,n as createGlobalState,x as isRecord,r as shallowCompare,s as throwWrongKeyOnActionCollectionConfig,C as uniqueId};
|
package/createContext.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var G=Object.create;var M=Object.defineProperty,O=Object.defineProperties,F=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,H=Object.getOwnPropertySymbols,g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,P=(t,e)=>{for(var o in e||(e={}))h.call(e,o)&&_(t,o,e[o]);if(H)for(var o of H(e))$.call(e,o)&&_(t,o,e[o]);return t},p=(t,e)=>O(t,D(e));var q=(t,e)=>{var o={};for(var s in t)h.call(t,s)&&e.indexOf(s)<0&&(o[s]=t[s]);if(t!=null&&H)for(var s of H(t))e.indexOf(s)<0&&$.call(t,s)&&(o[s]=t[s]);return o};var z=(t,e)=>{for(var o in e)M(t,o,{get:e[o],enumerable:!0})},N=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let C of L(e))!h.call(t,C)&&C!==o&&M(t,C,{get:()=>e[C],enumerable:!(s=F(e,C))||s.enumerable});return t};var U=(t,e,o)=>(o=t!=null?G(g(t)):{},N(e||!t||!t.__esModule?M(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>N(M({},"__esModule",{value:!0}),t);var Q={};z(Q,{createContext:()=>I,default:()=>K});module.exports=J(Q);var a=require("react"),v=require("./GlobalStore.cjs"),B=U(require("json-storage-formatter/isFunction")),T=U(require("./uniqueId.cjs"));var I=(t,e={})=>{var A;let o=(0,a.createContext)(null),s=(A=e.name)!=null?A:(0,T.default)("ctx:"),C=()=>(0,B.default)(t)?t():t,f=n=>Object.prototype.hasOwnProperty.call(n,"value"),E=n=>{var d;(0,a.useDebugValue)(`${s}:Provider`);let[r]=(0,a.useState)(()=>{var u,l,S,m;let b=f(n)?(0,B.default)(n.value)?n.value(C()):n.value:C(),k={__devtools_isContextStore:!0},i=new v.GlobalStore(b,P(p(P({},e),{metadata:(u=(0,B.default)(e.metadata)?e.metadata():e.metadata)!=null?u:{}}),k)),c={use:y};return Object.assign(i.storeTools,c),(S=(l=e.callbacks)==null?void 0:l.onCreated)==null||S.call(l,i.storeTools,i),(m=n.onCreated)==null||m.call(n,i.storeTools,i),i});return(0,a.useLayoutEffect)(()=>{f(n)&&!(0,B.default)(n.value)&&r.setState(n.value)},[r,n.value]),(0,a.useEffect)(()=>{var k,i,c;let b=[(i=(k=e.callbacks)==null?void 0:k.onMounted)==null?void 0:i.call(k,r.storeTools,r),(c=n.onMounted)==null?void 0:c.call(n,r.storeTools,r)].filter(Boolean);return()=>{var u,l,S;(l=(u=r.callbacks)==null?void 0:u.onUnMount)==null||l.call(u,r),b.forEach(m=>m==null?void 0:m()),(S=r.__onUnMountContext)==null||S.call(r,r)}},[r]),(d=n.onRender)==null||d.call(n,r.storeTools,r),r},w=n=>{let r=E(n);return(0,a.createElement)(o.Provider,{value:r.use},n.children)};w.displayName=`${s}:Provider`,o.displayName=`${s}`;let x={makeProviderWrapper:n=>{let r={current:void 0,instance:void 0};return{wrapper:i=>{var c=i,{children:b}=c,k=q(c,["children"]);return(0,a.createElement)(w,p(P(P({},n),k),{onCreated:(u,l)=>{var S;r.current=u,r.instance=l,(S=n==null?void 0:n.onCreated)==null||S.call(n,u,l)}}),b)},context:r}}},y=(...n)=>{(0,a.useDebugValue)(`${s}:use`);let r=(0,a.useContext)(o);if(!r)throw new Error("use hook must be used within a ContextProvider");return r(...n)},R=()=>{(0,a.useDebugValue)(`${s}:api`);let n=(0,a.useContext)(o);if(!n)throw new Error("api hook must be used within a ContextProvider");return n},V=(...n)=>{(0,a.useDebugValue)(`${s}:observable`);let r=R(),d=(0,a.useRef)(n);return d.current=n,(0,a.useMemo)(()=>{var b,k,i;return r.createObservable(c=>{let u=d.current[0];return u(c)},{isEqualRoot:(b=d.current[1])!=null&&b.isEqualRoot?(c,u)=>{let l=d.current[1].isEqualRoot;return!!l(c,u)}:void 0,isEqual:(k=d.current[1])!=null&&k.isEqual?(c,u)=>{let l=d.current[1].isEqual;return!!l(c,u)}:void 0,name:(i=d.current[1])==null?void 0:i.name})},[r])},W={displayName:o.displayName,createSelectorHook:j.bind(y),api:R,select:(...n)=>y(...n)[0],observable:V,actions:()=>R().actions};return Object.assign(w,x),Object.assign(y,W),{use:y,Provider:w,Context:o}};function j(t,e){var E;let o=(E=e==null?void 0:e.name)!=null?E:(0,T.default)("sh:"),s=(...w)=>{let x=this.api();return(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:use`),(0,a.useMemo)(()=>x.createSelectorHook(t,e),[x])(...w)},C=()=>{(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:api`);let w=this.api();return(0,a.useMemo)(()=>{let x=w.createObservable(t,e);return p(P({},w),{getState:()=>x.getState(),subscribe:x.subscribe.bind(x),createSelectorHook:v.createSelectorHook.bind(x),createObservable:v.createObservable.bind(x)})},[w])},f={displayName:this.displayName,createSelectorHook:j.bind(s),api:C};return Object.assign(s,f),s}var K=I;
|
package/createContext.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { CreateContext } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* @description Creates a highly granular React context with its associated provider and state hook.
|
|
4
|
-
* Unlike the native `React.createContext`, this version provides fine-grained reactivity and supports
|
|
5
|
-
* state selection, metadata handling, and optional custom actions for controlled mutations.
|
|
6
|
-
*
|
|
7
|
-
* Components using the generated hook only re-render when the selected part of the state changes,
|
|
8
|
-
* making it efficient for large or deeply nested state trees.
|
|
9
|
-
*/
|
|
10
|
-
export declare const createContext: CreateContext;
|
|
11
|
-
export default createContext;
|
|
12
|
-
/**
|
|
13
|
-
* Temporary re-export types for backwards compatibility
|
|
14
|
-
*/
|
|
15
|
-
export type { GlobalStoreContextCallbacks, GlobalStoreCallbacks, ContextActionCollectionResult, ContextActionCollectionConfig, ContextStoreToolsExtensions, ContextStoreTools, ContextProviderExtensions, ContextProvider, ReadonlyContextHook, ContextHook, ContextPublicApi, ReadonlyContextPublicApi, CreateContext, InferContextApi, InferStateApi, } from './types';
|
package/createContext.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var G=Object.create;var M=Object.defineProperty,O=Object.defineProperties,F=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,H=Object.getOwnPropertySymbols,g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,P=(t,e)=>{for(var o in e||(e={}))h.call(e,o)&&_(t,o,e[o]);if(H)for(var o of H(e))$.call(e,o)&&_(t,o,e[o]);return t},p=(t,e)=>O(t,D(e));var q=(t,e)=>{var o={};for(var s in t)h.call(t,s)&&e.indexOf(s)<0&&(o[s]=t[s]);if(t!=null&&H)for(var s of H(t))e.indexOf(s)<0&&$.call(t,s)&&(o[s]=t[s]);return o};var z=(t,e)=>{for(var o in e)M(t,o,{get:e[o],enumerable:!0})},N=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let C of L(e))!h.call(t,C)&&C!==o&&M(t,C,{get:()=>e[C],enumerable:!(s=F(e,C))||s.enumerable});return t};var U=(t,e,o)=>(o=t!=null?G(g(t)):{},N(e||!t||!t.__esModule?M(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>N(M({},"__esModule",{value:!0}),t);var Q={};z(Q,{createContext:()=>I,default:()=>K});module.exports=J(Q);var a=require("react"),v=require("./GlobalStore.js"),B=U(require("json-storage-formatter/isFunction")),T=U(require("./uniqueId.js"));var I=(t,e={})=>{var A;let o=(0,a.createContext)(null),s=(A=e.name)!=null?A:(0,T.default)("ctx:"),C=()=>(0,B.default)(t)?t():t,f=n=>Object.prototype.hasOwnProperty.call(n,"value"),E=n=>{var d;(0,a.useDebugValue)(`${s}:Provider`);let[r]=(0,a.useState)(()=>{var u,l,S,m;let b=f(n)?(0,B.default)(n.value)?n.value(C()):n.value:C(),k={__devtools_isContextStore:!0},i=new v.GlobalStore(b,P(p(P({},e),{metadata:(u=(0,B.default)(e.metadata)?e.metadata():e.metadata)!=null?u:{}}),k)),c={use:y};return Object.assign(i.storeTools,c),(S=(l=e.callbacks)==null?void 0:l.onCreated)==null||S.call(l,i.storeTools,i),(m=n.onCreated)==null||m.call(n,i.storeTools,i),i});return(0,a.useLayoutEffect)(()=>{f(n)&&!(0,B.default)(n.value)&&r.setState(n.value)},[r,n.value]),(0,a.useEffect)(()=>{var k,i,c;let b=[(i=(k=e.callbacks)==null?void 0:k.onMounted)==null?void 0:i.call(k,r.storeTools,r),(c=n.onMounted)==null?void 0:c.call(n,r.storeTools,r)].filter(Boolean);return()=>{var u,l,S;(l=(u=r.callbacks)==null?void 0:u.onUnMount)==null||l.call(u,r),b.forEach(m=>m==null?void 0:m()),(S=r.__onUnMountContext)==null||S.call(r,r)}},[r]),(d=n.onRender)==null||d.call(n,r.storeTools,r),r},w=n=>{let r=E(n);return(0,a.createElement)(o.Provider,{value:r.use},n.children)};w.displayName=`${s}:Provider`,o.displayName=`${s}`;let x={makeProviderWrapper:n=>{let r={current:void 0,instance:void 0};return{wrapper:i=>{var c=i,{children:b}=c,k=q(c,["children"]);return(0,a.createElement)(w,p(P(P({},n),k),{onCreated:(u,l)=>{var S;r.current=u,r.instance=l,(S=n==null?void 0:n.onCreated)==null||S.call(n,u,l)}}),b)},context:r}}},y=(...n)=>{(0,a.useDebugValue)(`${s}:use`);let r=(0,a.useContext)(o);if(!r)throw new Error("use hook must be used within a ContextProvider");return r(...n)},R=()=>{(0,a.useDebugValue)(`${s}:api`);let n=(0,a.useContext)(o);if(!n)throw new Error("api hook must be used within a ContextProvider");return n},V=(...n)=>{(0,a.useDebugValue)(`${s}:observable`);let r=R(),d=(0,a.useRef)(n);return d.current=n,(0,a.useMemo)(()=>{var b,k,i;return r.createObservable(c=>{let u=d.current[0];return u(c)},{isEqualRoot:(b=d.current[1])!=null&&b.isEqualRoot?(c,u)=>{let l=d.current[1].isEqualRoot;return!!l(c,u)}:void 0,isEqual:(k=d.current[1])!=null&&k.isEqual?(c,u)=>{let l=d.current[1].isEqual;return!!l(c,u)}:void 0,name:(i=d.current[1])==null?void 0:i.name})},[r])},W={displayName:o.displayName,createSelectorHook:j.bind(y),api:R,select:(...n)=>y(...n)[0],observable:V,actions:()=>R().actions};return Object.assign(w,x),Object.assign(y,W),{use:y,Provider:w,Context:o}};function j(t,e){var E;let o=(E=e==null?void 0:e.name)!=null?E:(0,T.default)("sh:"),s=(...w)=>{let x=this.api();return(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:use`),(0,a.useMemo)(()=>x.createSelectorHook(t,e),[x])(...w)},C=()=>{(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:api`);let w=this.api();return(0,a.useMemo)(()=>{let x=w.createObservable(t,e);return p(P({},w),{getState:()=>x.getState(),subscribe:x.subscribe.bind(x),createSelectorHook:v.createSelectorHook.bind(x),createObservable:v.createObservable.bind(x)})},[w])},f={displayName:this.displayName,createSelectorHook:j.bind(s),api:C};return Object.assign(s,f),s}var K=I;
|
package/createContext.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var V=Object.defineProperty,W=Object.defineProperties;var G=Object.getOwnPropertyDescriptors;var B=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var h=(o,t,a)=>t in o?V(o,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[t]=a,m=(o,t)=>{for(var a in t||(t={}))T.call(t,a)&&h(o,a,t[a]);if(B)for(var a of B(t))A.call(t,a)&&h(o,a,t[a]);return o},f=(o,t)=>W(o,G(t));var _=(o,t)=>{var a={};for(var r in o)T.call(o,r)&&t.indexOf(r)<0&&(a[r]=o[r]);if(o!=null&&B)for(var r of B(o))t.indexOf(r)<0&&A.call(o,r)&&(a[r]=o[r]);return a};import{createContext as O,useContext as $,createElement as q,useMemo as p,useEffect as F,useRef as D,useDebugValue as b,useLayoutEffect as L,useState as g}from"react";import{createObservable as z,createSelectorHook as J,GlobalStore as K}from"./GlobalStore.mjs";import E from"json-storage-formatter/isFunction";import N from"./uniqueId.mjs";var Q=(o,t={})=>{var R;let a=O(null),r=(R=t.name)!=null?R:N("ctx:"),v=()=>E(o)?o():o,y=e=>Object.prototype.hasOwnProperty.call(e,"value"),M=e=>{var c;b(`${r}:Provider`);let[n]=g(()=>{var s,u,x,S;let w=y(e)?E(e.value)?e.value(v()):e.value:v(),d={__devtools_isContextStore:!0},l=new K(w,m(f(m({},t),{metadata:(s=E(t.metadata)?t.metadata():t.metadata)!=null?s:{}}),d)),i={use:P};return Object.assign(l.storeTools,i),(x=(u=t.callbacks)==null?void 0:u.onCreated)==null||x.call(u,l.storeTools,l),(S=e.onCreated)==null||S.call(e,l.storeTools,l),l});return L(()=>{y(e)&&!E(e.value)&&n.setState(e.value)},[n,e.value]),F(()=>{var d,l,i;let w=[(l=(d=t.callbacks)==null?void 0:d.onMounted)==null?void 0:l.call(d,n.storeTools,n),(i=e.onMounted)==null?void 0:i.call(e,n.storeTools,n)].filter(Boolean);return()=>{var s,u,x;(u=(s=n.callbacks)==null?void 0:s.onUnMount)==null||u.call(s,n),w.forEach(S=>S==null?void 0:S()),(x=n.__onUnMountContext)==null||x.call(n,n)}},[n]),(c=e.onRender)==null||c.call(e,n.storeTools,n),n},k=e=>{let n=M(e);return q(a.Provider,{value:n.use},e.children)};k.displayName=`${r}:Provider`,a.displayName=`${r}`;let C={makeProviderWrapper:e=>{let n={current:void 0,instance:void 0};return{wrapper:l=>{var i=l,{children:w}=i,d=_(i,["children"]);return q(k,f(m(m({},e),d),{onCreated:(s,u)=>{var x;n.current=s,n.instance=u,(x=e==null?void 0:e.onCreated)==null||x.call(e,s,u)}}),w)},context:n}}},P=(...e)=>{b(`${r}:use`);let n=$(a);if(!n)throw new Error("use hook must be used within a ContextProvider");return n(...e)},H=()=>{b(`${r}:api`);let e=$(a);if(!e)throw new Error("api hook must be used within a ContextProvider");return e},I=(...e)=>{b(`${r}:observable`);let n=H(),c=D(e);return c.current=e,p(()=>{var w,d,l;return n.createObservable(i=>{let s=c.current[0];return s(i)},{isEqualRoot:(w=c.current[1])!=null&&w.isEqualRoot?(i,s)=>{let u=c.current[1].isEqualRoot;return!!u(i,s)}:void 0,isEqual:(d=c.current[1])!=null&&d.isEqual?(i,s)=>{let u=c.current[1].isEqual;return!!u(i,s)}:void 0,name:(l=c.current[1])==null?void 0:l.name})},[n])},j={displayName:a.displayName,createSelectorHook:U.bind(P),api:H,select:(...e)=>P(...e)[0],observable:I,actions:()=>H().actions};return Object.assign(k,C),Object.assign(P,j),{use:P,Provider:k,Context:a}};function U(o,t){var M;let a=(M=t==null?void 0:t.name)!=null?M:N("sh:"),r=(...k)=>{let C=this.api();return b(`${this.displayName}:selector`),b(`${a}:use`),p(()=>C.createSelectorHook(o,t),[C])(...k)},v=()=>{b(`${this.displayName}:selector`),b(`${a}:api`);let k=this.api();return p(()=>{let C=k.createObservable(o,t);return f(m({},k),{getState:()=>C.getState(),subscribe:C.subscribe.bind(C),createSelectorHook:J.bind(C),createObservable:z.bind(C)})},[k])},y={displayName:this.displayName,createSelectorHook:U.bind(r),api:v};return Object.assign(r,y),r}var oe=Q;export{Q as createContext,oe as default};
|
package/createGlobalState.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of f(t))!y.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(p=n(t,o))||p.enumerable});return e};var b=e=>S(a({},"__esModule",{value:!0}),e);var i={};m(i,{createGlobalState:()=>s,default:()=>c});module.exports=b(i);var l=require("./GlobalStore.cjs"),s=(...[e,t])=>new l.GlobalStore(e,t).use,c=s;
|
package/createGlobalState.d.ts
DELETED
package/createGlobalState.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of f(t))!y.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(p=n(t,o))||p.enumerable});return e};var b=e=>S(a({},"__esModule",{value:!0}),e);var i={};m(i,{createGlobalState:()=>s,default:()=>c});module.exports=b(i);var l=require("./GlobalStore.js"),s=(...[e,t])=>new l.GlobalStore(e,t).use,c=s;
|
package/createGlobalState.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{GlobalStore as o}from"./GlobalStore.mjs";var r=(...[t,e])=>new o(t,e).use,p=r;export{r as createGlobalState,p as default};
|
package/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export type { ActionCollectionConfig, ActionCollectionResult, AnyActions, AnyFunction, BaseMetadata, BrandedId, CleanupFunction, ContextActionCollectionConfig, ContextActionCollectionResult, ContextHook, ContextProvider, ContextProviderExtensions, ContextPublicApi, ContextStoreTools, ContextStoreToolsExtensions, CreateContext, CreateGlobalState, GlobalStoreCallbacks as GlobalStoreCallbacksForContext, GlobalStoreCallbacks, GlobalStoreContextCallbacks, InferAPI, InferActionsType, InferContextApi, InferStateApi, MetadataGetter, MetadataSetter, ObservableFragment, ReadonlyContextHook, ReadonlyContextPublicApi, ReadonlyHook, ReadonlyStateApi, SelectHook, SelectorCallback, StateApi, StateChanges, StateHook, StoreTools, SubscribeCallback, SubscribeCallbackConfig, SubscribeToState, SubscriberParameters, SubscriptionCallback, UniqueId, UnsubscribeCallback, UseHookOptions, Any, } from './types';
|
|
2
|
-
export { GlobalStore } from './GlobalStore';
|
|
3
|
-
export { createGlobalState } from './createGlobalState';
|
|
4
|
-
export { shallowCompare } from './shallowCompare';
|
|
5
|
-
export { uniqueId } from './uniqueId';
|
|
6
|
-
export { throwWrongKeyOnActionCollectionConfig } from './throwWrongKeyOnActionCollectionConfig';
|
|
7
|
-
export { isRecord } from './isRecord';
|
|
8
|
-
export { actions } from './actions';
|
|
9
|
-
export { createContext } from './createContext';
|
package/isRecord.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var c=Object.create;var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var y=(r,e)=>{for(var n in e)f(r,n,{get:e[n],enumerable:!0})},o=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!l.call(r,t)&&t!==n&&f(r,t,{get:()=>e[t],enumerable:!(i=u(e,t))||i.enumerable});return r};var k=(r,e,n)=>(n=r!=null?c(d(r)):{},o(e||!r||!r.__esModule?f(n,"default",{value:r,enumerable:!0}):n,r)),m=r=>o(f({},"__esModule",{value:!0}),r);var x={};y(x,{default:()=>w,isRecord:()=>a});module.exports=m(x);var s=k(require("json-storage-formatter/isNil")),a=r=>!((0,s.default)(r)||typeof r!="object"||Array.isArray(r)||r instanceof Map||r instanceof Set||r instanceof Date),w=a;
|
package/isRecord.d.ts
DELETED
package/isRecord.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var c=Object.create;var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var y=(r,e)=>{for(var n in e)f(r,n,{get:e[n],enumerable:!0})},o=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!l.call(r,t)&&t!==n&&f(r,t,{get:()=>e[t],enumerable:!(i=u(e,t))||i.enumerable});return r};var k=(r,e,n)=>(n=r!=null?c(d(r)):{},o(e||!r||!r.__esModule?f(n,"default",{value:r,enumerable:!0}):n,r)),m=r=>o(f({},"__esModule",{value:!0}),r);var x={};y(x,{default:()=>w,isRecord:()=>a});module.exports=m(x);var s=k(require("json-storage-formatter/isNil")),a=r=>!((0,s.default)(r)||typeof r!="object"||Array.isArray(r)||r instanceof Map||r instanceof Set||r instanceof Date),w=a;
|
package/isRecord.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"json-storage-formatter/isNil";var n=r=>!(e(r)||typeof r!="object"||Array.isArray(r)||r instanceof Map||r instanceof Set||r instanceof Date),f=n;export{f as default,n as isRecord};
|
package/shallowCompare.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var q=Object.create;var s=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var O=(t,n)=>{for(var r in n)s(t,r,{get:n[r],enumerable:!0})},a=(t,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of M(n))!j.call(t,o)&&o!==r&&s(t,o,{get:()=>n[o],enumerable:!(e=E(n,o))||e.enumerable});return t};var i=(t,n,r)=>(r=t!=null?q(V(t)):{},a(n||!t||!t.__esModule?s(r,"default",{value:t,enumerable:!0}):r,t)),d=t=>a(s({},"__esModule",{value:!0}),t);var A={};O(A,{canCheckSimpleEquality:()=>x,default:()=>z,isArray:()=>k,isEqualArray:()=>m,isEqualMap:()=>h,isEqualObject:()=>S,isEqualSet:()=>l,isMap:()=>T,isSet:()=>y,shallowCompare:()=>w});module.exports=d(A);var f=i(require("json-storage-formatter/isPrimitive")),c=i(require("json-storage-formatter/isDate")),p=i(require("json-storage-formatter/isNil")),u=i(require("./isRecord.cjs")),w=(t,n)=>t===n?!0:x(t,n)?t===n:k(t)&&k(n)?m(t,n):T(t)&&T(n)?h(t,n):y(t)&&y(n)?l(t,n):!(0,u.default)(t)||!(0,u.default)(n)?t===n:S(t,n),k=t=>Array.isArray(t),T=t=>t instanceof Map,y=t=>t instanceof Set,x=(t,n)=>{let r=typeof t,e=typeof n;return r!==e?!0:(0,p.default)(t)||(0,p.default)(n)||(0,f.default)(t)&&(0,f.default)(n)||(0,c.default)(t)&&(0,c.default)(n)||r==="function"&&e==="function"},m=(t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r+=1){let e=t[r],o=n[r];if(e!==o)return!1}return!0},h=(t,n)=>{if(t.size!==n.size)return!1;for(let[r,e]of t){let o=n.get(r);if(e!==o)return!1}return!0},l=(t,n)=>{if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;return!0},S=(t,n)=>{let r=Object.keys(t),e=Object.keys(n);if(r.length!==e.length)return!1;for(let o of r){let b=t[o],g=n[o];if(b!==g)return!1}return!0},z=w;
|
package/shallowCompare.d.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description It performs a shallow comparison of the values.
|
|
3
|
-
* @param value1 - The first value to compare.
|
|
4
|
-
* @param value2 - The second value to compare.
|
|
5
|
-
* @returns True if the values are equal, false otherwise.
|
|
6
|
-
*/
|
|
7
|
-
export declare const shallowCompare: <T>(value1: T, value2: T) => boolean;
|
|
8
|
-
export declare const isArray: (value: unknown) => value is unknown[];
|
|
9
|
-
export declare const isMap: (value: unknown) => value is Map<unknown, unknown>;
|
|
10
|
-
export declare const isSet: (value: unknown) => value is Set<unknown>;
|
|
11
|
-
/**
|
|
12
|
-
* @description Determines whether a simple equality check (using `===`) is sufficient
|
|
13
|
-
* to compare the provided values. This helps decide when a deep equality check
|
|
14
|
-
* is unnecessary or inefficient.
|
|
15
|
-
*
|
|
16
|
-
* Simple equality checks are considered valid when:
|
|
17
|
-
* - The values have different types (comparison will trivially return false)
|
|
18
|
-
* - Either value is null or undefined
|
|
19
|
-
* - Both values are primitive types (string, number, boolean, symbol, bigint)
|
|
20
|
-
* - Both values are Date objects
|
|
21
|
-
* - Both values are functions
|
|
22
|
-
*
|
|
23
|
-
* @param value1 - The first value to compare.
|
|
24
|
-
* @param value2 - The second value to compare.
|
|
25
|
-
* @returns `true` if a simple `===` check is sufficient, `false` if a deep comparison may be required.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```ts
|
|
29
|
-
* canCheckSimpleEquality(42, 42); // true (primitive numbers)
|
|
30
|
-
* canCheckSimpleEquality({ a: 1 }, { a: 1 }); // false (objects)
|
|
31
|
-
* canCheckSimpleEquality([1, 2], [1, 2]); // false (arrays)
|
|
32
|
-
* canCheckSimpleEquality('a', 1); // true (different types, shallow check enough)
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export declare const canCheckSimpleEquality: (value1: unknown, value2: unknown) => boolean;
|
|
36
|
-
/**
|
|
37
|
-
* @description Performs a shallow comparison between two arrays.
|
|
38
|
-
*/
|
|
39
|
-
export declare const isEqualArray: <T>(array1: T[], array2: T[]) => array1 is T[];
|
|
40
|
-
/**
|
|
41
|
-
* @description Performs a shallow comparison between two maps.
|
|
42
|
-
*/
|
|
43
|
-
export declare const isEqualMap: <K, V>(map1: Map<K, V>, map2: Map<K, V>) => map1 is Map<K, V>;
|
|
44
|
-
/**
|
|
45
|
-
* @description Performs a shallow comparison between two sets.
|
|
46
|
-
*/
|
|
47
|
-
export declare const isEqualSet: <T>(set1: Set<T>, set2: Set<T>) => set1 is Set<T>;
|
|
48
|
-
/**
|
|
49
|
-
* @description Performs a shallow comparison between two objects.
|
|
50
|
-
*/
|
|
51
|
-
export declare const isEqualObject: <T extends Record<string, unknown>>(value1: T, value2: T) => boolean;
|
|
52
|
-
export default shallowCompare;
|
package/shallowCompare.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var q=Object.create;var s=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var O=(t,n)=>{for(var r in n)s(t,r,{get:n[r],enumerable:!0})},a=(t,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of M(n))!j.call(t,o)&&o!==r&&s(t,o,{get:()=>n[o],enumerable:!(e=E(n,o))||e.enumerable});return t};var i=(t,n,r)=>(r=t!=null?q(V(t)):{},a(n||!t||!t.__esModule?s(r,"default",{value:t,enumerable:!0}):r,t)),d=t=>a(s({},"__esModule",{value:!0}),t);var A={};O(A,{canCheckSimpleEquality:()=>x,default:()=>z,isArray:()=>k,isEqualArray:()=>m,isEqualMap:()=>h,isEqualObject:()=>S,isEqualSet:()=>l,isMap:()=>T,isSet:()=>y,shallowCompare:()=>w});module.exports=d(A);var f=i(require("json-storage-formatter/isPrimitive")),c=i(require("json-storage-formatter/isDate")),p=i(require("json-storage-formatter/isNil")),u=i(require("./isRecord.js")),w=(t,n)=>t===n?!0:x(t,n)?t===n:k(t)&&k(n)?m(t,n):T(t)&&T(n)?h(t,n):y(t)&&y(n)?l(t,n):!(0,u.default)(t)||!(0,u.default)(n)?t===n:S(t,n),k=t=>Array.isArray(t),T=t=>t instanceof Map,y=t=>t instanceof Set,x=(t,n)=>{let r=typeof t,e=typeof n;return r!==e?!0:(0,p.default)(t)||(0,p.default)(n)||(0,f.default)(t)&&(0,f.default)(n)||(0,c.default)(t)&&(0,c.default)(n)||r==="function"&&e==="function"},m=(t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r+=1){let e=t[r],o=n[r];if(e!==o)return!1}return!0},h=(t,n)=>{if(t.size!==n.size)return!1;for(let[r,e]of t){let o=n.get(r);if(e!==o)return!1}return!0},l=(t,n)=>{if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;return!0},S=(t,n)=>{let r=Object.keys(t),e=Object.keys(n);if(r.length!==e.length)return!1;for(let o of r){let b=t[o],g=n[o];if(b!==g)return!1}return!0},z=w;
|
package/shallowCompare.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import s from"json-storage-formatter/isPrimitive";import i from"json-storage-formatter/isDate";import f from"json-storage-formatter/isNil";import c from"./isRecord.mjs";var a=(t,n)=>t===n?!0:w(t,n)?t===n:p(t)&&p(n)?x(t,n):u(t)&&u(n)?m(t,n):k(t)&&k(n)?h(t,n):!c(t)||!c(n)?t===n:l(t,n),p=t=>Array.isArray(t),u=t=>t instanceof Map,k=t=>t instanceof Set,w=(t,n)=>{let r=typeof t,o=typeof n;return r!==o?!0:f(t)||f(n)||s(t)&&s(n)||i(t)&&i(n)||r==="function"&&o==="function"},x=(t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r+=1){let o=t[r],e=n[r];if(o!==e)return!1}return!0},m=(t,n)=>{if(t.size!==n.size)return!1;for(let[r,o]of t){let e=n.get(r);if(o!==e)return!1}return!0},h=(t,n)=>{if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;return!0},l=(t,n)=>{let r=Object.keys(t),o=Object.keys(n);if(r.length!==o.length)return!1;for(let e of r){let T=t[e],y=n[e];if(T!==y)return!1}return!0},E=a;export{w as canCheckSimpleEquality,E as default,p as isArray,x as isEqualArray,m as isEqualMap,l as isEqualObject,h as isEqualSet,u as isMap,k as isSet,a as shallowCompare};
|