Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/bs / src / scripts / shell / params / toSemVer.ts
Size: Mime:
const isString = x => typeof x === 'string'

// eslint-disable-next-line
const toSemVer = (x, target = '9+') => {
  // make array always
  if (isString(x)) {
    // replace?
    x = x.replace('v', '').split('.').map(Number)
  }

  let MAJOR = x[0]
  let PATCH = x[1]
  let MINOR = x[2]

  const VERSION = {
    0: MAJOR,
    1: PATCH,
    2: MINOR,
  }

  // array-like
  Object.defineProperty(VERSION, 'length', {
    value: 3,
  })
  Object.defineProperty(VERSION, 'MAJOR', {
    value: MAJOR,
    enumerable: true,
  })
  Object.defineProperty(VERSION, 'PATCH', {
    value: PATCH,
    enumerable: true,
  })
  Object.defineProperty(VERSION, 'MINOR', {
    value: MINOR,
    enumerable: true,
  })
  Object.defineProperty(VERSION, 'toString', {
    value: () => 'current is: ' + x.join('.') + '; target is: ' + target,
  })

  return VERSION
}

module.exports = toSemVer