[extensions-web/bugfix/v40-frontend-versionscheme: 2/2] js: extensionUtils: added support for GNOME 40+ version scheme.
- From: Yuri Konotopov <ykonotopov src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web/bugfix/v40-frontend-versionscheme: 2/2] js: extensionUtils: added support for GNOME 40+ version scheme.
- Date: Sat, 27 Feb 2021 07:58:13 +0000 (UTC)
commit 1fef0e79638e8f2f7bf038fec129712c7fef80f0
Author: Yuri Konotopov <ykonotopov gnome org>
Date: Sat Feb 27 11:57:56 2021 +0400
js: extensionUtils: added support for GNOME 40+ version scheme.
Fixes: https://gitlab.gnome.org/Infrastructure/extensions-web/-/issues/129
sweettooth/static/js/extensionUtils.js | 66 +++++++++++++++-------------------
1 file changed, 28 insertions(+), 38 deletions(-)
---
diff --git a/sweettooth/static/js/extensionUtils.js b/sweettooth/static/js/extensionUtils.js
index c20b4bfc..4ded0a71 100644
--- a/sweettooth/static/js/extensionUtils.js
+++ b/sweettooth/static/js/extensionUtils.js
@@ -37,8 +37,18 @@ define([], function () {
PER_USER: 2
};
+ let prerelease_versions = {
+ 'alpha': -3,
+ 'beta': -2,
+ 'rc': -1,
+ };
+
function versionCompare(a, b) {
function toInt(value) {
+ if(value in Object.keys(prerelease_versions)) {
+ return prerelease_versions[value];
+ }
+
return parseInt(value);
}
@@ -92,58 +102,38 @@ define([], function () {
}
}
-
if (!map || !current)
{
return null;
}
- // Only care about the first three parts -- look up
- // "3.2.2" when given "3.2.2.1"
-
var parts = current.split('.');
-
- var versionA = map[(parts[0] + '.' + parts[1] + '.' + parts[2])];
-
- // Unstable releases
- if (parseInt(parts[1]) % 2 != 0)
- {
- if (versionA !== undefined)
- {
- return versionA;
- }
- else if(findBestVersion)
- {
- return map[getBestShellVersion()];
- }
- else
- {
- return null;
- }
- }
-
- var versionB = map[(parts[0] + '.' + parts[1])];
-
- if (versionA !== undefined && versionB !== undefined)
+ // Don't use destruction assigment for now
+ // We need new Vue frontend with babel....
+ let major = parts[0];
+ let minor = parts[1];
+ let point = parts[2];
+
+ let mappedVersion = null;
+ if (major >= 40 || (major < 40 && minor % 2))
{
- return (versionA.version > versionB.version) ? versionA : versionB;
+ mappedVersion = map[`${major}.${minor}`]
}
- else if (versionA !== undefined)
+ else
{
- return versionA;
+ mappedVersion = map[`${major}.${minor}.${point}`]
}
- else if (versionB !== undefined)
- {
- return versionB;
+
+ if(mappedVersion) {
+ return mappedVersion;
}
- else if(findBestVersion)
+
+ if(findBestVersion)
{
return map[getBestShellVersion()];
}
- else
- {
- return null;
- }
+
+ return null;
};
exports.findNextHighestVersion = function (map, current) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]