diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-11-28 21:59:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-28 21:59:36 +0100 |
commit | fd51b2e506f3ea3cc49bfb2bcb19bc684f563f60 (patch) | |
tree | 7b8deca6a97e53048293d92cb471d1726e0e3a0f /ext/node/lib.rs | |
parent | 9202611e3695c7091f257b261af809697df959ab (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.rs | 11 |
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() +} |