Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 1x 1x 1x 1x | import { readFile } from "fs-extra";
import Path from "path";
import l10n from "shared/lib/lang/l10n";
type ValidateOptions = {
buildRoot: string;
progress: (msg: string) => void;
warnings: (msg: string) => void;
};
export const validateEjectedBuild = async ({
buildRoot,
progress = (_msg) => {},
warnings = (_msg) => {},
}: ValidateOptions) => {
const vmIncludePath = Path.join(buildRoot, "include/vm.h");
const gameGlobalsPath = Path.join(buildRoot, "include/data/game_globals.i");
const vmInclude = await readFile(vmIncludePath, "utf8");
const gameGlobals = await readFile(gameGlobalsPath, "utf8");
const vmHeapSizeStr = vmInclude.match(/#define VM_HEAP_SIZE (\d+)/m)?.[1];
const maxGlobalVarsStr = gameGlobals.match(/MAX_GLOBAL_VARS = (\d+)/m)?.[1];
const vmHeapSize = parseInt(vmHeapSizeStr ?? "", 10);
const maxGlobalVars = parseInt(maxGlobalVarsStr ?? "", 10);
progress(`${l10n("COMPILING_VALIDATING_BUILD_FILES")}...`);
if (isNaN(vmHeapSize) || isNaN(maxGlobalVars)) {
warnings(
"Unable to read VM_HEAP_SIZE and MAX_GLOBAL_VARS to determine if project contains too many unique variables",
);
}
if (maxGlobalVars > vmHeapSize) {
warnings(
`Your project contains too many unique variables and will not work as expected. VM_HEAP_SIZE defines the maximum amount of variables allowed ${vmHeapSize} but your project contained ${maxGlobalVars} unique variables.`,
);
}
};
|