FXclient-mirror/patches/main.js

23 lines
770 B
JavaScript

import fs from 'fs'
import ModUtils from '../modUtils.js';
const modules = await Promise.all(fs.readdirSync("./patches").flatMap(fileName => {
if (fileName === "main.js") return [];
else return import("./" + fileName);
}));
const requiredVariables = new Set(modules.map(module => module.requiredVariables ?? []).flat());
export default function applyPatches(/** @type {ModUtils} */ modUtils) {
const dictionary = modUtils.dictionary;
requiredVariables.forEach(varName => {
if (!dictionary.hasOwnProperty(varName)) {
throw new Error(`"${varName}" is required by a module but not defined the dictionary`);
}
});
// apply patches (default exported function)
modules.forEach(module => module.default(modUtils))
}