Skip to content
This repository has been archived by the owner on Apr 16, 2020. It is now read-only.

src: do not allow ESM flags without --experimental-modules #62

Merged
merged 1 commit into from Mar 15, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 20 additions & 0 deletions src/node_options.cc
Expand Up @@ -107,6 +107,26 @@ void EnvironmentOptions::CheckOptions(std::vector<std::string>* errors) {
errors->push_back("--loader requires --experimental-modules be enabled");
}

if (!module_type.empty() && !experimental_modules) {
errors->push_back("--type requires --experimental-modules be enabled");
}

if (experimental_json_modules && !experimental_modules) {
errors->push_back("--experimental-json-modules requires "
"--experimental-modules be enabled");
}

if (!es_module_specifier_resolution.empty()) {
if (!experimental_modules) {
errors->push_back("--es-module-specifier-resolution requires "
"--experimental-modules be enabled");
}
if (es_module_specifier_resolution != "node" &&
es_module_specifier_resolution != "explicit") {
errors->push_back("invalid value for --es-module-specifier-resolution");
}
}

if (syntax_check_only && has_eval_string) {
errors->push_back("either --check or --eval can be used, not both");
}
Expand Down
2 changes: 1 addition & 1 deletion src/node_options.h
Expand Up @@ -87,7 +87,7 @@ class EnvironmentOptions : public Options {
bool abort_on_uncaught_exception = false;
bool experimental_json_modules = false;
bool experimental_modules = false;
std::string es_module_specifier_resolution = "explicit";
std::string es_module_specifier_resolution;
std::string module_type;
std::string experimental_policy;
bool experimental_repl_await = false;
Expand Down