summaryrefslogtreecommitdiff
path: root/src/node_options.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_options.cc')
-rw-r--r--src/node_options.cc26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/node_options.cc b/src/node_options.cc
index 498bedd1e5..abf26fb781 100644
--- a/src/node_options.cc
+++ b/src/node_options.cc
@@ -128,9 +128,23 @@ void EnvironmentOptions::CheckOptions(std::vector<std::string>* errors) {
}
if (!es_module_specifier_resolution.empty()) {
- if (es_module_specifier_resolution != "node" &&
- es_module_specifier_resolution != "explicit") {
- errors->push_back("invalid value for --es-module-specifier-resolution");
+ if (!experimental_specifier_resolution.empty()) {
+ errors->push_back(
+ "bad option: cannot use --es-module-specifier-resolution"
+ " and --experimental-specifier-resolution at the same time");
+ } else {
+ experimental_specifier_resolution = es_module_specifier_resolution;
+ if (experimental_specifier_resolution != "node" &&
+ experimental_specifier_resolution != "explicit") {
+ errors->push_back(
+ "invalid value for --es-module-specifier-resolution");
+ }
+ }
+ } else if (!experimental_specifier_resolution.empty()) {
+ if (experimental_specifier_resolution != "node" &&
+ experimental_specifier_resolution != "explicit") {
+ errors->push_back(
+ "invalid value for --experimental-specifier-resolution");
}
}
@@ -365,9 +379,13 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
"set module type for string input",
&EnvironmentOptions::module_type,
kAllowedInEnvironment);
- AddOption("--es-module-specifier-resolution",
+ AddOption("--experimental-specifier-resolution",
"Select extension resolution algorithm for es modules; "
"either 'explicit' (default) or 'node'",
+ &EnvironmentOptions::experimental_specifier_resolution,
+ kAllowedInEnvironment);
+ AddOption("--es-module-specifier-resolution",
+ "",
&EnvironmentOptions::es_module_specifier_resolution,
kAllowedInEnvironment);
AddOption("--no-deprecation",