Parent directory

audit.ts

661 bytes
 1import { appendFile, mkdir } from "node:fs/promises";
 2import { dirname } from "node:path";
 3import { POLICY_VERSION } from "./normalize";
 4import type { DecisionAudit } from "./types";
 5
 6export function createJsonlDecisionAudit(file: string): DecisionAudit {
 7  return {
 8    async record(entry): Promise<void> {
 9      try {
10        await mkdir(dirname(file), { recursive: true });
11        await appendFile(
12          file,
13          `${JSON.stringify({ recordedAt: new Date().toISOString(), ...entry, policyVersion: POLICY_VERSION })}\n`,
14        );
15      } catch {}
16    },
17  };
18}
19
20export const disabledDecisionAudit: DecisionAudit = {
21  record: async () => {},
22};