UNPKG

keyv-file

Version:

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

57 lines (56 loc) 1.95 kB
import EventEmitter from 'events'; import type { KeyvStoreAdapter, StoredData } from 'keyv'; export interface Options { deserialize: (val: string) => any; dialect: string; /** milliseconds */ expiredCheckDelay: number; filename: string; serialize: (val: any) => string; /** milliseconds */ writeDelay: number; /** create lock file and check if exists */ checkFileLock: boolean; } export declare const defaultOpts: Options; export interface WrappedValue<T = any> { value: T; expire?: number; } export declare class KeyvFile extends EventEmitter implements KeyvStoreAdapter { ttlSupport: boolean; namespace?: string; opts: Options; private _cache; private _lastExpire; constructor(options?: Partial<Options>); private get _lockFile(); acquireFileLock(): void; releaseFileLock(): void; get<Value>(key: string): Promise<StoredData<Value> | undefined>; getMany<Value>(keys: string[]): Promise<Array<StoredData<Value | undefined>>>; set(key: string, value: any, ttl?: number): Promise<any>; delete(key: string): Promise<boolean>; deleteMany(keys: string[]): Promise<boolean>; clear(): Promise<any>; has(key: string): Promise<boolean>; private isExpired; private clearExpire; private saveToDisk; private _savePromise?; private save; disconnect(): Promise<void>; iterator(namespace?: string): AsyncGenerator<any[], void, unknown>; } export default KeyvFile; export declare class Field<T, D extends T | void = T | void> { protected kv: KeyvFile; protected key: string; protected defaults?: D | undefined; constructor(kv: KeyvFile, key: string, defaults?: D | undefined); get(): Promise<D>; get(def: D): Promise<D>; set(val: T, ttl?: number): Promise<any>; delete(): Promise<boolean>; } export declare function makeField<T = any, D = T>(kv: KeyvFile, key: string, defaults: T): Field<T, T>;