const fs = require("fs"); const path = require("path"); const MODEL_ENUM_FILE = "./src/enums/Model.ts"; // Path to the ModalEnum file const newEnums = [ { key: "TEST_EDIT", value: "TEST.edit" }, { key: "TEST_ADD", value: "TEST.add" }, { key: "TEST_DELETE", value: "TEST.delete" }, ]; const enumName = "ModalEnum"; // Update this to match your enum name const generateEnumEntries = (enums) => enums.map(({ key, value }) => ` ${key} = "${value}",`).join("\n"); const updateModelEnumFile = () => { if (!fs.existsSync(MODEL_ENUM_FILE)) { console.error(`Error: File ${MODEL_ENUM_FILE} does not exist.`); return; } const fileContent = fs.readFileSync(MODEL_ENUM_FILE, "utf-8"); const existingEnums = new Set( Array.from(fileContent.matchAll(/(\w+)\s*=\s*"([\w.]+)"/g), (match) => match[1].toLowerCase() ) ); const uniqueEnums = newEnums.filter( ({ key }) => !existingEnums.has(key.toLowerCase()) ); if (uniqueEnums.length === 0) { console.log("No new enums to add. All enums already exist."); return; } const newEnumEntries = generateEnumEntries(uniqueEnums); const updatedContent = fileContent.replace( new RegExp(`export\\s+enum\\s+${enumName}\\s*{([\\s\\S]*?)}`), (match, existingContent) => { return `export enum ${enumName} {\n${existingContent.trim()}\n\n${newEnumEntries}\n}`; } ); fs.writeFileSync(MODEL_ENUM_FILE, updatedContent, "utf-8"); console.log("ModalEnum file updated successfully!"); }; updateModelEnumFile();