summaryrefslogtreecommitdiff
path: root/ext/node/lib.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-11-28 21:59:36 +0100
committerGitHub <noreply@github.com>2022-11-28 21:59:36 +0100
commitfd51b2e506f3ea3cc49bfb2bcb19bc684f563f60 (patch)
tree7b8deca6a97e53048293d92cb471d1726e0e3a0f /ext/node/lib.rs
parent9202611e3695c7091f257b261af809697df959ab (diff)
fix(npm): allow to inspect npm modules with --inspect-brk (#16841)
Diffstat (limited to 'ext/node/lib.rs')
-rw-r--r--ext/node/lib.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/ext/node/lib.rs b/ext/node/lib.rs
index d69d3b6fe..0e84cea7b 100644
--- a/ext/node/lib.rs
+++ b/ext/node/lib.rs
@@ -7,6 +7,7 @@ use deno_core::normalize_path;
use deno_core::op;
use deno_core::url::Url;
use deno_core::Extension;
+use deno_core::JsRuntimeInspector;
use deno_core::OpState;
use once_cell::sync::Lazy;
use std::collections::HashSet;
@@ -31,6 +32,7 @@ pub use resolution::path_to_declaration_path;
pub use resolution::NodeModuleKind;
pub use resolution::DEFAULT_CONDITIONS;
pub use resolution::TYPES_CONDITIONS;
+use std::cell::RefCell;
pub trait NodePermissions {
fn check_read(&mut self, path: &Path) -> Result<(), AnyError>;
@@ -106,6 +108,7 @@ pub fn init<P: NodePermissions + 'static>(
op_require_read_closest_package_json::decl::<P>(),
op_require_read_package_scope::decl(),
op_require_package_imports_resolve::decl::<P>(),
+ op_require_break_on_next_statement::decl(),
])
.state(move |state| {
if let Some(npm_resolver) = maybe_npm_resolver.clone() {
@@ -630,3 +633,11 @@ where
Ok(None)
}
}
+
+#[op]
+fn op_require_break_on_next_statement(state: &mut OpState) {
+ let inspector = state.borrow::<Rc<RefCell<JsRuntimeInspector>>>();
+ inspector
+ .borrow_mut()
+ .wait_for_session_and_break_on_next_statement()
+}