GraziePrego's picture
Upload folder using huggingface_hub
b152fd5 verified
import { randomUUID, randomBytes } from "node:crypto";
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
import path from "node:path";
import type { TelemetryState } from "./types.js";
export function loadOrCreateState(stateDir: string, version: string): TelemetryState {
const filePath = path.join(stateDir, "state.json");
if (existsSync(filePath)) {
try {
const raw = readFileSync(filePath, "utf-8");
const parsed = JSON.parse(raw) as TelemetryState;
if (parsed.installId && parsed.salt) {
return parsed;
}
} catch {
// Corrupted state file — recreate
}
}
const state: TelemetryState = {
installId: randomUUID(),
salt: randomBytes(32).toString("hex"),
createdAt: new Date().toISOString(),
firstSeenVersion: version,
};
mkdirSync(stateDir, { recursive: true });
writeFileSync(filePath, JSON.stringify(state, null, 2) + "\n", "utf-8");
return state;
}