summaryrefslogtreecommitdiff
path: root/node_modules/node-retrieve-globals/util/vmModules.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/node-retrieve-globals/util/vmModules.js')
-rw-r--r--node_modules/node-retrieve-globals/util/vmModules.js23
1 files changed, 23 insertions, 0 deletions
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