{"_id":"@carbide/state-manager","name":"@carbide/state-manager","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@carbide/state-manager","version":"1.0.0","description":"全局状态管理组件，支持订阅和持久化","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"build":"rollup -c","dev":"rollup -c -w","test":"jest","test:watch":"jest --watch","lint":"eslint src --ext .ts","typecheck":"tsc --noEmit"},"keywords":["state","state-manager","store","typescript","carbide"],"author":{"name":"Carbide"},"license":"MIT","devDependencies":{"@rollup/plugin-typescript":"^11.1.6","@types/jest":"^29.5.12","jest":"^29.7.0","jest-environment-jsdom":"^30.3.0","rollup":"^4.13.0","ts-jest":"^29.1.2","tslib":"^2.6.2","typescript":"^5.4.3"},"_id":"@carbide/state-manager@1.0.0","gitHead":"8fcec274b8440276b389983dbb41d0d710e52962","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Itinm9ENI1hEKFvdSgUBQq3mqYKQjCFYTHFuhhSvEe+X50rDclMPlFlARsihYaZP1i6A6Gwxy9/ieu8o1CEbxw==","shasum":"ee5483426fb847cec52b8cd52f07f20ee6aee6ed","tarball":"https://registry.npmjs.org/@carbide/state-manager/-/state-manager-1.0.0.tgz","fileCount":9,"unpackedSize":30951,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGETZxh9yZ7RSy3vnFylrMYYcg6GfNXZSVGuwpFrPuGpAiEAp3PH8xn4wOqT/fiFTZpBfMJtgFa8eoWVOjevxsQ++lQ="}]},"_npmUser":{"name":"carbide","email":"15867139271@163.com"},"directories":{},"maintainers":[{"name":"carbide","email":"15867139271@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/state-manager_1.0.0_1776360062892_0.4580175362601149"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T17:21:02.699Z","1.0.0":"2026-04-16T17:21:03.011Z","modified":"2026-04-16T17:21:03.261Z"},"maintainers":[{"name":"carbide","email":"15867139271@163.com"}],"description":"全局状态管理组件，支持订阅和持久化","keywords":["state","state-manager","store","typescript","carbide"],"author":{"name":"Carbide"},"license":"MIT","readme":"# carbide-state-manager\n\n全局状态管理组件，支持订阅和持久化。\n\n## 功能\n\n- 全局状态存储\n- 订阅/取消订阅模式\n- 状态变更通知\n- localStorage 持久化\n- TypeScript 类型支持\n\n## 安装\n\n```bash\nnpm install\nnpm run build\n```\n\n## 使用\n\n```typescript\nimport { StateManager } from './src/index';\n\n// 创建实例\nconst state = new StateManager({\n  user: { name: 'Carbide', id: 1 },\n  theme: 'dark'\n});\n\n// 订阅状态变更\nconst unsubscribe = state.subscribe((newState, oldState) => {\n  console.log('状态变化:', oldState, '->', newState);\n});\n\n// 更新状态\nstate.setState({ theme: 'light' });\n\n// 获取状态\nconsole.log(state.getState());\n\n// 取消订阅\nunsubscribe();\n```\n\n## API\n\n### `new StateManager(initialState, options)`\n\n- `initialState`: 初始状态对象\n- `options.persist`: 是否持久化到 localStorage（默认 false）\n- `options.key`: localStorage 键名（默认 'carbide-state'）\n\n### `setState(partialState)`\n\n合并更新状态，触发订阅回调。\n\n### `getState()`\n\n获取当前完整状态。\n\n### `subscribe(callback)`\n\n订阅状态变更，返回取消订阅函数。\n\n### `reset()`\n\n重置为初始状态。\n","readmeFilename":"README.md","_rev":"1-3ae09054ee693643239361e1bb0dd160"}