Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
33 lines
971 B
TypeScript
33 lines
971 B
TypeScript
import { createHash } from 'node:crypto'
|
|
|
|
/**
|
|
* Der Zwischenspeicherschlüssel eines Exports.
|
|
*
|
|
* `sha256(Ziel + Stand + Stufe + Vorlagenversion)`, siehe docs/08. Die
|
|
* **Stufe gehört hinein**: zwei Abrufer verschiedener Stufen bekommen nicht
|
|
* dasselbe PDF, und ein Treffer im Zwischenspeicher darf niemandem ein
|
|
* Dokument geben, das für eine höhere Stufe gerendert wurde.
|
|
*
|
|
* Der Stand (`updatedAt`) sorgt dafür, dass eine geänderte Akte neu gerendert
|
|
* wird - ein Export darf nie einen älteren Stand zeigen, als die Akte hat.
|
|
*/
|
|
export function exportCacheKey(input: {
|
|
kind: string
|
|
targetId: string
|
|
updatedAt: Date
|
|
clearanceLevel: number
|
|
templateVersion: number | string
|
|
}): string {
|
|
return createHash('sha256')
|
|
.update(
|
|
[
|
|
input.kind,
|
|
input.targetId,
|
|
input.updatedAt.toISOString(),
|
|
String(input.clearanceLevel),
|
|
String(input.templateVersion),
|
|
].join('|'),
|
|
)
|
|
.digest('hex')
|
|
}
|