1 const {MAX_LENGTH} = require('../internal/constants')
2 const { re, t } = require('../internal/re')
3 const SemVer = require('../classes/semver')
5 const parseOptions = require('../internal/parse-options')
6 const parse = (version, options) => {
7 options = parseOptions(options)
9 if (version instanceof SemVer) {
13 if (typeof version !== 'string') {
17 if (version.length > MAX_LENGTH) {
21 const r = options.loose ? re[t.LOOSE] : re[t.FULL]
22 if (!r.test(version)) {
27 return new SemVer(version, options)
33 module.exports = parse