All files / piscosour/lib/utils versionUtils.js

14.29% Statements 4/28
0% Branches 0/13
0% Functions 0/4
14.29% Lines 4/28
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51  1x 1x   1x                                                                                           1x
'use strict';
const semver = require('semver');
const logger = require('../logger');
 
const util = {
  range2Version(range){
    return range.replace('^', '').replace('~', '');
  },
  getVersion(str) {
    if (str.indexOf('git+') >= 0) {
      const items = str.match(/\#(.*?)$/);
      if (items && items.length > 0 && semver.valid(items[1])) {
        return items[1];
      } else {
        return true;
      }
    } else {
      return this.range2Version(str);
    }
  },
  getMajor(rangesIn) {
    const ranges = {};
    let res = rangesIn
      .map((range) => {
        if (range) {
          const version = this.range2Version(range);
          ranges[version] = range;
          return version;
        }
      })
      .filter((version) => version !== undefined && semver.valid(version))
      .sort((a, b) => semver.gt(a, b))
      .pop();
    return ranges[res];
  },
  line2Requires(item){
    const by = ['@', '#'].filter((cut) => {
      return item.indexOf(cut) >= 0;
    }).pop();
    const array = item.split(by);
    const res = {};
    if (array.length === 2){
      res[array[0]] = array[1];
    } else {
      logger.warn('#yellow', item, '-> is not well defined!');
    }
    return res;
  }
};
 
module.exports = util;