123456789101112131415161718192021222324252627282930313233 |
- const {MAX_LENGTH} = require('../internal/constants')
- const { re, t } = require('../internal/re')
- const SemVer = require('../classes/semver')
- const parseOptions = require('../internal/parse-options')
- const parse = (version, options) => {
- options = parseOptions(options)
- if (version instanceof SemVer) {
- return version
- }
- if (typeof version !== 'string') {
- return null
- }
- if (version.length > MAX_LENGTH) {
- return null
- }
- const r = options.loose ? re[t.LOOSE] : re[t.FULL]
- if (!r.test(version)) {
- return null
- }
- try {
- return new SemVer(version, options)
- } catch (er) {
- return null
- }
- }
- module.exports = parse
|