import { readFileSync } from "node:fs"; import { fileURLToPath } from "node:url"; import { dirname, resolve } from "node:path"; import assert from "node:assert/strict"; import { createLinuxCncIniSdk } from "../../../runtime/sdk/src/linuxcnc-ini.js"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const rootDir = resolve(__dirname, "../../.."); const wasmPath = resolve(rootDir, "runtime/ui/ini-panel/linuxcnc_ini.wasm"); const ini = await createLinuxCncIniSdk({ wasmBinary: readFileSync(wasmPath), print() {}, printErr(message) { console.error(message); }, }); ini.writeTextFile( "/work/node-smoke.ini", `[EMC] MACHINE = wasm-node-smoke [TRAJ] LINEAR_UNITS = mm COORDINATES = X Y Z A B [KINS] KINEMATICS = xyzbc-trt-kins JOINTS = 5 `, ); assert.equal( ini.getString("/work/node-smoke.ini", "EMC", "MACHINE"), "wasm-node-smoke", ); assert.equal(ini.getString("/work/node-smoke.ini", "TRAJ", "LINEAR_UNITS"), "mm"); assert.equal( ini.getString("/work/node-smoke.ini", "KINS", "KINEMATICS"), "xyzbc-trt-kins", ); assert.equal(ini.getString("/work/node-smoke.ini", "TRAJ", "MISSING"), null); assert.deepEqual(ini.getFields("/work/node-smoke.ini", { machine: { section: "EMC", tag: "MACHINE" }, joints: { section: "KINS", tag: "JOINTS" }, }), { machine: "wasm-node-smoke", joints: "5", }); console.log("ini_wasm_node_smoke=ok");