diff options
-rwxr-xr-x | packages/bun-debug-adapter-protocol/bun.lockb | bin | 1273 -> 2323 bytes | |||
-rw-r--r-- | packages/bun-debug-adapter-protocol/debugger/adapter.ts | 23 | ||||
-rw-r--r-- | packages/bun-debug-adapter-protocol/package.json | 3 | ||||
-rw-r--r-- | packages/bun-vscode/example/example.js | 3 | ||||
-rw-r--r-- | packages/bun-vscode/example/hello.js | 1 |
5 files changed, 22 insertions, 8 deletions
diff --git a/packages/bun-debug-adapter-protocol/bun.lockb b/packages/bun-debug-adapter-protocol/bun.lockb Binary files differindex 0d0ceb95f..72c6389ec 100755 --- a/packages/bun-debug-adapter-protocol/bun.lockb +++ b/packages/bun-debug-adapter-protocol/bun.lockb diff --git a/packages/bun-debug-adapter-protocol/debugger/adapter.ts b/packages/bun-debug-adapter-protocol/debugger/adapter.ts index c86fb2d85..1dfdcf7bb 100644 --- a/packages/bun-debug-adapter-protocol/debugger/adapter.ts +++ b/packages/bun-debug-adapter-protocol/debugger/adapter.ts @@ -5,6 +5,7 @@ import type { ChildProcess } from "node:child_process"; import { spawn, spawnSync } from "node:child_process"; import capabilities from "./capabilities"; import { SourceMap } from "./sourcemap"; +import { compare, parse } from "semver"; type LaunchRequest = DAP.LaunchRequest & { runtime?: string; @@ -337,6 +338,21 @@ export class DebugAdapter implements IDebugAdapter, InspectorListener { return; } + if (subprocess.exitCode === null && !subprocess.kill() && !subprocess.kill("SIGKILL")) { + this.#emit("output", { + category: "debug console", + output: `Failed to kill process ${subprocess.pid}\n`, + }); + } + + const { stdout: version } = spawnSync(runtime, ["--version"], { stdio: "pipe", encoding: "utf-8" }); + + if (parse(version, true) && compare("0.8.0", version, true)) { + throw new Error( + `Bun v${version.trim()} does not have debugger support. Please upgrade to v0.8 or later by running: \`bun upgrade\``, + ); + } + for (const message of stderr) { this.#emit("output", { category: "stderr", @@ -357,13 +373,6 @@ export class DebugAdapter implements IDebugAdapter, InspectorListener { }); } - if (subprocess.exitCode === null && !subprocess.kill() && !subprocess.kill("SIGKILL")) { - this.#emit("output", { - category: "debug console", - output: `Failed to kill process ${subprocess.pid}\n`, - }); - } - throw new Error("Program started, but the debugger could not be attached."); } diff --git a/packages/bun-debug-adapter-protocol/package.json b/packages/bun-debug-adapter-protocol/package.json index 0ebfa6e20..2fdec5657 100644 --- a/packages/bun-debug-adapter-protocol/package.json +++ b/packages/bun-debug-adapter-protocol/package.json @@ -2,5 +2,8 @@ "name": "bun-debug-adapter-protocol", "devDependencies": { "source-map-js": "^1.0.2" + }, + "dependencies": { + "semver": "^7.5.4" } } diff --git a/packages/bun-vscode/example/example.js b/packages/bun-vscode/example/example.js index ae31ffb76..31831824b 100644 --- a/packages/bun-vscode/example/example.js +++ b/packages/bun-vscode/example/example.js @@ -1,4 +1,5 @@ -const express = require("express"); +// @bun +const express = import.meta.require("express"); const app = express(); import { readFile } from "node:fs/promises"; diff --git a/packages/bun-vscode/example/hello.js b/packages/bun-vscode/example/hello.js new file mode 100644 index 000000000..87951d835 --- /dev/null +++ b/packages/bun-vscode/example/hello.js @@ -0,0 +1 @@ +console.log("HELLO"); |