summaryrefslogtreecommitdiff
path: root/node_modules/node-retrieve-globals/util/vmModules.js
blob: 7643eff68ae63798e4ed23a8444efa37b53db819 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 };