const logger = require("../logger"); const { MutateCollection, CreateFolderID, ReadCollection, WriteCollection, } = require("../util"); const translateMap = new Map(); const origFolders = ReadCollection("folders.json", true); MutateCollection("folders.json", (folders) => { logger.info("Updating Folders."); for (const folder of folders) { const newFolderID = CreateFolderID( folder.data, folder.game, folder.playtype ); translateMap.set(folder.folderID, newFolderID); folder.folderID = newFolderID; } return folders; }); try { MutateCollection("tables.json", (tables) => { logger.info("Updating Tables."); for (const table of tables) { table.folders = table.folders.map((e) => { const newFolderID = translateMap.get(e); if (!newFolderID) { throw new Error( `${e} doesn't exist as a folderID? Can't autofix.` ); } return newFolderID; }); } logger.info("Done."); return tables; }); } catch (err) { logger.error( "Failed to update tables.json, reverting all auto-folder fixes.", { err } ); WriteCollection("folders.json", origFolders); }