{"_id":"@a-drowned-fish/storage","_rev":"4-afb17e6a09f3ccb48130d8c9b15bdbb3","name":"@a-drowned-fish/storage","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@a-drowned-fish/storage","version":"1.0.0","keywords":["storage","expire"],"author":{"name":"a-drowned-fish"},"license":"MIT","_id":"@a-drowned-fish/storage@1.0.0","maintainers":[{"name":"a-drowned-fish","email":"18701717289@163.com"}],"dist":{"shasum":"12cc8588121c0bcd10b63f4953617016b5e9883e","tarball":"https://registry.npmjs.org/@a-drowned-fish/storage/-/storage-1.0.0.tgz","fileCount":8,"integrity":"sha512-jGBFJx+WfFooifWlmzyEmY4/V3RLFSXKvUMkLQTSXfqZRZ+GfRcCgvOS720Ixu/T7WTGsvWFx5R2bvzU3DNzIw==","signatures":[{"sig":"MEYCIQCv+NOjcR4bSa9N5k40VRfbEPkCUpyDsUiyINboVe6TDgIhAPUiT61ak5Yveytb93Lbiz2nN84jnMctS5MjiikEwihJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15094},"main":"./dist/index.cjs.js","_from":"file:a-drowned-fish-storage-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.es.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs.js"}}},"scripts":{},"_npmUser":{"name":"a-drowned-fish","email":"18701717289@163.com"},"_resolved":"/private/var/folders/cw/9s804v_j7yl347d12jdyw5_r0000gn/T/b504f44cf9010b63e085337805e1856a/a-drowned-fish-storage-1.0.0.tgz","_integrity":"sha512-jGBFJx+WfFooifWlmzyEmY4/V3RLFSXKvUMkLQTSXfqZRZ+GfRcCgvOS720Ixu/T7WTGsvWFx5R2bvzU3DNzIw==","_npmVersion":"11.6.2","description":"一个用于处理存储的工具库，支持过期时间。仅支持LocalStorage。","directories":{},"_nodeVersion":"24.11.1","buildOptions":{"globals":{},"external":[]},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/storage_1.0.0_1778118409151_0.4063053965258625","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@a-drowned-fish/storage","version":"1.0.1","keywords":["storage","expire"],"author":{"name":"a-drowned-fish"},"license":"MIT","_id":"@a-drowned-fish/storage@1.0.1","maintainers":[{"name":"a-drowned-fish","email":"18701717289@163.com"}],"dist":{"shasum":"0a1a6f3d0e6536605344ce342d39e5450f1d79a0","tarball":"https://registry.npmjs.org/@a-drowned-fish/storage/-/storage-1.0.1.tgz","fileCount":8,"integrity":"sha512-A2BIQmO+Y7rSBUfYZxT+q1YPibdQpfq7Ax+/Kq1PEJ9ujvuIJCDJvLmApwC0eVzu5UY+I6zLpIra5JNbOyD2Yg==","signatures":[{"sig":"MEUCIQDghkHWij0coprej2+h9aauUSo9Hmc2G89Kzp9OVMzfuQIge0skAIYJpiLSgaqvchf/c+tfkXRquAUq1eitvLqDdac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18046},"main":"./dist/index.cjs.js","_from":"file:a-drowned-fish-storage-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.es.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs.js"}}},"scripts":{},"_npmUser":{"name":"a-drowned-fish","email":"18701717289@163.com"},"_resolved":"/private/var/folders/cw/9s804v_j7yl347d12jdyw5_r0000gn/T/ef8045fb0efcd0ea325c8084ce30da61/a-drowned-fish-storage-1.0.1.tgz","_integrity":"sha512-A2BIQmO+Y7rSBUfYZxT+q1YPibdQpfq7Ax+/Kq1PEJ9ujvuIJCDJvLmApwC0eVzu5UY+I6zLpIra5JNbOyD2Yg==","_npmVersion":"11.6.2","description":"一个用于处理存储的工具库，支持过期时间。仅支持LocalStorage。","directories":{},"_nodeVersion":"24.11.1","buildOptions":{"globals":{},"external":[]},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/storage_1.0.1_1778118682681_0.12536264972421374","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@a-drowned-fish/storage","version":"1.0.3","keywords":["storage","expire"],"author":{"name":"a-drowned-fish"},"license":"MIT","_id":"@a-drowned-fish/storage@1.0.3","maintainers":[{"name":"a-drowned-fish","email":"18701717289@163.com"}],"dist":{"shasum":"30fe67abc8f296fc3e24aa953dbebb648d0a7127","tarball":"https://registry.npmjs.org/@a-drowned-fish/storage/-/storage-1.0.3.tgz","fileCount":8,"integrity":"sha512-Q8VlvISABqboYx1V1vCFTUYDoopkcz8DgtaMmqCzs40GAZWHqjkp+y/zNz4paNTTiYiihxTMdvrIJJNRrv1t7Q==","signatures":[{"sig":"MEYCIQC9mkbeRdwotds8CXIgQVOJu2kcnUjEZ4RiVXFAvQ6U9gIhAJKUMZMqrr5N9lT4LdvZWlc+1OZrTTQLJgz1Hf2QGppE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15094},"main":"./dist/index.cjs.js","_from":"file:a-drowned-fish-storage-1.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.es.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs.js"}}},"scripts":{},"_npmUser":{"name":"a-drowned-fish","email":"18701717289@163.com"},"_resolved":"/private/var/folders/cw/9s804v_j7yl347d12jdyw5_r0000gn/T/bd14ce2f77ac821e380431f677c74f11/a-drowned-fish-storage-1.0.3.tgz","_integrity":"sha512-Q8VlvISABqboYx1V1vCFTUYDoopkcz8DgtaMmqCzs40GAZWHqjkp+y/zNz4paNTTiYiihxTMdvrIJJNRrv1t7Q==","_npmVersion":"11.6.2","description":"一个用于处理存储的工具库，支持过期时间。仅支持LocalStorage。","directories":{},"_nodeVersion":"24.11.1","buildOptions":{"globals":{},"external":[]},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/storage_1.0.3_1779957184102_0.27457093222946427","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@a-drowned-fish/storage","version":"1.0.4","description":"一个用于处理存储的工具库，支持过期时间。仅支持LocalStorage。","main":"./dist/index.cjs.js","module":"./dist/index.es.js","types":"./dist/index.d.ts","exports":{".":{"import":{"default":"./dist/index.es.js","types":"./dist/index.d.ts"},"require":{"default":"./dist/index.cjs.js","types":"./dist/index.d.ts"}}},"keywords":["storage","expire"],"publishConfig":{"access":"public"},"buildOptions":{"external":[],"globals":{}},"author":{"name":"a-drowned-fish"},"license":"MIT","scripts":{},"_id":"@a-drowned-fish/storage@1.0.4","_integrity":"sha512-mM9jGVztVdtS2rDHWElU0YyiwJHdp2ekxWu7XEDORmaEVrxy1z6nLWbExJLBjyeY6QkzXOxvO5kkNoJ5MzGR2g==","_resolved":"/private/var/folders/cw/9s804v_j7yl347d12jdyw5_r0000gn/T/029f1949b8368059c851584b02a1f9c1/a-drowned-fish-storage-1.0.4.tgz","_from":"file:a-drowned-fish-storage-1.0.4.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-mM9jGVztVdtS2rDHWElU0YyiwJHdp2ekxWu7XEDORmaEVrxy1z6nLWbExJLBjyeY6QkzXOxvO5kkNoJ5MzGR2g==","shasum":"10eede48231f8eac533dd2cb36cb8766f8c545dc","tarball":"https://registry.npmjs.org/@a-drowned-fish/storage/-/storage-1.0.4.tgz","fileCount":8,"unpackedSize":18178,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC08KAZSyrPU3Hqy3PNGHyBEihkwVpWX834d9UpPTiO2AIhAIuMQK/tHGA/hP8XRP8PsBc28rbrHoBIJWdO9xk3syrk"}]},"_npmUser":{"name":"a-drowned-fish","email":"18701717289@163.com"},"directories":{},"maintainers":[{"name":"a-drowned-fish","email":"18701717289@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/storage_1.0.4_1779958965113_0.6312701596070616"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T01:46:49.000Z","modified":"2026-05-28T09:02:45.384Z","1.0.0":"2026-05-07T01:46:49.284Z","1.0.1":"2026-05-07T01:51:22.837Z","1.0.3":"2026-05-28T08:33:04.242Z","1.0.4":"2026-05-28T09:02:45.264Z"},"author":{"name":"a-drowned-fish"},"license":"MIT","keywords":["storage","expire"],"description":"一个用于处理存储的工具库，支持过期时间。仅支持LocalStorage。","maintainers":[{"name":"a-drowned-fish","email":"18701717289@163.com"}],"readme":"# @a-drowned-fish/storage\n\n一个轻量级的本地存储工具库，支持过期时间自动清理功能。\n\n## 安装\n\n```bash\nnpm install @a-drowned-fish/storage\n```\n\n## 快速开始\n\n### 基本使用\n\n```javascript\nimport { storage, singleTonStorage } from \"@a-drowned-fish/storage\";\n\n// 使用普通实例\nstorage.setExpireTime(3600); // 设置过期时间为 1 小时\nstorage.setItem(\"token\", \"abc123\");\nconst token = storage.getItem(\"token\");\n\n// 使用单例实例\nsingleTonStorage.setExpireTime(3600);\nsingleTonStorage.setItem(\"user\", \"test\");\n```\n\n### 链式调用\n\n```javascript\nimport { storage } from \"@a-drowned-fish/storage\";\n\n// setExpireTime 方法支持链式调用\nstorage.setExpireTime(3600).setItem(\"key\", \"value\");\n```\n\n## API 文档\n\n### StorageWithExpire 类\n\n提供带有过期时间的本地存储功能，支持自动清理过期数据。\n\n#### 构造函数\n\n```typescript\nnew StorageWithExpire();\n```\n\n#### 方法\n\n##### setExpireTime(expired?: number): StorageWithExpire\n\n设置过期时间，单位为秒。支持链式调用。\n\n**参数:**\n\n- `expired` - 过期时间（单位：秒），默认 `0` 表示永不过期\n\n**返回值:**\n\n- 返回当前实例，支持链式调用\n\n##### getItem(key: string): any | null\n\n获取存储的值，如果已过期则返回 `null` 并自动删除。\n\n**参数:**\n\n- `key` - 存储键名\n\n##### setItem(key: string, value: string): void\n\n存储值到本地存储。\n\n**参数:**\n\n- `key` - 存储键名\n- `value` - 存储值\n\n##### removeItem(key: string): void\n\n删除指定键名的存储。\n\n**参数:**\n\n- `key` - 存储键名\n\n### singleTonStorage\n\n`StorageWithExpire` 的单例实例，全局共享同一个实例。\n\n**特点:**\n\n- 无论在多少个文件中导入，始终是同一个实例\n- 使用单例模式保证全局唯一性\n\n```javascript\nimport { singleTonStorage } from \"@a-drowned-fish/storage\";\n\n// 设置过期时间为 1 小时\nsingleTonStorage.setExpireTime(3600);\n\n// 存储数据\nsingleTonStorage.setItem(\"token\", \"abc123\");\n\n// 获取数据\nconst token = singleTonStorage.getItem(\"token\");\n\n// 删除数据\nsingleTonStorage.removeItem(\"token\");\n```\n\n### storage\n\n`StorageWithExpire` 的普通实例，由于 ES Module 的模块缓存机制，在不同文件中导入时也是同一个实例。\n\n**注意:**\n\n- 虽然是普通实例，但由于模块缓存，多次导入仍然共享同一个实例\n- 如果需要完全独立的实例，请使用 `new StorageWithExpire()`\n\n```javascript\nimport { storage } from \"@a-drowned-fish/storage\";\n\n// 使用方式与 singleTonStorage 相同\nstorage.setExpireTime(3600);\nstorage.setItem(\"key\", \"value\");\nconst value = storage.getItem(\"key\");\n```\n\n**实例隔离:**\n\n如果需要创建完全独立的实例（互不影响），可以直接使用 `StorageWithExpire` 类：\n\n```javascript\nimport { StorageWithExpire } from \"@a-drowned-fish/storage\";\n\n// 创建独立实例\nconst myStorage = new StorageWithExpire();\nmyStorage.setExpireTime(3600);\nmyStorage.setItem(\"key\", \"value\");\n```\n\n## 导出说明\n\n```typescript\nimport { StorageWithExpire, singleTonStorage, storage } from \"@a-drowned-fish/storage\";\n\n// 或使用默认导出\nimport storageModule from \"@a-drowned-fish/storage\";\n// storageModule.singleTonStorage\n// storageModule.storage\n// storageModule.StorageWithExpire\n```\n\n## 特性\n\n- 🎯 支持过期时间自动清理\n- 🔗 支持链式调用\n- 📦 轻量级，无依赖\n- 🚀 支持 ES Module 和 CommonJS\n- 🔒 类型安全，支持 TypeScript\n\n## 许可证\n\nMIT License\n\n## 作者\n\na-drowned-fish\n","readmeFilename":"README.md"}