diff options
Diffstat (limited to 'node_modules/node-retrieve-globals/util')
| -rw-r--r-- | node_modules/node-retrieve-globals/util/getWorkingDirectory.js | 18 | ||||
| -rw-r--r-- | node_modules/node-retrieve-globals/util/vmModules.js | 23 |
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 |
