summaryrefslogtreecommitdiff
path: root/node_modules/node-retrieve-globals/util
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/node-retrieve-globals/util')
-rw-r--r--node_modules/node-retrieve-globals/util/getWorkingDirectory.js18
-rw-r--r--node_modules/node-retrieve-globals/util/vmModules.js23
2 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/node-retrieve-globals/util/getWorkingDirectory.js b/node_modules/node-retrieve-globals/util/getWorkingDirectory.js
new file mode 100644
index 0000000..2231341
--- /dev/null
+++ b/node_modules/node-retrieve-globals/util/getWorkingDirectory.js
@@ -0,0 +1,18 @@
+import path from "node:path";
+import { pathToFileURL } from "node:url";
+
+function addTrailingSlash(path) {
+ if(path.endsWith("/")) {
+ return path;
+ }
+ return path + "/";
+}
+
+
+function getWorkingDirectory() {
+ // Trailing slash required
+ // `import` and `require` should both be relative to working directory (not this file)
+ return addTrailingSlash(pathToFileURL(path.resolve(".")).toString());
+}
+
+export { getWorkingDirectory }; \ No newline at end of file
diff --git a/node_modules/node-retrieve-globals/util/vmModules.js b/node_modules/node-retrieve-globals/util/vmModules.js
new file mode 100644
index 0000000..7643eff
--- /dev/null
+++ b/node_modules/node-retrieve-globals/util/vmModules.js
@@ -0,0 +1,23 @@
+import vm from "vm";
+
+function isSupported() {
+ // node --experimental-vm-modules …
+ if(process.execArgv.find(entry => entry == "--experimental-vm-modules")) {
+ return true;
+ }
+ // NODE_OPTIONS='--experimental-vm-modules' node …
+ if((process.env?.NODE_OPTIONS || "").split(" ").find(entry => entry == "--experimental-vm-modules")) {
+ return true;
+ }
+
+ // Feature test for a future when --experimental-vm-modules is not needed
+ // and vm.Module is stable:
+ try {
+ new vm.SourceTextModule(`/* hi */`);
+ return true;
+ } catch(e) {}
+
+ return false;
+}
+
+export { isSupported }; \ No newline at end of file