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
TypeScript
/// <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 {};