Skip to content

Commit 4792994

Browse files
authored
Merge pull request #3184 from github/koesie10/node-version
Use semver range for `@types/node`
2 parents cce0e14 + de24e25 commit 4792994

4 files changed

Lines changed: 29 additions & 7 deletions

File tree

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ updates:
77
day: "thursday" # Thursday is arbitrary
88
labels:
99
- "Update dependencies"
10+
ignore:
11+
# @types/node is related to the version of VS Code we're supporting and should
12+
# not be updated to a newer version of Node automatically. However, patch versions
13+
# are unrelated to the Node version, so we allow those.
14+
- dependency-name: "@types/node"
15+
update-types: ["version-update:semver-major", "version-update:semver-minor"]
1016
- package-ecosystem: "github-actions"
1117
directory: "/"
1218
schedule:

extensions/ql-vscode/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/ql-vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1976,7 +1976,7 @@
19761976
"@types/jest": "^29.0.2",
19771977
"@types/js-yaml": "^4.0.6",
19781978
"@types/nanoid": "^3.0.0",
1979-
"@types/node": "18.15.0",
1979+
"@types/node": "18.15.*",
19801980
"@types/node-fetch": "^2.5.2",
19811981
"@types/react": "^18.0.28",
19821982
"@types/react-dom": "^18.0.11",

extensions/ql-vscode/scripts/update-node-version.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,20 @@ async function updateNodeVersion() {
4949
"utf8",
5050
);
5151

52+
// The @types/node version needs to match the first two parts of the Node
53+
// version, e.g. if the Node version is 18.17.3, the @types/node version
54+
// should be 18.17.*. This corresponds with the documentation at
55+
// https://github.com/definitelytyped/definitelytyped#how-do-definitely-typed-package-versions-relate-to-versions-of-the-corresponding-library
56+
// "The patch version of the type declaration package is unrelated to the library patch version. This allows
57+
// Definitely Typed to safely update type declarations for the same major/minor version of a library."
58+
// 18.17.* is equivalent to >=18.17.0 <18.18.0
59+
const typesNodeVersion = versionInformation.nodeVersion
60+
.split(".")
61+
.slice(0, 2)
62+
.join(".");
63+
5264
packageJson.engines.node = `^${versionInformation.nodeVersion}`;
53-
packageJson.devDependencies["@types/node"] =
54-
`${versionInformation.nodeVersion}`;
65+
packageJson.devDependencies["@types/node"] = `${typesNodeVersion}.*`;
5566

5667
await outputFile(
5768
join(extensionDirectory, "package.json"),
@@ -61,6 +72,11 @@ async function updateNodeVersion() {
6172
console.log("Updated package.json, now running npm install");
6273

6374
execSync("npm install", { cwd: extensionDirectory, stdio: "inherit" });
75+
// Always use the latest patch version of @types/node
76+
execSync("npm upgrade @types/node", {
77+
cwd: extensionDirectory,
78+
stdio: "inherit",
79+
});
6480

6581
console.log("Node version updated successfully");
6682
}

0 commit comments

Comments
 (0)