UNPKG

mastercache

Version:

Multi-tier cache module for Node.js. Redis, Upstash, CloudfareKV, File, in-memory and others drivers

74 lines (64 loc) 1.63 kB
import type { CacheDriver } from './driver'; import type { MasterCache } from '../mastercache'; import type { BusDriver, BusOptions } from './bus'; export * from './bus'; export * from './events'; export * from './driver'; export * from './helpers'; export * from './provider'; export * from './options/options'; export * from './options/drivers-options'; export * from './options/methods-options'; /** * Interface for a L1 cache driver. Probably a memory driver */ export interface L1CacheDriver extends CacheDriver<false> { type: 'l1' getRemainingTtl(key: string): number | undefined } /** * Interface for a L2, distributed cache driver. */ export interface L2CacheDriver extends CacheDriver<true> { type: 'l2' } /** * Factory result for a cache driver */ export interface CreateDriverResult<T extends L1CacheDriver | L2CacheDriver> { options: Record<string, any> factory: (config: any) => T } /** * Contract for a bus driver factory */ export interface CreateBusDriverResult { options: BusOptions factory: (config: any) => BusDriver } /** * Cache serializer contract */ export interface CacheSerializer { serialize: (value: any) => string deserialize: (value: any) => any } /** * Stack of cache drivers */ export interface CacheStackDrivers { l1Driver?: L1CacheDriver l2Driver?: L2CacheDriver busDriver?: BusDriver busOptions?: BusOptions } /** * A Mastercache Plugin */ export interface MasterCachePlugin { register(mastercache: MasterCache<any>): void } /** * Dialect available for the SQL driver */ export type DialectName = 'pg' | 'mysql2' | 'better-sqlite3' | 'sqlite3'