{"_id":"@cool-midway/cache-manager-fs-hash","_rev":"2-3f7e1b655996fe5c91fd32664ff12bed","name":"@cool-midway/cache-manager-fs-hash","dist-tags":{"latest":"7.0.0","beta":"7.0.0-beta1"},"versions":{"6.0.0":{"name":"@cool-midway/cache-manager-fs-hash","version":"6.0.0","main":"index.js","engines":{"node":">=8.0.0"},"description":"file system store for node cache manager","author":{"name":"Roland Starke"},"license":"MIT","keywords":["cache-manager","storage","filesystem"],"repository":{"type":"git","url":"git+https://github.com/rolandstarke/node-cache-manager-fs-hash.git"},"bugs":{"url":"https://github.com/rolandstarke/node-cache-manager-fs-hash/issues"},"scripts":{"test":"mocha ./test/**/*.js"},"devDependencies":{"cache-manager":"^3.2.1","mocha":"^7.1.1","rimraf":"^3.0.2"},"dependencies":{"lockfile":"^1.0.4"},"gitHead":"614738f6b1be09daecff9883a98c1a4c34e10c56","homepage":"https://github.com/rolandstarke/node-cache-manager-fs-hash#readme","_id":"@cool-midway/cache-manager-fs-hash@6.0.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-7+EKImcpfNMJAu42IOBvTvM0yT0i1QZEZPtWooqtTDT/thEYHexA24CO9uJjW46ISQONjQPpMcAJtnnFSl2fEA==","shasum":"e8055273caf33c66be673389a56660dbb1803cb8","tarball":"https://registry.npmjs.org/@cool-midway/cache-manager-fs-hash/-/cache-manager-fs-hash-6.0.0.tgz","fileCount":7,"unpackedSize":16691,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXDkwer3MIJETpJtt5N1zrF4LL9WZd1ktXSh5oZ/js7QIgCIMNjROHqm924vuLxJLwKFk9QZBVfuiaKGRtkbwp1Q0="}]},"_npmUser":{"name":"cool-js","email":"team@cool-js.com"},"directories":{},"maintainers":[{"name":"cool-js","email":"team@cool-js.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cache-manager-fs-hash_6.0.0_1685502042232_0.12254856378307744"},"_hasShrinkwrap":false},"7.0.0-beta1":{"name":"@cool-midway/cache-manager-fs-hash","version":"7.0.0-beta1","main":"index.js","engines":{"node":">=8.0.0"},"description":"file system store for node cache manager","author":{"name":"Roland Starke"},"license":"MIT","keywords":["cache-manager","storage","filesystem"],"repository":{"type":"git","url":"git+https://github.com/rolandstarke/node-cache-manager-fs-hash.git"},"bugs":{"url":"https://github.com/rolandstarke/node-cache-manager-fs-hash/issues"},"scripts":{},"devDependencies":{"cache-manager":"^3.2.1","mocha":"^7.1.1","rimraf":"^3.0.2"},"dependencies":{"lockfile":"^1.0.4"},"readme":"# Node Cache Manager store for Filesystem\r\n\r\n[![Build Status](https://travis-ci.org/rolandstarke/node-cache-manager-fs-hash.svg?branch=master)](https://travis-ci.org/rolandstarke/node-cache-manager-fs-hash)\r\n[![dependencies Status](https://david-dm.org/rolandstarke/node-cache-manager-fs-hash/status.svg)](https://david-dm.org/rolandstarke/node-cache-manager-fs-hash)\r\n[![npm package](https://img.shields.io/npm/v/cache-manager-fs-hash.svg)](https://www.npmjs.com/package/cache-manager-fs-hash)\r\n[![node](https://img.shields.io/node/v/cache-manager-fs-hash.svg)](https://nodejs.org)\r\n\r\nA Filesystem store for the [node-cache-manager](https://github.com/BryanDonovan/node-cache-manager) module\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install cache-manager-fs-hash --save\r\n```\r\n\r\n## Features\r\n\r\n* Saves anything that is `JSON.stringify`-able to disk\r\n* Buffers are saved as well (if they reach a certain size they will be stored to separate files)\r\n* Works well with the cluster module\r\n\r\n## Usage example\r\n\r\nHere is an example that demonstrates how to implement the Filesystem cache store.\r\n\r\n```javascript\r\nconst cacheManager = require('cache-manager');\r\nconst fsStore = require('cache-manager-fs-hash');\r\n\r\nconst diskCache = cacheManager.caching({\r\n    store: fsStore,\r\n    options: {\r\n        path: 'diskcache', //path for cached files\r\n        ttl: 60 * 60,      //time to life in seconds\r\n        subdirs: true,     //create subdirectories to reduce the\r\n                           //files in a single dir (default: false)\r\n        zip: true,         //zip files to save diskspace (default: false)\r\n    }\r\n});\r\n\r\n\r\n(async () => {\r\n\r\n    await diskCache.set('key', 'value');\r\n    console.log(await diskCache.get('key')); //\"value\"\r\n    console.log(await diskCache.ttl('key')); //3600 seconds\r\n    await diskCache.del('key');\r\n    console.log(await diskCache.get('key')); //undefined\r\n\r\n\r\n    console.log(await getUserCached(5)); //{id: 5, name: '...'}\r\n    console.log(await getUserCached(5)); //{id: 5, name: '...'}\r\n\r\n    await diskCache.reset();\r\n\r\n    function getUserCached(userId) {\r\n        return diskCache.wrap(userId /* cache key */, function () {\r\n            return getUser(userId);\r\n        });\r\n    }\r\n\r\n    async function getUser(userId) {\r\n        return {id: userId, name: '...'};\r\n    }\r\n\r\n})();\r\n```\r\n\r\n## How it works\r\n\r\nThe filename is determined by the md5 hash of the `key`. (The `key` is also saved in the file to detect hash collisions. In this case it will just return a cache miss). Writing is performed with .lock files so that multiple instances of the library (e.g. using the cluster module) do not interfere with one another.\r\n\r\n## Tests\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n## License\r\n\r\ncache-manager-fs-hash is licensed under the MIT license.\r\n","readmeFilename":"README.md","gitHead":"bd120d11266f3478f0350f47991ea95b6a4c172b","homepage":"https://github.com/rolandstarke/node-cache-manager-fs-hash#readme","_id":"@cool-midway/cache-manager-fs-hash@7.0.0-beta1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-H5Cg1gvqIcDgeYTYPXcAAEjOR+Sym9scmPuGN7mnLp4NYg9M84Dc/PVYsuq8NhvsofNSkQKvINcyADCT+iyc4A==","shasum":"dd2477a8406e03ff87c59b3b53b6c344233b025c","tarball":"https://registry.npmjs.org/@cool-midway/cache-manager-fs-hash/-/cache-manager-fs-hash-7.0.0-beta1.tgz","fileCount":7,"unpackedSize":16764,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhjW4VP5Tx1jVoP13TAraXQ570eb1LCBcX3jI7Jn/owAiEA/VsIAAUiwU5QmLLvQYUtjJoiRtQggNYCgTnhbh+zGRw="}]},"_npmUser":{"name":"cool-js","email":"team@cool-js.com"},"directories":{},"maintainers":[{"name":"cool-js","email":"team@cool-js.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cache-manager-fs-hash_7.0.0-beta1_1695869717221_0.6969020408477056"},"_hasShrinkwrap":false},"7.0.0":{"name":"@cool-midway/cache-manager-fs-hash","version":"7.0.0","main":"index.js","engines":{"node":">=8.0.0"},"description":"file system store for node cache manager","author":{"name":"Roland Starke"},"license":"MIT","keywords":["cache-manager","storage","filesystem"],"repository":{"type":"git","url":"git+https://github.com/rolandstarke/node-cache-manager-fs-hash.git"},"bugs":{"url":"https://github.com/rolandstarke/node-cache-manager-fs-hash/issues"},"scripts":{},"devDependencies":{"cache-manager":"^3.2.1","mocha":"^7.1.1","rimraf":"^3.0.2"},"dependencies":{"lockfile":"^1.0.4"},"gitHead":"a6f2a55273977ed231c849549e6b86a1055c22d9","homepage":"https://github.com/rolandstarke/node-cache-manager-fs-hash#readme","_id":"@cool-midway/cache-manager-fs-hash@7.0.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Bl43bVCUm0V+w1wkfOicRfiHHZtaH1mQCp06baNapG86uC7OiXwMrml5+cvZD+mYSHdP07qUxtqkL8oUhrgAfg==","shasum":"879f34ed5ccb9626dabd4b2a198b34ba9c93b66d","tarball":"https://registry.npmjs.org/@cool-midway/cache-manager-fs-hash/-/cache-manager-fs-hash-7.0.0.tgz","fileCount":7,"unpackedSize":14644,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjP8AOSJh1s4M3HgSrJhMKho8cMqcx8lJOIE8cFVHv5gIhAPr3cse1Pvut/O+cjoOpIthHuCrjn0wvFDHrwsvm70Dh"}]},"_npmUser":{"name":"cool-js","email":"team@cool-js.com"},"directories":{},"maintainers":[{"name":"cool-js","email":"team@cool-js.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cache-manager-fs-hash_7.0.0_1698722385737_0.42712955751306025"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-31T03:00:42.122Z","6.0.0":"2023-05-31T03:00:42.497Z","modified":"2023-10-31T03:19:46.226Z","7.0.0-beta1":"2023-09-28T02:55:17.390Z","7.0.0":"2023-10-31T03:19:46.052Z"},"maintainers":[{"name":"cool-js","email":"team@cool-js.com"}],"description":"file system store for node cache manager","homepage":"https://github.com/rolandstarke/node-cache-manager-fs-hash#readme","keywords":["cache-manager","storage","filesystem"],"repository":{"type":"git","url":"git+https://github.com/rolandstarke/node-cache-manager-fs-hash.git"},"author":{"name":"Roland Starke"},"bugs":{"url":"https://github.com/rolandstarke/node-cache-manager-fs-hash/issues"},"license":"MIT","readme":"### COOL-ADMIN\n\ncool-admin一个很酷的后台权限管理系统，开源免费，模块化、插件化、极速开发CRUD，方便快速构建迭代后台管理系统\n\n大数据、微服务、AI编码快速开发！！！\n\n\n### 技术栈\n\n- 后端：node.js midway.js koa.js mysql typescript\n- 前端：vue.js element-plus jsx pinia vue-router\n\n### 官网\n\n[https://cool-js.com](https://cool-js.com)\n\n\n### 演示地址\n\n[https://show.cool-admin.com](https://show.cool-admin.com)\n\n- 账户：admin\n- 密码：123456\n\n### 项目地址\n\n[https://github.com/cool-team-official/cool-admin-midway](https://github.com/cool-team-official/cool-admin-midway)","readmeFilename":"README.md"}