summaryrefslogtreecommitdiff
path: root/cli/compat/mod.rs
diff options
context:
space:
mode:
authorVishnuJin <45007338+VishnuJin@users.noreply.github.com>2022-01-04 00:40:17 +0530
committerGitHub <noreply@github.com>2022-01-03 20:10:17 +0100
commitd9b130410b78face988e2fa5c3939e3584bc02f7 (patch)
treeb60318e27826507aab5267c28861abf13b6c1504 /cli/compat/mod.rs
parent340764adec4fd613239d8280664361b3c1b9d350 (diff)
feat(compat) preload Node.js built-in modules in global vars REPL (#13127)
This commit adds preloading of built-in Node.js modules in the REPL if running with "deno repl --compat --unstable".
Diffstat (limited to 'cli/compat/mod.rs')
-rw-r--r--cli/compat/mod.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/cli/compat/mod.rs b/cli/compat/mod.rs
index 4ed02dfe7..401e1ab40 100644
--- a/cli/compat/mod.rs
+++ b/cli/compat/mod.rs
@@ -140,3 +140,18 @@ pub(crate) fn add_global_require(
fn escape_for_single_quote_string(text: &str) -> String {
text.replace(r"\", r"\\").replace("'", r"\'")
}
+
+pub fn setup_builtin_modules(
+ js_runtime: &mut JsRuntime,
+) -> Result<(), AnyError> {
+ let mut script = String::new();
+ for module in SUPPORTED_MODULES {
+ // skipping the modules that contains '/' as they are not available in NodeJS repl as well
+ if !module.contains('/') {
+ script = format!("{}const {} = require('{}');\n", script, module, module);
+ }
+ }
+
+ js_runtime.execute_script("setup_node_builtins.js", &script)?;
+ Ok(())
+}