{"_id":"@akash_deep_chitransh/react-mini-state","_rev":"4-2f9f97b88ace96465f0f335acc19f8d6","name":"@akash_deep_chitransh/react-mini-state","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@akash_deep_chitransh/react-mini-state","version":"1.0.0","keywords":["react","state-management","store","selector","typescript"],"author":{"name":"Akash Deep Chitransh"},"license":"MIT","_id":"@akash_deep_chitransh/react-mini-state@1.0.0","maintainers":[{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"}],"homepage":"https://github.com/CodeChitra/react-mini-state#readme","bugs":{"url":"https://github.com/CodeChitra/react-mini-state/issues"},"dist":{"shasum":"880d44a0c3dd9472da7eb12e7dbcf65766eebdff","tarball":"https://registry.npmjs.org/@akash_deep_chitransh/react-mini-state/-/react-mini-state-1.0.0.tgz","fileCount":8,"integrity":"sha512-ZErOrEAKf7J4sLD1q77Yeo+Apa0mmT9zOUVliyFTs1u1IxzzzygBDoHenrKkOeIuIDDVV+U3zjjC7K00UVWuVw==","signatures":[{"sig":"MEQCIC+OJgZJlNFmqQbHbyiDeAjF6Umdf7dxgls9NLU0q7pyAiACU1gDEn6OJFAgKSnfESiQi/jANH21KokD+t7kZCMJwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6357},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"dc67ebdb58f2971744cae0865e7798dbf838714f","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest"},"_npmUser":{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"},"repository":{"url":"git+https://github.com/CodeChitra/react-mini-state.git","type":"git"},"_npmVersion":"10.2.4","description":"A lightweight and minimal state management solution for small react apps.","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^18.3.1","tslib":"^2.8.1","rollup":"^4.41.1","vitest":"^3.1.4","react-dom":"^18.3.1","typescript":"^5.8.3","@types/react":"^19.1.5","rollup-plugin-dts":"^6.2.1","@vitest/coverage-v8":"^3.1.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^16.3.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^>=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-mini-state_1.0.0_1748170663158_0.7067665011396682","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@akash_deep_chitransh/react-mini-state","version":"1.0.1","keywords":["react","state-management","store","selector","typescript"],"author":{"name":"Akash Deep Chitransh"},"license":"MIT","_id":"@akash_deep_chitransh/react-mini-state@1.0.1","maintainers":[{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"}],"homepage":"https://github.com/CodeChitra/react-mini-state#readme","bugs":{"url":"https://github.com/CodeChitra/react-mini-state/issues"},"dist":{"shasum":"b92ad4cf1163e0869fd3bab6e269c3f24c77bbed","tarball":"https://registry.npmjs.org/@akash_deep_chitransh/react-mini-state/-/react-mini-state-1.0.1.tgz","fileCount":8,"integrity":"sha512-3EWEcL4+OLHjtmP+xQ5iGCH2ncPFH5W/F7QGIcId04L62+II8+1Ph0oozQDI6pPdOqtYbM53A/ls0qDWeNb3Hw==","signatures":[{"sig":"MEYCIQDQAkjw7kffs5IM5FjrTuQd0KJoNy783Cd2E566WaojNAIhAKKMNOdL5Ozce/NFrlA/BS5q+z7Fz5/IiXVwCXUpLm22","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6401},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"dc67ebdb58f2971744cae0865e7798dbf838714f","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest"},"_npmUser":{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"},"repository":{"url":"git+https://github.com/CodeChitra/react-mini-state.git","type":"git"},"_npmVersion":"10.2.4","description":"A lightweight and minimal state management solution for small react apps.","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^18.3.1","tslib":"^2.8.1","rollup":"^4.41.1","vitest":"^3.1.4","react-dom":"^18.3.1","typescript":"^5.8.3","@types/react":"^19.1.5","rollup-plugin-dts":"^6.2.1","@vitest/coverage-v8":"^3.1.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^16.3.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^>=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-mini-state_1.0.1_1748171237320_0.6199891333563989","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@akash_deep_chitransh/react-mini-state","version":"1.0.2","keywords":["react","state-management","store","selector","typescript"],"author":{"name":"Akash Deep Chitransh"},"license":"MIT","_id":"@akash_deep_chitransh/react-mini-state@1.0.2","maintainers":[{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"}],"homepage":"https://github.com/CodeChitra/react-mini-state#readme","bugs":{"url":"https://github.com/CodeChitra/react-mini-state/issues"},"dist":{"shasum":"9836bf374c07c7fcf06854f54a99336c3c856a2b","tarball":"https://registry.npmjs.org/@akash_deep_chitransh/react-mini-state/-/react-mini-state-1.0.2.tgz","fileCount":8,"integrity":"sha512-Tm1OrWr71kcTWxEpGGx1ZlfZ9GYPRasNgdYwLRDvZ2vVVkAp03wmYXyXG5gsIiJbpuwEmQsSgfyJ9CWS+F9Prw==","signatures":[{"sig":"MEYCIQD9enSoygteLX9eAQ+M4O4+url1ZRUYntye9C7ondac2wIhAKGD33kzx9xy5t/uMKSt+MOUpzB8kbOiNiXjBpjO9Qle","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6429},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"99090431eaa7a750399b3bc60c6b05abf3faa3db","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest"},"_npmUser":{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"},"repository":{"url":"git+https://github.com/CodeChitra/react-mini-state.git","type":"git"},"_npmVersion":"10.2.4","description":"A lightweight and minimal state management solution for small react apps.","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^18.3.1","tslib":"^2.8.1","rollup":"^4.41.1","vitest":"^3.1.4","react-dom":"^18.3.1","typescript":"^5.8.3","@types/react":"^19.1.5","rollup-plugin-dts":"^6.2.1","@vitest/coverage-v8":"^3.1.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^16.3.0","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-mini-state_1.0.2_1748173296388_0.4400817795738541","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"author":{"name":"Akash Deep Chitransh"},"name":"@akash_deep_chitransh/react-mini-state","version":"1.0.3","description":"A lightweight and minimal state management solution for small react apps.","main":"dist/index.js","types":"dist/index.d.ts","type":"module","scripts":{"build":"rollup -c","test":"vitest run","test:watch":"vitest"},"repository":{"type":"git","url":"git+https://github.com/CodeChitra/react-mini-state.git"},"keywords":["react","state-management","store","selector","typescript"],"license":"MIT","peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"devDependencies":{"@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.2","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.3.0","@types/react":"^19.1.5","@vitest/coverage-v8":"^3.1.4","jsdom":"^26.1.0","react":"^18.3.1","react-dom":"^18.3.1","rollup":"^4.41.1","rollup-plugin-dts":"^6.2.1","rollup-plugin-peer-deps-external":"^2.2.4","tslib":"^2.8.1","typescript":"^5.8.3","vitest":"^3.1.4"},"_id":"@akash_deep_chitransh/react-mini-state@1.0.3","gitHead":"75d89b1176e9fd0a62a527105bb7526f208fd4a7","bugs":{"url":"https://github.com/CodeChitra/react-mini-state/issues"},"homepage":"https://github.com/CodeChitra/react-mini-state#readme","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-LFHJgvh/bFEjAi2pAiFs1hF1s4vzTZ0rHyabLndIbqRCcT6vyMgYQX3HmVIblcV+CV7IQz/vJk/OfYOJfEPHsg==","shasum":"fab6d17faa7883e2abd098b793969a68e1522912","tarball":"https://registry.npmjs.org/@akash_deep_chitransh/react-mini-state/-/react-mini-state-1.0.3.tgz","fileCount":5,"unpackedSize":5918,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEwGmQbvVC4Ap67bD1jmHWJippkhLBjPzI1lkQsOt8ZwAiAVQeLEDgT2zjL57noWYrS2ZdbLaYYVSc3Zoo94/Hg44g=="}]},"_npmUser":{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"},"directories":{},"maintainers":[{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-mini-state_1.0.3_1748243598183_0.4857338319711757"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-25T10:57:43.062Z","modified":"2025-05-26T07:13:18.541Z","1.0.0":"2025-05-25T10:57:43.338Z","1.0.1":"2025-05-25T11:07:17.551Z","1.0.2":"2025-05-25T11:41:36.578Z","1.0.3":"2025-05-26T07:13:18.360Z"},"bugs":{"url":"https://github.com/CodeChitra/react-mini-state/issues"},"author":{"name":"Akash Deep Chitransh"},"license":"MIT","homepage":"https://github.com/CodeChitra/react-mini-state#readme","keywords":["react","state-management","store","selector","typescript"],"repository":{"type":"git","url":"git+https://github.com/CodeChitra/react-mini-state.git"},"description":"A lightweight and minimal state management solution for small react apps.","maintainers":[{"name":"akash_deep_chitransh","email":"codechitra@gmail.com"}],"readme":"# 🔌 react-mini-state\r\n\r\nA lightweight and optimized state management library for React, built with simplicity and performance in mind. Supports **selectors** to prevent unnecessary re-renders and works seamlessly with **TypeScript**.\r\n\r\n---\r\n\r\n## 🚀 Installation\r\n\r\n```bash\r\nnpm install @akash_deep_chitransh/react-mini-state\r\n# or\r\nyarn add @akash_deep_chitransh/react-mini-state\r\n```\r\n\r\n---\r\n\r\n## 🧠 Core APIs\r\n\r\nThis library exposes **only two** main APIs:\r\n\r\n### 1. `createStore(initialState)`\r\n\r\nCreates the global store.\r\n\r\n```ts\r\nimport { createStore } from \"react-mini-state\";\r\n\r\nconst store = createStore({ count: 0 });\r\n```\r\n\r\n### 2. `createUseStore(store)`\r\n\r\nReturns a custom hook (`useStore`) that subscribes to the store.\r\n\r\n```ts\r\nimport { createUseStore } from \"react-mini-state\";\r\n\r\nconst useStore = createUseStore(store);\r\n```\r\n\r\n---\r\n\r\n## ⚙️ Usage\r\n\r\n### ✅ Example: Counter\r\n\r\n```tsx\r\nimport React from \"react\";\r\nimport { createStore, createUseStore } from \"react-mini-state\";\r\n\r\nconst store = createStore({ count: 0 });\r\nconst useStore = createUseStore(store);\r\n\r\nconst increment = () =>\r\n  store.setState((prev) => ({ ...prev, count: prev.count + 1 }));\r\n\r\nconst Counter = () => {\r\n  const count = useStore((state) => state.count);\r\n\r\n  return (\r\n    <div>\r\n      <p>{count}</p>\r\n      <button onClick={increment}>Increment</button>\r\n    </div>\r\n  );\r\n};\r\n```\r\n\r\n---\r\n\r\n## 🎯 Features\r\n\r\n- ✅ **Only two APIs** — Easy to learn and use\r\n- ⚡ **Optimized with selector** — Components only re-render when the selected state changes\r\n- 🔄 **Store mutation via `setState`**\r\n- 💙 **TypeScript support** out of the box\r\n- 🎣 Built using React’s `useSyncExternalStore`\r\n\r\n---\r\n\r\n## 📦 TypeScript Support\r\n\r\nYou can define your store state type and enjoy full type inference:\r\n\r\n```ts\r\ntype StoreState = { count: number };\r\nconst store = createStore<StoreState>({ count: 0 });\r\n\r\nconst useStore = createUseStore(store);\r\n```\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\nIf you'd like to contribute, feel free to fork the repo and open a pull request.\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nMIT\r\n","readmeFilename":"Readme.md"}