Skip to content

Commit b53b158

Browse files
committed
[Fix] reject invalid semver ranges
Fixes #2
1 parent 32ee92c commit b53b158

File tree

17 files changed

+43
-5
lines changed

17 files changed

+43
-5
lines changed

.github/workflows/node.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ jobs:
1111
with:
1212
range: '^20 || >= 22'
1313
type: minors
14-
command: npm run tests-only
14+
command: npm run tests-only

nvmrc.mjs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,21 @@ const optionsEntries = rawOptions.map((x) => ((/[=]/).test(x)
6565

6666
const map = new Map(optionsEntries);
6767

68-
if (map.size !== optionsEntries.length || !map.has('node') || rawOptions.filter((x) => !x.includes('=')).length !== 1) {
68+
if (
69+
map.size !== optionsEntries.length
70+
|| !map.has('node')
71+
|| rawOptions.filter((x) => !x.includes('=')).length !== 1
72+
|| (/^\s*[~^><=]/).test(map.get('node').trim())
73+
) {
6974
console.error(`
7075
invalid .nvmrc!
7176
all non-commented content (anything after # is a comment) must be either:
7277
- a single bare nvm-recognized version-ish
7378
- or, multiple distinct key-value pairs, each key/value separated by a single equals sign (=)
7479
7580
additionally, a single bare nvm-recognized version-ish must be present (after stripping comments).
81+
82+
Note that nvm does not understand semver ranges.
7683
`);
7784

7885
console.warn(`

test/fixtures/invalid/caret/.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
^22.18
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[
2+
"^22.18"
3+
]

test/fixtures/invalid/eq/.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
=22.18.0
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[
2+
"=22.18.0"
3+
]

test/fixtures/invalid/gt/.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
> 22.18
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[
2+
"> 22.18"
3+
]

test/fixtures/invalid/gte/.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
>= 22.18
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[
2+
">= 22.18"
3+
]

0 commit comments

Comments
 (0)