Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zaaack/keyv-file
File storage adapter for Keyv, using json to serialize data.
https://github.com/zaaack/keyv-file
Last synced: 5 days ago
JSON representation
File storage adapter for Keyv, using json to serialize data.
- Host: GitHub
- URL: https://github.com/zaaack/keyv-file
- Owner: zaaack
- License: mit
- Created: 2017-08-04T02:09:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-02-22T00:32:40.000Z (almost 1 year ago)
- Last Synced: 2024-04-23T21:28:23.545Z (10 months ago)
- Language: TypeScript
- Homepage:
- Size: 108 KB
- Stars: 66
- Watchers: 3
- Forks: 9
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# keyv-file [
](https://github.com/lukechilds/keyv)
> File storage adapter for Keyv, using json to serialize data fast and small.
[](https://travis-ci.org/zaaack/keyv-file)
[](https://www.npmjs.com/package/keyv-file)File storage adapter for [Keyv](https://github.com/lukechilds/keyv).
TTL functionality is handled internally by interval scan, don't need to panic about expired data take too much space.
## Install
```shell
npm install --save keyv keyv-file
```## Usage
### Using with keyv
```js
const Keyv = require('keyv')
const { KeyvFile } = require('keyv-file')const keyv = new Keyv({
store: new KeyvFile()
});
// More options with default value:
const customKeyv = new Keyv({
store: new KeyvFile({
filename: `${os.tmpdir()}/keyv-file/default-rnd-${Math.random().toString(36).slice(2)}.json`, // the file path to store the data
expiredCheckDelay: 24 * 3600 * 1000, // ms, check and remove expired data in each ms
writeDelay: 100, // ms, batch write to disk in a specific duration, enhance write performance.
encode: JSON.stringify, // serialize function
decode: JSON.parse // deserialize function
})
})
```### Using directly
```ts
import KeyvFile, { makeField } from 'keyv-file'class Kv extends KeyvFile {
constructor() {
super({
filename: './db.json'
})
}
someField = makeField(this, 'field_key')
}export const kv = new Kv
kv.someField.get(1) // empty return default value 1
kv.someField.set(2) // set value 2
kv.someField.get() // return saved value 2
kv.someField.delete() // delete field
```## License
MIT