summaryrefslogtreecommitdiff
path: root/lib/inspector.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/inspector.js')
-rw-r--r--lib/inspector.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/inspector.js b/lib/inspector.js
index 198d87ae44..08cf938999 100644
--- a/lib/inspector.js
+++ b/lib/inspector.js
@@ -9,6 +9,7 @@ const {
ERR_INSPECTOR_NOT_AVAILABLE,
ERR_INSPECTOR_NOT_CONNECTED,
ERR_INSPECTOR_NOT_ACTIVE,
+ ERR_INSPECTOR_NOT_WORKER,
ERR_INVALID_ARG_TYPE,
ERR_INVALID_CALLBACK
} = require('internal/errors').codes;
@@ -20,8 +21,11 @@ if (!hasInspector)
const EventEmitter = require('events');
const { validateString } = require('internal/validators');
const util = require('util');
+const { isMainThread } = require('worker_threads');
+
const {
Connection,
+ MainThreadConnection,
open,
url,
waitForDebugger
@@ -47,6 +51,16 @@ class Session extends EventEmitter {
new Connection((message) => this[onMessageSymbol](message));
}
+ connectToMainThread() {
+ if (isMainThread)
+ throw new ERR_INSPECTOR_NOT_WORKER();
+ if (this[connectionSymbol])
+ throw new ERR_INSPECTOR_ALREADY_CONNECTED('The inspector session');
+ this[connectionSymbol] =
+ new MainThreadConnection(
+ (message) => queueMicrotask(() => this[onMessageSymbol](message)));
+ }
+
[onMessageSymbol](message) {
const parsed = JSON.parse(message);
try {