Skip to content

Commit 80381b1

Browse files
authored
fix: account for Node current releases with even majors when resolving @types/node version (#565)
* fix node types version resolver * changeset * fix * format
1 parent 324f2ea commit 80381b1

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

.changeset/dull-pens-wash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'sv': patch
3+
---
4+
5+
fix: account for Node `current` releases with even majors when resolving `@types/node` version

packages/addons/common.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,19 @@ export function addToDemoPage(content: string, path: string): string {
8585
*/
8686
export function getNodeTypesVersion(): string {
8787
const nodeVersion = process.versions.node;
88+
const isDenoOrBun = Boolean(process.versions.deno ?? process.versions.bun);
8889
const [major] = nodeVersion.split('.');
8990

90-
const isLTS = Number(major) % 2 === 0;
91+
const majorNum = Number(major);
92+
const isEvenMajor = majorNum % 2 === 0;
93+
const isLTS = !!process.release.lts || (isDenoOrBun && isEvenMajor);
9194
if (isLTS) {
9295
return `^${major}`;
9396
}
9497

95-
const previousLTSMajor = Number(major) - 1;
98+
// It's possible for an even major number to _temporarily_ not
99+
// be an `LTS` release (meaning `process.release.lts` is `undefined`) during it's `Current` stage.
100+
// In those cases, we'll decrement the major by 2.
101+
const previousLTSMajor = isEvenMajor ? majorNum - 2 : majorNum - 1;
96102
return `^${previousLTSMajor}`;
97103
}

0 commit comments

Comments
 (0)