Files
pedwfrontend/lib/forms/readFormXml.js

34 lines
934 B
JavaScript

// 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;
}