UNPKG

mastercache

Version:

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

1 lines 3.11 kB
{"version":3,"sources":["../../../src/types/main.ts","../../../src/types/bus.ts"],"sourcesContent":["import type { CacheDriver } from './driver';\nimport type { MasterCache } from '../mastercache';\nimport type { BusDriver, BusOptions } from './bus';\n\nexport * from './bus';\nexport * from './events';\nexport * from './driver';\nexport * from './helpers';\nexport * from './provider';\nexport * from './options/options';\nexport * from './options/drivers-options';\nexport * from './options/methods-options';\n\n/**\n * Interface for a L1 cache driver. Probably a memory driver\n */\nexport interface L1CacheDriver extends CacheDriver<false> {\n type: 'l1'\n getRemainingTtl(key: string): number | undefined\n}\n\n/**\n * Interface for a L2, distributed cache driver.\n */\nexport interface L2CacheDriver extends CacheDriver<true> {\n type: 'l2'\n}\n\n/**\n * Factory result for a cache driver\n */\nexport interface CreateDriverResult<T extends L1CacheDriver | L2CacheDriver> {\n options: Record<string, any>\n factory: (config: any) => T\n}\n\n/**\n * Contract for a bus driver factory\n */\nexport interface CreateBusDriverResult {\n options: BusOptions\n factory: (config: any) => BusDriver\n}\n\n/**\n * Cache serializer contract\n */\nexport interface CacheSerializer {\n serialize: (value: any) => string\n deserialize: (value: any) => any\n}\n\n/**\n * Stack of cache drivers\n */\nexport interface CacheStackDrivers {\n l1Driver?: L1CacheDriver\n l2Driver?: L2CacheDriver\n busDriver?: BusDriver\n busOptions?: BusOptions\n}\n\n/**\n * A Mastercache Plugin\n */\nexport interface MasterCachePlugin {\n register(mastercache: MasterCache<any>): void\n}\n\n/**\n * Dialect available for the SQL driver\n */\nexport type DialectName = 'pg' | 'mysql2' | 'better-sqlite3' | 'sqlite3'\n","import type { Transport } from '@boringnode/bus/types/main';\n\nimport type { Duration } from './helpers';\n\n/**\n * Interface for the bus driver\n */\nexport type BusDriver = Transport\n\n/**\n * Message sent over the cache bus\n */\nexport type CacheBusMessage = {\n keys: string[]\n type: CacheBusMessageType\n namespace?: string\n}\n\nexport enum CacheBusMessageType {\n /**\n * An item was set in the cache\n */\n Set = 'set',\n\n /**\n * Whole cache was cleared\n */\n Clear = 'clear',\n\n /**\n * An item was deleted from the cache\n */\n Delete = 'delete',\n}\n\nexport type BusOptions = {\n /**\n * Configuration for the bus retry queue\n */\n retryQueue?: {\n /**\n * If we should retry sending messages that failed to be sent\n */\n enabled?: boolean\n\n /**\n * Maximum number of messages to keep in the retry queue. Older\n * messages will be discarded when the queue is full.\n */\n maxSize?: number\n\n /**\n * The interval between each retry attempt\n */\n retryInterval?: Duration | false\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACkBO,IAAK,sBAAL,kBAAKA,yBAAL;AAIL,EAAAA,qBAAA,SAAM;AAKN,EAAAA,qBAAA,WAAQ;AAKR,EAAAA,qBAAA,YAAS;AAdC,SAAAA;AAAA,GAAA;","names":["CacheBusMessageType"]}