import { spawnSync } from "node:child_process";
import { mkdirSync, writeFileSync } from "node:fs";
import { dirname } from "node:path";
export const writeJsonManifest = (manifestPath, manifest, label) => {
mkdirSync(dirname(manifestPath), { recursive: true });
writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
console.log(`${label}: ${manifestPath}`);
};
export const validateWebRuntimeManifest = ({ manifestPath, requirePassed }) => {
const validationArgs = ["scripts/validate-web-runtime-presentation-manifest.mjs", manifestPath];
if (requirePassed) validationArgs.push("--require-passed");
const validation = spawnSync(process.execPath, validationArgs, { encoding: "utf8" });
if (validation.stdout) process.stdout.write(validation.stdout);
if (validation.stderr) process.stderr.write(validation.stderr);
if (validation.status !== 0) {
process.exit(validation.status ?? 1);
}
};