UNPKG

cache-manager-fs-binary-ts

Version:

File system store for node-cache-manager with binary data as files

50 lines (49 loc) 1.97 kB
/// <reference types="node" /> import type { Config, Store } from 'cache-manager'; declare type WithRequired<T, K extends keyof T> = Required<Pick<T, K>> & Exclude<T, K>; declare type KeyExpiredTuple = [string, number]; declare type BufferString = Buffer | string; export declare type FsBinaryValuePlain<T extends BufferString = BufferString> = { binary: T; }; export declare type FsBinaryValueObject<T extends BufferString = BufferString> = { binary: Record<string, T>; }; export declare type FsBinaryValue<T extends BufferString = BufferString, V extends FsBinaryValuePlain<T> | FsBinaryValueObject<T> = FsBinaryValuePlain<T> | FsBinaryValueObject<T>, M extends { [K: string]: any; } = { [K: string]: any; }> = V & M; export declare type FsBinaryMetaData = { key: string; size: number; filename: string; expires: number; }; export declare type FsBinaryMetaDataWithValue = FsBinaryMetaData & { value: FsBinaryValue<string>; }; export declare type FsBinaryConfig = { maxsize?: number; path?: string; preventfill?: boolean; zip?: boolean; fillcallback?: (err?: any) => void; } & Config; export interface FsBinaryStore extends Store { get: <T = FsBinaryValue<string>>(key: string) => Promise<T | undefined>; set: <T = FsBinaryValue>(key: string, data: T, ttl?: number) => Promise<void>; collection: Record<string, FsBinaryMetaData>; currentsize: number; options: WithRequired<FsBinaryConfig, 'ttl' | 'path' | 'isCacheable'>; isCacheableValue: (value: unknown) => boolean; cleancache: () => Promise<void>; zipIfNeeded: (data: Buffer) => Promise<Buffer>; unzipIfNeeded: (data: Buffer) => Promise<Buffer>; cleanExpired: () => Promise<void>; freeupspace: () => Promise<void>; freeupspacehelper: (tuples: KeyExpiredTuple[]) => Promise<void>; intializefill: () => Promise<void>; } export declare function fsBinaryStore(args?: FsBinaryConfig): FsBinaryStore; export {};