Add MajorMinorVersion type and dedupe the game version regex

Address review feedback: introduce a MajorMinorVersion type with
isMajorMinorVersion, rename majorMinorVersion to normaliseMajorMinorVersion,
and type ModInfo.factorioVersion as MajorMinorVersion so already-reduced
values are not re-reduced (ModPackViewPage uses mod.info.factorioVersion
directly). Reuse the single gameVersionRegExp in both GameVersionSchema and
normaliseGameVersion instead of duplicating the pattern.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
bbassieandClaude Opus 4.8 committed 2026-06-29 22:12:36 +00:00
1 parent 97a6c32838
commit 7c2793752d
6 files changed
+47 -21

No files matched your search

+4 -4
View File
@@ -10,8 +10,8 @@ import { ModRecord } from "./ModPack";
import {
FullVersion, integerFullVersion,
integerPartialVersion,
GameVersionSchema, normaliseGameVersion, majorMinorVersion,
PartialVersion,
GameVersionSchema, normaliseGameVersion, normaliseMajorMinorVersion,
MajorMinorVersion,
ModVersionEquality,
} from "./version";
@@ -175,7 +175,7 @@ export default class ModInfo {
* Major version of Factorio this mod supports.
* Sourced from info.json.
*/
factorioVersion = "0.12" as PartialVersion;
factorioVersion = "0.12" as MajorMinorVersion;
/**
* Integer representation of the factorioVersion
@@ -297,7 +297,7 @@ export default class ModInfo {
if (factorioVersion === undefined) {
throw new Error(`Invalid factorio_version "${json.factorio_version}"`);
}
modInfo.factorioVersion = majorMinorVersion(factorioVersion);
modInfo.factorioVersion = normaliseMajorMinorVersion(factorioVersion);
}
// Parse the dependencies