summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/lib/mozilla-toolkit-versioning/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/lib/mozilla-toolkit-versioning/index.js')
-rw-r--r--addon-sdk/source/lib/mozilla-toolkit-versioning/index.js112
1 files changed, 0 insertions, 112 deletions
diff --git a/addon-sdk/source/lib/mozilla-toolkit-versioning/index.js b/addon-sdk/source/lib/mozilla-toolkit-versioning/index.js
deleted file mode 100644
index 2f607c880..000000000
--- a/addon-sdk/source/lib/mozilla-toolkit-versioning/index.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-var versionParse = require('./lib/utils').versionParse;
-
-var COMPARATORS = ['>=', '<=', '>', '<', '=', '~', '^'];
-
-exports.parse = function (input) {
- input = input || '';
- input = input.trim();
- if (!input)
- throw new Error('`parse` argument must be a populated string.');
-
- // Handle the "*" case
- if (input === "*") {
- return { min: undefined, max: undefined };
- }
-
- var inputs = input.split(' ');
- var min;
- var max;
-
- // 1.2.3 - 2.3.4
- if (inputs.length === 3 && inputs[1] === '-') {
- return { min: inputs[0], max: inputs[2] };
- }
-
- inputs.forEach(function (input) {
- var parsed = parseExpression(input);
- var version = parsed.version;
- var comparator = parsed.comparator;
-
- // 1.2.3
- if (inputs.length === 1 && !comparator)
- min = max = version;
-
- // Parse min
- if (~comparator.indexOf('>')) {
- if (~comparator.indexOf('='))
- min = version; // >=1.2.3
- else
- min = increment(version); // >1.2.3
- }
- else if (~comparator.indexOf('<')) {
- if (~comparator.indexOf('='))
- max = version; // <=1.2.3
- else
- max = decrement(version); // <1.2.3
- }
- });
-
- return {
- min: min,
- max : max
- };
-};
-
-function parseExpression (input) {
- for (var i = 0; i < COMPARATORS.length; i++)
- if (~input.indexOf(COMPARATORS[i]))
- return {
- comparator: COMPARATORS[i],
- version: input.substr(COMPARATORS[i].length)
- };
- return { version: input, comparator: '' };
-}
-
-/**
- * Takes a version string ('1.2.3') and returns a version string
- * that'll parse as one less than the input string ('1.2.3.-1').
- *
- * @param {String} vString
- * @return {String}
- */
-function decrement (vString) {
- return vString + (vString.charAt(vString.length - 1) === '.' ? '' : '.') + '-1';
-}
-exports.decrement = decrement;
-
-/**
- * Takes a version string ('1.2.3') and returns a version string
- * that'll parse as greater than the input string by the smallest margin
- * possible ('1.2.3.1').
- * listed as number-A, string-B, number-C, string-D in
- * Mozilla's Toolkit Format.
- * https://developer.mozilla.org/en-US/docs/Toolkit_version_format
- *
- * @param {String} vString
- * @return {String}
- */
-function increment (vString) {
- var match = versionParse(vString);
- var a = match[1];
- var b = match[2];
- var c = match[3];
- var d = match[4];
- var lastPos = vString.length - 1;
- var lastChar = vString.charAt(lastPos);
-
- if (!b) {
- return vString + (lastChar === '.' ? '' : '.') + '1';
- }
- if (!c) {
- return vString + '1';
- }
- if (!d) {
- return vString.substr(0, lastPos) + (++lastChar);
- }
- return vString.substr(0, lastPos) + String.fromCharCode(lastChar.charCodeAt(0) + 1);
-}
-exports.increment = increment;