UNPKG

keyv-file

Version:

File storage adapter for Keyv, using msgpack to serialize data fast and small.

49 lines (48 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Field = void 0; exports.makeField = makeField; class Field { kv; key; defaults; constructor(kv, key, defaults) { this.kv = kv; this.key = key; this.defaults = defaults; } async get(def = this.defaults) { return (await this.kv.get(this.key)) ?? def; } getSync(def = this.defaults) { if (this.kv instanceof Map) { return this.kv.get(this.key) ?? def; } else if ('getSync' in this.kv) { return this.kv.getSync(this.key) ?? def; } throw new Error('kv does not support getSync'); } // setSync(def:T) { // if ('setSync' in this.kv) { // return this.kv.setSync(this.key, def) ?? def // } // throw new Error('kv does not support getSync') // } /** * Note: `await kv.someFiled.set()` will wait <options.writeDelay> millseconds to save to disk, it would be slow. Please remove `await` if you find performance issues. * @param value * @param ttl * @returns */ set(val, ttl) { return this.kv.set(this.key, val, ttl); } delete() { return this.kv.delete(this.key); } } exports.Field = Field; function makeField(kv, key, defaults) { return new Field(kv, key, defaults); }