// lib/forms/readFormXml.js import fs from "fs"; import path from "path"; const xmlCache = new Map(); /** * Reads /data/formsxml/{appealtypes}.xml and normalises it. * Returns { xmlStr } or throws on missing file. */ export function readFormXml(appealtypes) { if (!appealtypes) throw new Error("readFormXml: appealtypes is required"); if (xmlCache.has(appealtypes)) { return xmlCache.get(appealtypes); } const configDirectory = path.resolve(process.cwd(), "data/formsxml"); const filePath = path.join(configDirectory, `${appealtypes}.xml`); let xmlStr = fs.readFileSync(filePath, "utf8"); // Keep existing normalisation behaviour xmlStr = xmlStr.replace(/\t/g, ""); xmlStr = xmlStr.replace(/\n/g, ""); xmlStr = xmlStr.replace(/> <"/g, "><"); xmlStr = xmlStr.toString(); const result = { xmlStr, filePath }; xmlCache.set(appealtypes, result); return result; }