Skip to content

Commit c5e2260

Browse files
committed
fix: Allow non-semver versions in getVersionInWeirdWindowsForm
Fixes #7173
1 parent f6944a3 commit c5e2260

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

packages/app-builder-lib/src/appInfo.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,21 @@ export class AppInfo {
7676
}
7777

7878
getVersionInWeirdWindowsForm(isSetBuildNumber = true): string {
79-
const parsedVersion = new SemVer(this.version)
79+
let [major, minor, patch] = this.version.split('.').map((versionPart) => parseInt(versionPart))
80+
// Allow missing version parts. Version '1.2' gets a patch version of 0
81+
major ??= 0
82+
minor ??= 0
83+
patch ??= 0
84+
// ... but reject non-integer version parts. '1.a' is not going to fly
85+
if (isNaN(major) || isNaN(minor) || isNaN(patch)) {
86+
throw new Error(`Invalid version: ${this.version}`)
87+
}
8088
// https://github.com/electron-userland/electron-builder/issues/2635#issuecomment-371792272
8189
let buildNumber = isSetBuildNumber ? this.buildNumber : null
8290
if (buildNumber == null || !/^\d+$/.test(buildNumber)) {
8391
buildNumber = "0"
8492
}
85-
return `${parsedVersion.major}.${parsedVersion.minor}.${parsedVersion.patch}.${buildNumber}`
93+
return `${major}.${minor}.${patch}.${buildNumber}`
8694
}
8795

8896
private get notNullDevMetadata() {

0 commit comments

Comments
 (0)