1 const {MAX_LENGTH} = require('../internal/constants')
2 const { re, t } = require('../internal/re')
3 const SemVer = require('../classes/semver')
5 const parse = (version, options) => {
6 if (!options || typeof options !== 'object') {
9 includePrerelease: false
13 if (version instanceof SemVer) {
17 if (typeof version !== 'string') {
21 if (version.length > MAX_LENGTH) {
25 const r = options.loose ? re[t.LOOSE] : re[t.FULL]
26 if (!r.test(version)) {
31 return new SemVer(version, options)
37 module.exports = parse