How to use the minVersion function from semver

Find comprehensive JavaScript semver.minVersion code examples handpicked from public code repositorys.

semver.minVersion returns the lowest version that satisfies the given semver range.

80
81
82
83
84
85
86
87
88
89
  return latest;
}

async function main() {
  const nodeVersionComparator = `${
    semver.minVersion(require('../package.json').engines.node).major
  }.x`;

  const latestElectronVersion =
    await getLatestElectronVersionMatchingNodeVersion(nodeVersionComparator);
fork icon125
star icon776
watch icon35

116
117
118
119
120
121
122
123
124
125
}

// validate sdk v3 apps have compatibility of at least >=5.0.0
if (appJson.sdk === 3) {
  // lowest version that satisfies the compatibility
  const minVersion = semver.minVersion(appJson.compatibility);

  // lowest version must be greater than or equal to 5.0.0 for sdk v3 apps
  if (!semver.gt(minVersion, '4.2.0')) {
    throw new Error(`Invalid compatibility (${appJson.compatibility}), SDK version 3 apps must have a compatibility of at least >=5.0.0`);
fork icon22
star icon12
watch icon0

+ 3 other calls in file

How does semver.minVersion work?

semver.minVersion is a function in the semver package that accepts a string argument and returns the minimum version that satisfies the given range or version string. It first parses the given string into a Range object or a SemVer object using the semver.coerce() function, and then returns the minimum version that satisfies the range or the exact version if it is a SemVer object. If no minimum version is found, it returns null.

544
545
546
547
548
549
550
551
552
553
554
555
};


const isNodeVersionSupported = (installedNodeVersion) => {
    // SUPPORTED_NODEJS_VERSION can be a version range,
    // we need to get the minimum supported version from that range to be able to compare them
    const minimumSupportedNodeVersion = semver.minVersion(SUPPORTED_NODEJS_VERSION);
    return semver.gte(installedNodeVersion, minimumSupportedNodeVersion);
};


const detectNpmVersion = () => {
fork icon13
star icon88
watch icon8

+ 4 other calls in file

205
206
207
208
209
210
211
212
213
214
  }
}

let minVer
try {
  minVer = semver.minVersion(version, { includePrerelease: true, loose: true })
  if (minVer.raw !== version && minVer.raw === '0.0.0') {
    minVer = undefined
  }
} catch (_error) {}
fork icon0
star icon2
watch icon43

Ai Example

1
2
3
4
5
6
const semver = require("semver");

const versionRange = ">=1.0.0 <2.0.0";
const minVersion = semver.minVersion(versionRange);

console.log(minVersion); // output: '1.0.0'

In this example, the semver.minVersion function is used to determine the minimum version in a version range. The versionRange variable is a string that represents a range of versions, and the semver.minVersion function is used to determine the minimum version that satisfies this range. The result is stored in the minVersion variable, which is then logged to the console. In this case, the minimum version that satisfies the range is 1.0.0.

47
48
49
50
51
52
53
54
55
56
            'web.immediate',
            // Always define Symbol.observable before libraries are loaded, ensuring interopability between different libraries.
            'esnext.symbol.observable',
          ],
          // See https://github.com/zloirock/core-js#babelpreset-env
          corejs: semver.minVersion(require('./package.json').dependencies['core-js']),
        },
      ],
    ]),
'@babel/preset-typescript',
fork icon930
star icon0
watch icon0

36
37
38
39
40
41
42
43
44
45
console.info('- Generating project...');
execSync(`npx -p @angular/cli@${cliTag} ${ngNewCmd}`, { cwd: tmpDir });
await copy(`${tmpDir}/${projectName}`, `${projectPath}`, { overwrite: true });

const pack = JSON.parse(readFileSync(`${projectPath}/package.json`, 'utf8').toString());
const angularVersion = semver.minVersion(pack.dependencies['@angular/core']);
const angularCLIVersion = semver.minVersion(pack.devDependencies['@angular/cli']);
console.info(`- Versions: @angular/core: ${angularVersion}, @angular/cli: ${angularCLIVersion}`);

await copy('src/app', `${projectPath}/src/app`, { overwrite: true });
fork icon24
star icon38
watch icon4

315
316
317
318
319
320
321
322
323
324
const conflicts = [];
const misses = {};

this.iteratorObject(target, source, (depKey, depTarget, depSource) => {
  this.iteratorObject(depTarget, depSource, (key, targetVersion, sourceVersion, flag) => {
    if (!semver.eq(semver.minVersion(targetVersion), semver.minVersion(sourceVersion))) {
      conflicts.push([
        chalk.magentaBright(depKey),
        chalk.greenBright(key),
        targetVersion,
fork icon0
star icon2
watch icon2

108
109
110
111
112
113
114
115
116
117

let versionHash = nanoid.customAlphabet(alphabet, 10)();

// Hash appended to base version to create unique version for every build.

let version = semver.minVersion(`${baseVersion}-${versionHash}`).version;

let newPackage = {
  name: PACKAGE_NAME,
  version,
fork icon0
star icon0
watch icon0

+ 3 other calls in file

21
22
23
24
25
26
27
28
29
    manifest.version = semver.inc(version, 'minor');
  } else {
    manifest.version = semver.inc(version, 'major');
  }
} else {
  manifest.version = semver.minVersion('').version;
}

await fs.writeJSON(manifestFilePath, manifest, { spaces: 2 });
fork icon0
star icon0
watch icon0