UNPKG

@mastra/core

Version:

Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.

1 lines 4.04 kB
{"version":3,"sources":["../src/cache/base.ts","../src/cache/inmemory.ts"],"names":["MastraBase","TTLCache"],"mappings":";;;;;;;;;;AAEO,IAAe,iBAAA,GAAf,cAAyCA,4BAAA,CAAW;AAAA,EACzD,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtC,IAAA,KAAA,CAAM;AAAA,MACJ,SAAA,EAAW,cAAA;AAAA,MACX;AAAA,KACD,CAAA;AAAA,EACH;AAeF;ACpBO,IAAM,mBAAA,GAAN,cAAkC,iBAAA,CAAkB;AAAA,EACjD,KAAA,GAAmC,IAAIC,yBAAA,CAAS;AAAA,IACtD,GAAA,EAAK,GAAA;AAAA,IACL,GAAA,EAAK,MAAO,EAAA,GAAK;AAAA,GAClB,CAAA;AAAA,EAED,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAA;AAAA,EACvC;AAAA,EAEA,MAAM,IAAI,GAAA,EAA+B;AACvC,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AAAA,EAC3B;AAAA,EAEA,MAAM,GAAA,CAAI,GAAA,EAAa,KAAA,EAA+B;AACpD,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAC3B;AAAA,EAEA,MAAM,WAAW,GAAA,EAA8B;AAC7C,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AAC/B,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,gBAAA,CAAkB,CAAA;AAAA,IAC1C;AACA,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAAA,EAEA,MAAM,QAAA,CAAS,GAAA,EAAa,KAAA,EAA+B;AACzD,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AAC/B,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,MAAA,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,IACjB,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,CAAC,KAAK,CAAC,CAAA;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,UAAA,CAAW,GAAA,EAAa,IAAA,EAAc,KAAa,EAAA,EAAwB;AAC/E,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AAC/B,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AAEvB,MAAA,MAAM,QAAA,GAAW,EAAA,KAAO,EAAA,GAAK,MAAA,GAAY,EAAA,GAAK,CAAA;AAC9C,MAAA,OAAO,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,QAAQ,CAAA;AAAA,IAClC;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AAAA,EAEA,MAAM,OAAO,GAAA,EAA4B;AACvC,IAAA,IAAA,CAAK,KAAA,CAAM,OAAO,GAAG,CAAA;AAAA,EACvB;AAAA,EAEA,MAAM,KAAA,GAAuB;AAC3B,IAAA,IAAA,CAAK,MAAM,KAAA,EAAM;AAAA,EACnB;AACF","file":"chunk-B7V6NYWH.cjs","sourcesContent":["import { MastraBase } from '../base';\n\nexport abstract class MastraServerCache extends MastraBase {\n constructor({ name }: { name: string }) {\n super({\n component: 'SERVER_CACHE',\n name,\n });\n }\n\n abstract get(key: string): Promise<unknown>;\n\n abstract listLength(key: string): Promise<number>;\n\n abstract set(key: string, value: unknown): Promise<void>;\n\n abstract listPush(key: string, value: unknown): Promise<void>;\n\n abstract listFromTo(key: string, from: number, to?: number): Promise<unknown[]>;\n\n abstract delete(key: string): Promise<void>;\n\n abstract clear(): Promise<void>;\n}\n","import TTLCache from '@isaacs/ttlcache';\nimport { MastraServerCache } from './base';\n\nexport class InMemoryServerCache extends MastraServerCache {\n private cache: TTLCache<string, unknown> = new TTLCache({\n max: 1000,\n ttl: 1000 * 60 * 5,\n });\n\n constructor() {\n super({ name: 'InMemoryServerCache' });\n }\n\n async get(key: string): Promise<unknown> {\n return this.cache.get(key);\n }\n\n async set(key: string, value: unknown): Promise<void> {\n this.cache.set(key, value);\n }\n\n async listLength(key: string): Promise<number> {\n const list = this.cache.get(key) as unknown[];\n if (!Array.isArray(list)) {\n throw new Error(`${key} is not an array`);\n }\n return list.length;\n }\n\n async listPush(key: string, value: unknown): Promise<void> {\n const list = this.cache.get(key) as unknown[];\n if (Array.isArray(list)) {\n list.push(value);\n } else {\n this.cache.set(key, [value]);\n }\n }\n\n async listFromTo(key: string, from: number, to: number = -1): Promise<unknown[]> {\n const list = this.cache.get(key) as unknown[];\n if (Array.isArray(list)) {\n // Make 'to' inclusive like Redis LRANGE - add 1 unless it's -1\n const endIndex = to === -1 ? undefined : to + 1;\n return list.slice(from, endIndex);\n }\n return [];\n }\n\n async delete(key: string): Promise<void> {\n this.cache.delete(key);\n }\n\n async clear(): Promise<void> {\n this.cache.clear();\n }\n}\n"]}