You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
543 B
18 lines
543 B
'use strict'; |
|
var semverRegex = require('semver-regex'); |
|
var arrayUniq = require('array-uniq'); |
|
|
|
module.exports = function (str, opts) { |
|
if (typeof str !== 'string') { |
|
throw new TypeError('Expected a string'); |
|
} |
|
|
|
opts = opts || {}; |
|
|
|
var reLoose = new RegExp('(?:' + semverRegex().source + ')|(?:v?(?:\\d+\\.\\d+)(?:\\.\\d+)?)', 'g'); |
|
var matches = str.match(opts.loose === true ? reLoose : semverRegex()) || []; |
|
|
|
return arrayUniq(matches.map(function (el) { |
|
return el.trim().replace(/^v/, '').replace(/^\d+\.\d+$/, '$&.0'); |
|
})); |
|
};
|
|
|