Some checks failed
Admin | Playwright Tests / Admin | Playwright Tests | Shard 1 Of 6 (push) Failing after 37s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 2 Of 6 (push) Failing after 7s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 4 Of 6 (push) Failing after 7s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 6 Of 6 (push) Failing after 6s
Linting Tests / PHP 8.3 test on ubuntu-latest (push) Failing after 5s
CI / PHP 8.3 test on ubuntu-latest (push) Failing after 6s
Skills Consistency / validate-skills (push) Successful in 10s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 3 Of 6 (push) Failing after 7s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 5 Of 6 (push) Failing after 6s
50 lines
1023 B
TypeScript
50 lines
1023 B
TypeScript
import fs from "fs";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
const dataFile = path.resolve(
|
|
__dirname,
|
|
"../test-data/runtime.json"
|
|
);
|
|
|
|
function readJson(): Record<string, any> {
|
|
if (!fs.existsSync(dataFile)) {
|
|
return {};
|
|
}
|
|
|
|
try {
|
|
return JSON.parse(fs.readFileSync(dataFile, "utf-8"));
|
|
} catch {
|
|
// Corrupt or partial write protection
|
|
return {};
|
|
}
|
|
}
|
|
|
|
function writeJson(data: Record<string, any>) {
|
|
const dir = path.dirname(dataFile);
|
|
|
|
if (!fs.existsSync(dir)) {
|
|
fs.mkdirSync(dir, { recursive: true });
|
|
}
|
|
|
|
fs.writeFileSync(dataFile, JSON.stringify(data, null, 2));
|
|
}
|
|
|
|
export function saveData(key: string, value: unknown): void {
|
|
const data = readJson();
|
|
data[key] = value;
|
|
writeJson(data);
|
|
}
|
|
|
|
export function getData<T>(key: string): T {
|
|
const data = readJson();
|
|
|
|
if (!(key in data)) {
|
|
throw new Error(`❌ Runtime data key not found: "${key}"`);
|
|
}
|
|
|
|
return data[key] as T;
|
|
}
|