From 5b4a84299e483d104100e2c970728285106d849f Mon Sep 17 00:00:00 2001 From: exoego Date: Sat, 25 Apr 2020 17:41:17 +0900 Subject: [PATCH] Expose global require function --- .../scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnv.scala | 4 +++- .../jsenv/jsdomnodejs/JSDOMNodeJSEnvTest.scala | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/jsdom-nodejs-env/src/main/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnv.scala b/jsdom-nodejs-env/src/main/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnv.scala index 3badf7a..356c143 100644 --- a/jsdom-nodejs-env/src/main/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnv.scala +++ b/jsdom-nodejs-env/src/main/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnv.scala @@ -111,7 +111,9 @@ class JSDOMNodeJSEnv(config: JSDOMNodeJSEnv.Config) extends JSEnv { }); var window = dom.window; - window["scalajsCom"] = global.scalajsCom; + ["scalajsCom", "require"].forEach(name => { + window[name] = global[name]; + }); var scriptsSrcs = $scriptsURIsJSArray; for (var i = 0; i < scriptsSrcs.length; i++) { diff --git a/jsdom-nodejs-env/src/test/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnvTest.scala b/jsdom-nodejs-env/src/test/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnvTest.scala index 0d29f90..d990593 100644 --- a/jsdom-nodejs-env/src/test/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnvTest.scala +++ b/jsdom-nodejs-env/src/test/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnvTest.scala @@ -22,4 +22,17 @@ class JSDOMNodeJSEnvTest { .expectOut("http://localhost/foo\n") } } + + @Test + def nodejsRequire: Unit = { + kit.withRun( + // language=JavaScript + """ + const fs = require("fs"); + console.log(fs != null); + console.log(typeof fs.write === "function"); + """) { run => + run.expectOut("true\n") + } + } }