get-node
Advanced tools
Comparing version 14.1.0 to 14.2.0
@@ -135,2 +135,5 @@ import type { Options as FetchNodeWebsiteOptions } from 'fetch-node-website' | ||
* | ||
* // Download Node.js version from a specific file like `.nvmrc` or `package.json` | ||
* await getNode('/path/to/.nvmrc') | ||
* | ||
* // Specify the output directory | ||
@@ -151,4 +154,5 @@ * const { path } = await getNode('8', { | ||
/** | ||
* Any [version range](https://github.com/npm/node-semver) | ||
* such as `12`, `12.6.0` or `<12`, or one of the following aliases: | ||
* Can be: | ||
* - any [version range](https://github.com/npm/node-semver) such as `12`, | ||
* `12.6.0` or `<12` | ||
* - `latest`: Latest available Node version | ||
@@ -160,3 +164,3 @@ * - `lts`: Latest LTS Node version | ||
* [`package.json` (`engines.node` field)](https://docs.npmjs.com/files/package.json#engines) | ||
* - [Some additional files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
* - [Some similar files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
* used by other Node.js version managers are also searched for | ||
@@ -168,5 +172,9 @@ * - If nothing is found, defaults to the current process's Node version | ||
* [`package.json` (`engines.node` field)](https://docs.npmjs.com/files/package.json#engines) | ||
* (or | ||
* [additional files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md)) | ||
* or | ||
* [similar files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
* - Defaults to the `global` version | ||
* - a file path towards a [`.nvmrc`](https://github.com/nvm-sh/nvm#nvmrc), | ||
* [`package.json` (`engines.node` field)](https://docs.npmjs.com/files/package.json#engines) | ||
* or | ||
* [similar files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
*/ | ||
@@ -173,0 +181,0 @@ versionRange: string, |
@@ -0,5 +1,8 @@ | ||
import{basename}from"node:path"; | ||
import{version as processVersion}from"node:process"; | ||
import nodeVersionAlias from"node-version-alias"; | ||
import preferredNodeVersion from"preferred-node-version"; | ||
import preferredNodeVersion,{ | ||
NODE_VERSION_FILES}from | ||
"preferred-node-version"; | ||
import semver from"semver"; | ||
@@ -16,3 +19,3 @@ | ||
if(!ALIASES.has(versionRange)&&semver.validRange(versionRange)===null){ | ||
if(!isVersionRange(versionRange)){ | ||
throw new TypeError(`Not a valid Node version range: ${versionRange}`) | ||
@@ -22,4 +25,9 @@ } | ||
const isVersionRange=(versionRange)=> | ||
ALIASES.has(versionRange)|| | ||
isVersionFile(versionRange)|| | ||
semver.validRange(versionRange)!==null; | ||
const ALIASES=new Set(["latest","lts","global","local"]); | ||
@@ -58,5 +66,14 @@ | ||
if(isVersionFile(versionRange)){ | ||
return getPreferredVersion({...preferredNodeOpts,files:[versionRange]}) | ||
} | ||
return nodeVersionAlias(versionRange,nodeVersionAliasOpts) | ||
}; | ||
const isVersionFile=(versionRange)=> | ||
NODE_VERSION_FILES_SET.has(basename(versionRange)); | ||
const NODE_VERSION_FILES_SET=new Set(NODE_VERSION_FILES); | ||
const getPreferredVersion=async(preferredNodeOpts)=>{ | ||
@@ -63,0 +80,0 @@ const{version}=await preferredNodeVersion(preferredNodeOpts); |
{ | ||
"name": "get-node", | ||
"version": "14.1.0", | ||
"version": "14.2.0", | ||
"type": "module", | ||
@@ -64,3 +64,3 @@ "exports": { | ||
"path-key": "^4.0.0", | ||
"preferred-node-version": "^4.1.0", | ||
"preferred-node-version": "^4.2.0", | ||
"semver": "^7.5.4", | ||
@@ -67,0 +67,0 @@ "tar-fs": "^3.0.4", |
@@ -79,2 +79,7 @@ [![Node](https://img.shields.io/badge/-Node.js-808080?logo=node.js&colorA=404040&logoColor=66cc33)](https://www.npmjs.com/package/get-node) | ||
```js | ||
// Download Node.js version from a specific file like `.nvmrc` or `package.json` | ||
await getNode('/path/to/.nvmrc') | ||
``` | ||
```js | ||
// Specify the output directory | ||
@@ -123,5 +128,6 @@ const { path } = await getNode('8', { | ||
`versionRange` can be any [version range](https://github.com/npm/node-semver) | ||
such as `12`, `12.6.0` or `<12`, or one of the following aliases: | ||
`versionRange` can be: | ||
- any [version range](https://github.com/npm/node-semver) such as `12`, `12.6.0` | ||
or `<12` | ||
- `latest`: Latest available Node version | ||
@@ -132,3 +138,3 @@ - `lts`: Latest LTS Node version | ||
[`package.json` (`engines.node` field)](https://docs.npmjs.com/files/package.json#engines) | ||
- [Some additional files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
- [Some similar files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
used by other Node.js version managers are also searched for | ||
@@ -140,5 +146,9 @@ - If nothing is found, defaults to the current process's Node version | ||
[`package.json` (`engines.node` field)](https://docs.npmjs.com/files/package.json#engines) | ||
(or | ||
[additional files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md)) | ||
or | ||
[similar files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
- Defaults to the `global` version | ||
- a file path towards a [`.nvmrc`](https://github.com/nvm-sh/nvm#nvmrc), | ||
[`package.json` (`engines.node` field)](https://docs.npmjs.com/files/package.json#engines) | ||
or | ||
[similar files](https://github.com/ehmicky/preferred-node-version/blob/main/README.md) | ||
@@ -145,0 +155,0 @@ ### Options |
43924
686
291