aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpackages/bun-debug-adapter-protocol/bun.lockbbin1273 -> 2323 bytes
-rw-r--r--packages/bun-debug-adapter-protocol/debugger/adapter.ts23
-rw-r--r--packages/bun-debug-adapter-protocol/package.json3
-rw-r--r--packages/bun-vscode/example/example.js3
-rw-r--r--packages/bun-vscode/example/hello.js1
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
index 0d0ceb95f..72c6389ec 100755
--- a/packages/bun-debug-adapter-protocol/bun.lockb
+++ b/packages/bun-debug-adapter-protocol/bun.lockb
Binary files differ
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");