Skip to content

Commit

Permalink
New attempt for PR #2821
Browse files Browse the repository at this point in the history
PR #2821 could not be completed due to different email addresses used for it's commits.
This new branch is meant to be used as a new PR to replace the failed one
  • Loading branch information
HaKr committed Feb 19, 2021
1 parent 7d04353 commit 02dd141
Showing 1 changed file with 59 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,66 @@ RED.palette.editor = (function() {
var eventTimers = {};
var activeFilter = "";

function semVerCompare(A,B) {
var aParts = A.split(".").map(function(m) { return parseInt(m);});
var bParts = B.split(".").map(function(m) { return parseInt(m);});
for (var i=0;i<3;i++) {
var j = aParts[i]-bParts[i];
if (j<0) { return -1 }
if (j>0) { return 1 }
var semverre = /^(?<major>\d+)(\.(?<minor>\d+))?(\.(?<patch>\d+))?(-(?<pre>[0-9A-Za-z-]+))?(\.(?<build>[0-9A-Za-z-.]+))?$/;
var NUMBERS_ONLY = /^\d+$/;


function SemVerPart ( part ) {
this.number = 0;
this.text = part;
if ( NUMBERS_ONLY.test( toe ) )
{
this.number = parseInt( part );
this.type = "N";
} else
{
this.type = part == undefined || part.length < 1 ? "E" : "T";
}
return 0;
}

SemVerPart.prototype.compare = function ( other ) {
const types = this.type + other.type;

switch ( types )
{
case "EE": return 0;

case "NT":
case "TE":
case "EN": return -1;

case "NN": return this.number - other.number;

case "TT": return this.text.localeCompare( other.text );

case "ET":
case "TN":
case "NE": return 1;
}
};

function SemVer ( ver ) {
const groups = ver.match( semverre ).groups;
this.parts = [ new SemVerPart( groups.major ), new SemVerPart( groups.minor ), new SemVerPart( groups.patch ), new SemVerPart( groups.pre ), new SemVerPart( groups.build ) ];
}

SemVer.prototype.compare = function ( other ) {
let result = 0;
for ( let i = 0, n = this.parts.length; result == 0 && i < n; i++ )
{
result = this.parts[ i ].compare( other.parts[ i ] );
}

return result;
};

function semVerCompare ( ver1, ver2 ) {
const semver1 = new SemVer( ver1 );
const semver2 = new SemVer( ver2 );

const result = semver1.compare( semver2 );

return result;
}

function delayCallback(start,callback) {
Expand Down

0 comments on commit 02dd141

Please sign in to comment.