Guard browser nc-files staging

This commit is contained in:
2026-06-13 14:56:53 +08:00
parent dbf55e8230
commit e6bf24e106
2 changed files with 95 additions and 0 deletions

View File

@@ -4790,8 +4790,35 @@
}
}
function assertVendorNcFileStaging(filename, wasmPath, expectedRoot) {
if (wasmPath !== `${expectedRoot}/${filename}`) {
throw new Error(`browser_nc_files_${filename}_staging_manifest: path drift`);
}
}
function assertVendorNcFileContextStaging(filename, wasmDir, files) {
const expectedRoot = "/work/browser-nc-files-context";
const expectedFiles = [filename, "tool.tbl", "nc_files_context.ini"];
if (wasmDir !== expectedRoot) {
throw new Error(`browser_nc_files_${filename}_context_root: path drift`);
}
if (
files.length !== expectedFiles.length ||
new Set(files).size !== files.length ||
files.join(",") !== expectedFiles.join(",")
) {
throw new Error(`browser_nc_files_${filename}_context_manifest: list drift`);
}
for (const file of files) {
if (`${wasmDir}/${file}` !== `${expectedRoot}/${file}`) {
throw new Error(`browser_nc_files_${filename}_${file}_context_staging: path drift`);
}
}
}
async function runVendorNcFile(interp, filename) {
const wasmPath = `/work/browser-nc-files/${filename}`;
assertVendorNcFileStaging(filename, wasmPath, "/work/browser-nc-files");
await writeFetchedTextFile(
interp,
`../../vendor/linuxcnc/nc_files/${filename}`,
@@ -4802,8 +4829,10 @@
async function runVendorNcFileWithToolTable(interp, filename) {
const wasmDir = "/work/browser-nc-files-context";
const files = [filename, "tool.tbl", "nc_files_context.ini"];
const wasmPath = `${wasmDir}/${filename}`;
const iniPath = `${wasmDir}/nc_files_context.ini`;
assertVendorNcFileContextStaging(filename, wasmDir, files);
await writeFetchedTextFile(
interp,
`../../vendor/linuxcnc/nc_files/${filename}`,