21 lines
544 B
TypeScript
21 lines
544 B
TypeScript
import './server-only.ts'
|
|
|
|
import type { RenderableTreeNode } from '@markdoc/markdoc'
|
|
import KeyV from 'keyv'
|
|
import { createHash } from 'node:crypto'
|
|
import { storage } from './keyv-cache.server.ts'
|
|
|
|
const markdocVersion = '1'
|
|
|
|
export const markdocCache = new KeyV<RenderableTreeNode>({
|
|
store: storage,
|
|
namespace: `markdoc-cache-${markdocVersion}`,
|
|
ttl: 1000 * 60 * 60 * 24 * 7,
|
|
})
|
|
export const generateCacheKey = (content: string) => {
|
|
return createHash('sha256')
|
|
.update(content)
|
|
.update(markdocVersion)
|
|
.digest('hex')
|
|
}
|