Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including node-version-resolver with all npm packages installed. Try it out:

var nodeVersionResolver = require("node-version-resolver")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

node-version-resolver v0.2.7

Give me a semver range and I'll tell you the latest node version that satisfies it.

node-version-resolver

Give me a semver range and I'll tell you the latest node version that satisfies it.

node-version-resolver is a node module that can be use programatically or from the command line. It downloads a list of all Node.js versions from nodejs.org/dist and exposes a simple API for selecting the latest stable (and unstable) versions, as well as matching the version list against a semver range.

node-version-resolver's functionality is also available as an HTTP webservice at semver.io.

Note: 0.8.6 is the oldest available version of node returned by this library. This choice was made because nodejs.org does not provide builds of older versions.

Installation

npm install node-version-resolver --save

Command-Line Usage

Pass a semver range argument to find what version of Node.js currently satisfies it:

node-version-resolver 0.10.x
# 0.10.22

Or omit the argument to get the latest stable version:

node-version-resolver
# 0.10.22

Programmatic Usage

See test/indexText.coffee

Caching

node-version-resolver is designed to work even if nodejs.org is down or slow to respond. If the GET request to nodejs.org/dist/ takes too long to resolve, a local copy of cache/node.html file will be loaded instead. To update the cached file, run:

npm run updateCache

Tests

npm test

initialization
  ✓ has an array of all versions
  ✓ has an array of stable versions
  ✓ has a latest_stable version
  ✓ has a latest_unstable version
  ✓ defaults to latest stable version when given crazy input
satisfy()
  ✓ honors explicit version strings
  ✓ matches common patterns to stable version
  ✓ uses latest unstable version when request version is beyond stable version
override
  ✓ becomes latest_stable
  ✓ satisfies stable-seeking ranges
  ✓ still resolves unstable ranges
  ✓ still resolves versions at a higher patchlevel than the override

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free