feat: cache post content

This commit is contained in:
codytseng
2025-03-09 15:28:12 +08:00
parent 6c2d3e1a64
commit b04e628e00
4 changed files with 67 additions and 4 deletions

View File

@@ -0,0 +1,32 @@
import { Event } from 'nostr-tools'
class PostContentCacheService {
static instance: PostContentCacheService
private cache: Map<string, string> = new Map()
constructor() {
if (!PostContentCacheService.instance) {
PostContentCacheService.instance = this
}
return PostContentCacheService.instance
}
get({ defaultContent, parentEvent }: { defaultContent?: string; parentEvent?: Event } = {}) {
return this.cache.get(this.generateCacheKey(defaultContent, parentEvent)) ?? defaultContent
}
set(
{ defaultContent, parentEvent }: { defaultContent?: string; parentEvent?: Event },
content: string
) {
this.cache.set(this.generateCacheKey(defaultContent, parentEvent), content)
}
generateCacheKey(defaultContent: string = '', parentEvent?: Event): string {
return parentEvent ? parentEvent.id : defaultContent
}
}
const instance = new PostContentCacheService()
export default instance