Comparing version 1.0.2 to 1.1.0
@@ -1,2 +0,2 @@ | ||
import type { SetStateAction } from "./utils"; | ||
import type { SetStateAction, ValueType } from "./utils"; | ||
export type { SetterArgType, SetStateAction, Plugin } from "./utils"; | ||
@@ -18,3 +18,3 @@ /** | ||
*/ | ||
declare const useRGS: <T>(key: string, value?: T) => [T, SetStateAction<T>]; | ||
declare const useRGS: <T>(key: string, value?: ValueType<T>) => [T, SetStateAction<T>]; | ||
export default useRGS; |
@@ -1,1 +0,1 @@ | ||
"use strict";var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var p=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},b=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of l(t))!f.call(e,o)&&o!==r&&i(e,o,{get:()=>t[o],enumerable:!(n=g(t,o))||n.enumerable});return e};var d=e=>b(i({},"__esModule",{value:!0}),e);var R={};p(R,{default:()=>A});module.exports=d(R);var a=require("react");var c=globalThis;c.rgs={};var s=c.rgs;var S=e=>t=>{let r=s[e];return r[1].push(t),()=>{r[1]=r[1].filter(n=>n!==t)}},T=e=>t=>{let r=s[e];r[0]=t instanceof Function?t(r[0]):t,r[1].forEach(n=>n())},u=e=>{let t=s[e],r=()=>t[0];return[(0,a.useSyncExternalStore)(t[3],r,r),t[2]]};var x=(e,t)=>(s[e]||(s[e]=[t,[],T(e),S(e)]),u(e)),A=x; | ||
"use strict";var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},b=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of l(t))!p.call(e,o)&&o!==n&&i(e,o,{get:()=>t[o],enumerable:!(r=g(t,o))||r.enumerable});return e};var d=e=>b(i({},"__esModule",{value:!0}),e);var R={};f(R,{default:()=>A});module.exports=d(R);var a=require("react");var c=globalThis;c.rgs={};var s=c.rgs;var T=e=>t=>{let n=s[e];return n[1].push(t),()=>{n[1]=n[1].filter(r=>r!==t)}},S=e=>t=>{let n=s[e];n[0]=t instanceof Function?t(n[0]):t,n[1].forEach(r=>r())},u=e=>{let t=s[e],n=()=>t[0];return[(0,a.useSyncExternalStore)(t[3],n,n),t[2]]};var x=(e,t)=>(s[e]||(s[e]=[t instanceof Function?t():t,[],S(e),T(e)]),u(e)),A=x; |
@@ -5,2 +5,3 @@ type Listener = () => void; | ||
export type SetStateAction<T> = (value: SetterArgType<T>) => void; | ||
export type ValueType<T> = T | (() => T); | ||
type RGS = [unknown, Listener[], SetStateAction<unknown> | null, Subscriber]; | ||
@@ -23,3 +24,3 @@ declare global { | ||
/** Initialize the named store when invoked for the first time. */ | ||
export declare const initWithPlugins: <T>(key: string, value?: T, plugins?: Plugin<T>[], doNotInit?: boolean) => void; | ||
export declare const initWithPlugins: <T>(key: string, value?: ValueType<T>, plugins?: Plugin<T>[], doNotInit?: boolean) => void; | ||
/** | ||
@@ -42,3 +43,3 @@ * Use this hook similar to `useState` hook. | ||
*/ | ||
export declare const useRGSWithPlugins: <T>(key: string, value?: T, plugins?: Plugin<T>[], doNotInit?: boolean) => [T, SetStateAction<T>]; | ||
export declare const useRGSWithPlugins: <T>(key: string, value?: ValueType<T>, plugins?: Plugin<T>[], doNotInit?: boolean) => [T, SetStateAction<T>]; | ||
export {}; |
@@ -1,1 +0,1 @@ | ||
"use strict";var u=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var v=(t,e)=>{for(var n in e)u(t,n,{get:e[n],enumerable:!0})},L=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of G(e))!A.call(t,r)&&r!==n&&u(t,r,{get:()=>e[r],enumerable:!(s=R(e,r))||s.enumerable});return t};var P=t=>L(u({},"__esModule",{value:!0}),t);var l=(t,e,n)=>new Promise((s,r)=>{var i=o=>{try{c(n.next(o))}catch(T){r(T)}},S=o=>{try{c(n.throw(o))}catch(T){r(T)}},c=o=>o.done?s(o.value):Promise.resolve(o.value).then(i,S);c((n=n.apply(t,e)).next())});var M={};v(M,{createHook:()=>d,createSetter:()=>w,createSubcriber:()=>g,globalRGS:()=>a,initWithPlugins:()=>x,useRGSWithPlugins:()=>m});module.exports=P(M);var f=require("react");var p=globalThis;p.rgs={};var a=p.rgs,b=t=>t[1].forEach(e=>e()),g=t=>e=>{let n=a[t];return n[1].push(e),()=>{n[1]=n[1].filter(s=>s!==e)}},w=t=>e=>{let n=a[t];n[0]=e instanceof Function?e(n[0]):e,n[1].forEach(s=>s())},d=t=>{let e=a[t],n=()=>e[0];return[(0,f.useSyncExternalStore)(e[3],n,n),e[2]]},h=!1,E=(t,e)=>l(void 0,null,function*(){var r;let n=a[t],s=i=>{n[0]=i,b(n)};for(let i of e)yield(r=i.init)==null?void 0:r.call(i,t,n[0],s);h=!0}),x=(t,e,n=[],s=!1)=>{if(s){a[t]=[e,[],null,g(t)];return}let r=S=>{if(!h)return;let c=a[t];c[0]=S instanceof Function?S(c[0]):S,b(c),n.forEach(o=>{var T;return(T=o.onChange)==null?void 0:T.call(o,t,c[0])})},i=a[t];i?(i[0]=e,i[2]=r):a[t]=[e,[],r,g(t)],E(t,n)},m=(t,e,n,s=!1)=>{var r;return(r=a[t])!=null&&r[2]||x(t,e,n,s),d(t)};0&&(module.exports={createHook,createSetter,createSubcriber,globalRGS,initWithPlugins,useRGSWithPlugins}); | ||
"use strict";var u=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})},P=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of G(t))!A.call(e,r)&&r!==n&&u(e,r,{get:()=>t[r],enumerable:!(s=R(t,r))||s.enumerable});return e};var y=e=>P(u({},"__esModule",{value:!0}),e);var l=(e,t,n)=>new Promise((s,r)=>{var o=i=>{try{c(n.next(i))}catch(T){r(T)}},S=i=>{try{c(n.throw(i))}catch(T){r(T)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(o,S);c((n=n.apply(e,t)).next())});var v={};L(v,{createHook:()=>d,createSetter:()=>w,createSubcriber:()=>g,globalRGS:()=>a,initWithPlugins:()=>x,useRGSWithPlugins:()=>m});module.exports=y(v);var p=require("react");var f=globalThis;f.rgs={};var a=f.rgs,b=e=>e[1].forEach(t=>t()),g=e=>t=>{let n=a[e];return n[1].push(t),()=>{n[1]=n[1].filter(s=>s!==t)}},w=e=>t=>{let n=a[e];n[0]=t instanceof Function?t(n[0]):t,n[1].forEach(s=>s())},d=e=>{let t=a[e],n=()=>t[0];return[(0,p.useSyncExternalStore)(t[3],n,n),t[2]]},h=!1,E=(e,t)=>l(void 0,null,function*(){var r;let n=a[e],s=o=>{n[0]=o,b(n)};for(let o of t)yield(r=o.init)==null?void 0:r.call(o,e,n[0],s);h=!0}),x=(e,t,n=[],s=!1)=>{if(t=t instanceof Function?t():t,s){a[e]=[t,[],null,g(e)];return}let r=S=>{if(!h)return;let c=a[e];c[0]=S instanceof Function?S(c[0]):S,b(c),n.forEach(i=>{var T;return(T=i.onChange)==null?void 0:T.call(i,e,c[0])})},o=a[e];o?(o[0]=t,o[2]=r):a[e]=[t,[],r,g(e)],E(e,n)},m=(e,t,n,s=!1)=>{var r;return(r=a[e])!=null&&r[2]||x(e,t,n,s),d(e)};0&&(module.exports={createHook,createSetter,createSubcriber,globalRGS,initWithPlugins,useRGSWithPlugins}); |
@@ -1,1 +0,1 @@ | ||
"use strict";var g=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},G=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of x(e))!A.call(t,r)&&r!==n&&g(t,r,{get:()=>e[r],enumerable:!(s=d(e,r))||s.enumerable});return t};var v=t=>G(g({},"__esModule",{value:!0}),t);var l=(t,e,n)=>new Promise((s,r)=>{var i=o=>{try{a(n.next(o))}catch(u){r(u)}},T=o=>{try{a(n.throw(o))}catch(u){r(u)}},a=o=>o.done?s(o.value):Promise.resolve(o.value).then(i,T);a((n=n.apply(t,e)).next())});var y={};R(y,{create:()=>w,useRGSWithPlugins:()=>S,withPlugins:()=>W});module.exports=v(y);var p=require("react");var h=globalThis;h.rgs={};var c=h.rgs,P=t=>t[1].forEach(e=>e()),f=t=>e=>{let n=c[t];return n[1].push(e),()=>{n[1]=n[1].filter(s=>s!==e)}};var U=t=>{let e=c[t],n=()=>e[0];return[(0,p.useSyncExternalStore)(e[3],n,n),e[2]]},b=!1,m=(t,e)=>l(void 0,null,function*(){var r;let n=c[t],s=i=>{n[0]=i,P(n)};for(let i of e)yield(r=i.init)==null?void 0:r.call(i,t,n[0],s);b=!0}),L=(t,e,n=[],s=!1)=>{if(s){c[t]=[e,[],null,f(t)];return}let r=T=>{if(!b)return;let a=c[t];a[0]=T instanceof Function?T(a[0]):T,P(a),n.forEach(o=>{var u;return(u=o.onChange)==null?void 0:u.call(o,t,a[0])})},i=c[t];i?(i[0]=e,i[2]=r):c[t]=[e,[],r,f(t)],m(t,n)},S=(t,e,n,s=!1)=>{var r;return(r=c[t])!=null&&r[2]||L(t,e,n,s),U(t)};var w=(t,e,n)=>()=>S(t,e,n),W=t=>(n,s,r=!1)=>S(n,s,t,r);0&&(module.exports={create,useRGSWithPlugins,withPlugins}); | ||
"use strict";var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},G=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of d(e))!A.call(t,r)&&r!==n&&g(t,r,{get:()=>e[r],enumerable:!(s=x(e,r))||s.enumerable});return t};var y=t=>G(g({},"__esModule",{value:!0}),t);var l=(t,e,n)=>new Promise((s,r)=>{var o=i=>{try{a(n.next(i))}catch(T){r(T)}},u=i=>{try{a(n.throw(i))}catch(T){r(T)}},a=i=>i.done?s(i.value):Promise.resolve(i.value).then(o,u);a((n=n.apply(t,e)).next())});var v={};R(v,{create:()=>w,useRGSWithPlugins:()=>S,withPlugins:()=>W});module.exports=y(v);var f=require("react");var h=globalThis;h.rgs={};var c=h.rgs,P=t=>t[1].forEach(e=>e()),p=t=>e=>{let n=c[t];return n[1].push(e),()=>{n[1]=n[1].filter(s=>s!==e)}};var U=t=>{let e=c[t],n=()=>e[0];return[(0,f.useSyncExternalStore)(e[3],n,n),e[2]]},b=!1,m=(t,e)=>l(void 0,null,function*(){var r;let n=c[t],s=o=>{n[0]=o,P(n)};for(let o of e)yield(r=o.init)==null?void 0:r.call(o,t,n[0],s);b=!0}),L=(t,e,n=[],s=!1)=>{if(e=e instanceof Function?e():e,s){c[t]=[e,[],null,p(t)];return}let r=u=>{if(!b)return;let a=c[t];a[0]=u instanceof Function?u(a[0]):u,P(a),n.forEach(i=>{var T;return(T=i.onChange)==null?void 0:T.call(i,t,a[0])})},o=c[t];o?(o[0]=e,o[2]=r):c[t]=[e,[],r,p(t)],m(t,n)},S=(t,e,n,s=!1)=>{var r;return(r=c[t])!=null&&r[2]||L(t,e,n,s),U(t)};var w=(t,e,n)=>()=>S(t,e,n),W=t=>(n,s,r=!1)=>S(n,s,t,r);0&&(module.exports={create,useRGSWithPlugins,withPlugins}); |
@@ -5,3 +5,3 @@ { | ||
"private": false, | ||
"version": "1.0.2", | ||
"version": "1.1.0", | ||
"description": "A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.", | ||
@@ -32,17 +32,17 @@ "main": "./dist/index.js", | ||
"devDependencies": { | ||
"@testing-library/react": "^15.0.6", | ||
"@turbo/gen": "^1.13.3", | ||
"@types/node": "^20.12.8", | ||
"@types/react": "^18.3.1", | ||
"@testing-library/react": "^16.0.0", | ||
"@turbo/gen": "^2.0.1", | ||
"@types/node": "^20.14.1", | ||
"@types/react": "^18.3.3", | ||
"@types/react-dom": "^18.3.0", | ||
"@vitejs/plugin-react": "^4.2.1", | ||
"@vitest/coverage-v8": "^1.5.3", | ||
"@vitejs/plugin-react": "^4.3.0", | ||
"@vitest/coverage-v8": "^1.6.0", | ||
"eslint-config-custom": "workspace:*", | ||
"jsdom": "^24.0.0", | ||
"octokit": "^3.2.0", | ||
"jsdom": "^24.1.0", | ||
"octokit": "^4.0.2", | ||
"react": "^18.3.1", | ||
"tsconfig": "workspace:*", | ||
"tsup": "^8.0.2", | ||
"tsup": "^8.1.0", | ||
"typedoc": "^0.25.13", | ||
"typedoc-plugin-mdn-links": "^3.1.23", | ||
"typedoc-plugin-mdn-links": "^3.1.28", | ||
"typedoc-plugin-missing-exports": "^2.2.0", | ||
@@ -53,3 +53,3 @@ "typedoc-plugin-rename-defaults": "^0.7.0", | ||
"vite-tsconfig-paths": "^4.3.2", | ||
"vitest": "^1.5.3" | ||
"vitest": "^1.6.0" | ||
}, | ||
@@ -56,0 +56,0 @@ "peerDependencies": { |
@@ -11,2 +11,5 @@ # React18GlobalStore | ||
> If you need fully featured state management solution, consider using Zustand with [`treeshakable`](https://github.com/react18-tools/treeshakable/) | ||
> To understand the issue with treeshakability and importing from subpath, see - <https://treeshakable.vercel.app> | ||
## Features | ||
@@ -32,2 +35,8 @@ | ||
**_or_** | ||
```tsx | ||
const [state, setState] = useRGS<number>("counter", () => 1); | ||
``` | ||
> For detailed instructions, see [Getting Started](./md-docs/1.getting-started.md) | ||
@@ -34,0 +43,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
25016
263
79