Skip to content

Commit 8bf2c9b

Browse files
committed
fix: support node20
1 parent 4202513 commit 8bf2c9b

File tree

7 files changed

+39
-9
lines changed

7 files changed

+39
-9
lines changed

.github/workflows/run-tests.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
- macos-latest
2222
node:
2323
- 22.12.0
24+
- 20
2425
- 22
2526
- 23
2627
- 24
@@ -34,19 +35,34 @@ jobs:
3435
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
3536
with:
3637
cache: npm
37-
node-version: ${{ matrix.node }}
38+
node-version: 22
3839

3940
- name: Install dependencies
4041
shell: bash
4142
run: npm ci
4243

44+
- name: Build
45+
run: npm run build
46+
47+
- name: Set up Node.js
48+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
49+
with:
50+
cache: npm
51+
node-version: ${{ matrix.node }}
52+
4353
- name: Disable AppArmor
4454
if: ${{ matrix.os == 'ubuntu-latest' }}
4555
shell: bash
4656
run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns
4757

58+
- name: Run tests (node20)
59+
if: ${{ matrix.node == '20' }}
60+
shell: bash
61+
run: npm run test:node20
62+
4863
- name: Run tests
4964
shell: bash
65+
if: ${{ matrix.node != '20' }}
5066
run: npm run test
5167

5268
# Gating job for branch protection.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ MCP clients.
2727

2828
## Requirements
2929

30-
- [Node.js 22.12.0](https://nodejs.org/) or newer.
30+
- [Node.js 20](https://nodejs.org/) or newer.
3131
- [Chrome](https://www.google.com/chrome/) current stable version or newer.
3232
- [npm](https://www.npmjs.com/).
3333

package-lock.json

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

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"docs:generate": "node --experimental-strip-types scripts/generate-docs.ts",
1515
"start": "npm run build && node build/src/index.js",
1616
"start-debug": "DEBUG=mcp:* DEBUG_COLORS=false npm run build && node build/src/index.js",
17+
"test:node20": "node --require ./build/tests/setup.js --test-reporter spec --test-force-exit --test 'build/tests'",
1718
"test": "npm run build && node --require ./build/tests/setup.js --no-warnings=ExperimentalWarning --test-reporter spec --test-force-exit --test \"build/tests/**/*.test.js\"",
1819
"test:only": "npm run build && node --require ./build/tests/setup.js --no-warnings=ExperimentalWarning --test-reporter spec --test-force-exit --test --test-only \"build/tests/**/*.test.js\"",
1920
"test:only:no-build": "node --require ./build/tests/setup.js --no-warnings=ExperimentalWarning --test-reporter spec --test-force-exit --test --test-only \"build/tests/**/*.test.js\"",
@@ -37,6 +38,7 @@
3738
"mcpName": "io.github.ChromeDevTools/chrome-devtools-mcp",
3839
"dependencies": {
3940
"@modelcontextprotocol/sdk": "1.18.1",
41+
"core-js": "^3.45.1",
4042
"debug": "4.4.3",
4143
"puppeteer-core": "24.22.3",
4244
"yargs": "18.0.0"
@@ -53,14 +55,14 @@
5355
"@typescript-eslint/parser": "^8.43.0",
5456
"chrome-devtools-frontend": "1.0.1520535",
5557
"eslint": "^9.35.0",
56-
"eslint-plugin-import": "^2.32.0",
5758
"eslint-import-resolver-typescript": "^4.4.4",
59+
"eslint-plugin-import": "^2.32.0",
5860
"globals": "^16.4.0",
5961
"prettier": "^3.6.2",
6062
"puppeteer": "24.22.3",
6163
"sinon": "^21.0.0",
62-
"typescript-eslint": "^8.43.0",
63-
"typescript": "^5.9.2"
64+
"typescript": "^5.9.2",
65+
"typescript-eslint": "^8.43.0"
6466
},
6567
"engines": {
6668
"node": ">=22.12.0"

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
import {version} from 'node:process';
1010

11-
const [major, minor] = version.substring(1).split('.').map(Number);
11+
const [major] = version.substring(1).split('.').map(Number);
1212

13-
if (major < 22 || (major === 22 && minor < 12)) {
13+
if (major < 20) {
1414
console.error(
15-
`ERROR: \`chrome-devtools-mcp\` does not support Node ${process.version}. Please upgrade to Node 22.12.0 or newer.`,
15+
`ERROR: \`chrome-devtools-mcp\` does not support Node ${process.version}. Please upgrade to Node 20 or newer.`,
1616
);
1717
process.exit(1);
1818
}

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66

7+
import 'core-js/modules/es.promise.with-resolvers';
78
import assert from 'node:assert';
89
import fs from 'node:fs';
910
import path from 'node:path';

tests/utils.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Copyright 2025 Google LLC
44
* SPDX-License-Identifier: Apache-2.0
55
*/
6-
76
import logger from 'debug';
87
import type {Browser} from 'puppeteer';
98
import puppeteer from 'puppeteer';

0 commit comments

Comments
 (0)