summaryrefslogtreecommitdiff
path: root/cli/node/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/node/mod.rs')
-rw-r--r--cli/node/mod.rs90
1 files changed, 4 insertions, 86 deletions
diff --git a/cli/node/mod.rs b/cli/node/mod.rs
index dffcb7437..c5d3de968 100644
--- a/cli/node/mod.rs
+++ b/cli/node/mod.rs
@@ -13,11 +13,11 @@ use deno_core::anyhow::bail;
use deno_core::anyhow::Context;
use deno_core::error::generic_error;
use deno_core::error::AnyError;
-use deno_core::located_script_name;
use deno_core::serde_json::Value;
use deno_core::url::Url;
-use deno_core::JsRuntime;
+use deno_runtime::deno_node;
use deno_runtime::deno_node::errors;
+use deno_runtime::deno_node::find_builtin_node_module;
use deno_runtime::deno_node::get_closest_package_json;
use deno_runtime::deno_node::legacy_main_resolve;
use deno_runtime::deno_node::package_exports_resolve;
@@ -25,7 +25,6 @@ use deno_runtime::deno_node::package_imports_resolve;
use deno_runtime::deno_node::package_resolve;
use deno_runtime::deno_node::path_to_declaration_path;
use deno_runtime::deno_node::NodeModuleKind;
-use deno_runtime::deno_node::NodeModulePolyfill;
use deno_runtime::deno_node::NodeModulePolyfillSpecifier;
use deno_runtime::deno_node::NodePermissions;
use deno_runtime::deno_node::NodeResolutionMode;
@@ -33,8 +32,6 @@ use deno_runtime::deno_node::PackageJson;
use deno_runtime::deno_node::PathClean;
use deno_runtime::deno_node::RequireNpmResolver;
use deno_runtime::deno_node::DEFAULT_CONDITIONS;
-use deno_runtime::deno_node::NODE_GLOBAL_THIS_NAME;
-use deno_runtime::deno_node::SUPPORTED_BUILTIN_NODE_MODULES;
use deno_runtime::permissions::PermissionsContainer;
use once_cell::sync::Lazy;
use regex::Regex;
@@ -123,16 +120,6 @@ static NODE_COMPAT_URL: Lazy<Url> = Lazy::new(|| {
pub static MODULE_ALL_URL: Lazy<Url> =
Lazy::new(|| NODE_COMPAT_URL.join("node/module_all.ts").unwrap());
-fn find_builtin_node_module(specifier: &str) -> Option<&NodeModulePolyfill> {
- SUPPORTED_BUILTIN_NODE_MODULES
- .iter()
- .find(|m| m.name == specifier)
-}
-
-fn is_builtin_node_module(specifier: &str) -> bool {
- find_builtin_node_module(specifier).is_some()
-}
-
pub fn resolve_builtin_node_module(specifier: &str) -> Result<Url, AnyError> {
if let Some(module) = find_builtin_node_module(specifier) {
match module.specifier {
@@ -203,49 +190,6 @@ static RESERVED_WORDS: Lazy<HashSet<&str>> = Lazy::new(|| {
])
});
-pub async fn initialize_runtime(
- js_runtime: &mut JsRuntime,
- uses_local_node_modules_dir: bool,
-) -> Result<(), AnyError> {
- let source_code = &format!(
- r#"(async function loadBuiltinNodeModules(moduleAllUrl, nodeGlobalThisName, usesLocalNodeModulesDir) {{
- const moduleAll = await import(moduleAllUrl);
- Deno[Deno.internal].node.initialize(moduleAll.default, nodeGlobalThisName);
- if (usesLocalNodeModulesDir) {{
- Deno[Deno.internal].require.setUsesLocalNodeModulesDir();
- }}
- }})('{}', '{}', {});"#,
- MODULE_ALL_URL.as_str(),
- NODE_GLOBAL_THIS_NAME.as_str(),
- uses_local_node_modules_dir,
- );
-
- let value =
- js_runtime.execute_script(&located_script_name!(), source_code)?;
- js_runtime.resolve_value(value).await?;
- Ok(())
-}
-
-pub async fn initialize_binary_command(
- js_runtime: &mut JsRuntime,
- binary_name: &str,
-) -> Result<(), AnyError> {
- // overwrite what's done in deno_std in order to set the binary arg name
- let source_code = &format!(
- r#"(async function initializeBinaryCommand(binaryName) {{
- const process = Deno[Deno.internal].node.globalThis.process;
- Object.defineProperty(process.argv, "0", {{
- get: () => binaryName,
- }});
- }})('{binary_name}');"#,
- );
-
- let value =
- js_runtime.execute_script(&located_script_name!(), source_code)?;
- js_runtime.resolve_value(value).await?;
- Ok(())
-}
-
/// This function is an implementation of `defaultResolve` in
/// `lib/internal/modules/esm/resolve.js` from Node.
pub fn node_resolve(
@@ -258,7 +202,7 @@ pub fn node_resolve(
// Note: if we are here, then the referrer is an esm module
// TODO(bartlomieju): skipped "policy" part as we don't plan to support it
- if is_builtin_node_module(specifier) {
+ if deno_node::is_builtin_node_module(specifier) {
return Ok(Some(NodeResolution::BuiltIn(specifier.to_string())));
}
@@ -273,7 +217,7 @@ pub fn node_resolve(
let split_specifier = url.as_str().split(':');
let specifier = split_specifier.skip(1).collect::<String>();
- if is_builtin_node_module(&specifier) {
+ if deno_node::is_builtin_node_module(&specifier) {
return Ok(Some(NodeResolution::BuiltIn(specifier)));
}
}
@@ -451,32 +395,6 @@ fn resolve_bin_entry_value<'a>(
}
}
-pub fn load_cjs_module_from_ext_node(
- js_runtime: &mut JsRuntime,
- module: &str,
- main: bool,
- inspect_brk: bool,
-) -> Result<(), AnyError> {
- fn escape_for_single_quote_string(text: &str) -> String {
- text.replace('\\', r"\\").replace('\'', r"\'")
- }
-
- let source_code = &format!(
- r#"(function loadCjsModule(module, inspectBrk) {{
- if (inspectBrk) {{
- Deno[Deno.internal].require.setInspectBrk();
- }}
- Deno[Deno.internal].require.Module._load(module, null, {main});
- }})('{module}', {inspect_brk});"#,
- main = main,
- module = escape_for_single_quote_string(module),
- inspect_brk = inspect_brk,
- );
-
- js_runtime.execute_script(&located_script_name!(), source_code)?;
- Ok(())
-}
-
fn package_config_resolve(
package_subpath: &str,
package_dir: &Path,