UNPKG

mastercache

Version:

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

1 lines 2.18 kB
{"version":3,"sources":["../../src/masterstore.ts"],"sourcesContent":["import type {\n CreateBusDriverResult,\n CreateDriverResult,\n L1CacheDriver,\n L2CacheDriver,\n RawCommonOptions,\n} from './types/main';\n\n\nexport class MasterStore {\n #baseOptions: RawCommonOptions & { prefix?: string } = {};\n #l1?: CreateDriverResult<L1CacheDriver>;\n #l2?: CreateDriverResult<L2CacheDriver>;\n #bus?: CreateBusDriverResult;\n\n constructor(baseOptions: RawCommonOptions & { prefix?: string } = {}) {\n this.#baseOptions = baseOptions;\n }\n\n /**\n * Add a L1 layer to your store. This is usually a memory driver\n * for fast access purposes.\n */\n useL1Layer(driver: CreateDriverResult<L1CacheDriver>) {\n this.#l1 = driver;\n return this;\n }\n\n /**\n * Add a L2 layer to your store. This is usually something\n * distributed like Redis, DynamoDB, Sql database, etc.\n */\n useL2Layer(driver: CreateDriverResult<L2CacheDriver>) {\n this.#l2 = driver;\n return this;\n }\n\n /**\n * Add a bus to your store. It will be used to synchronize L1 layers between\n * different instances of your application.\n */\n useBus(bus: CreateBusDriverResult) {\n this.#bus = bus;\n return this;\n }\n\n get entry() {\n return {\n options: this.#baseOptions,\n l1: this.#l1,\n l2: this.#l2,\n bus: this.#bus,\n };\n }\n}\n\n/**\n * Create a new store\n */\nexport function masterstore(options?: RawCommonOptions & { prefix?: string }) {\n return new MasterStore(options);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAM,cAAN,MAAkB;AAAA,EACvB,eAAuD,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,cAAsD,CAAC,GAAG;AACpE,SAAK,eAAe;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,QAA2C;AACpD,SAAK,MAAM;AACX,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,QAA2C;AACpD,SAAK,MAAM;AACX,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,KAA4B;AACjC,SAAK,OAAO;AACZ,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,IAAI,KAAK;AAAA,MACT,IAAI,KAAK;AAAA,MACT,KAAK,KAAK;AAAA,IACZ;AAAA,EACF;AACF;AAKO,SAAS,YAAY,SAAkD;AAC5E,SAAO,IAAI,YAAY,OAAO;AAChC;","names":[]}