summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Aubuchon <alex@aub.dev>2019-09-28 12:51:15 -0400
committerRich Trott <rtrott@gmail.com>2019-09-30 21:47:01 -0700
commit15fb02a515bf937bb1045d415dd09bfe632a463b (patch)
tree01da2627ce115a9297f4b76c489fe1321183ab39
parent1c5a3f0d091ef34b82f89dce4c87b431cab4c3ee (diff)
downloadandroid-node-v8-15fb02a515bf937bb1045d415dd09bfe632a463b.tar.gz
android-node-v8-15fb02a515bf937bb1045d415dd09bfe632a463b.tar.bz2
android-node-v8-15fb02a515bf937bb1045d415dd09bfe632a463b.zip
src: rename --loader to --experimental-loader
Renames the `--loader` cli argument to `--experimental-loader`. This is to clearly indicate the esm loader feature as experimental even after esm is no longer experimental. Also minorly alters the `--experimental-loader` docs to say that the passed loader can be an esm module. Refs: https://github.com/nodejs/modules/issues/351#issuecomment-535189524 PR-URL: https://github.com/nodejs/node/pull/29752 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
-rw-r--r--doc/api/cli.md7
-rw-r--r--doc/api/esm.md4
-rw-r--r--doc/node.14
-rw-r--r--lib/internal/bootstrap/pre_execution.js8
-rw-r--r--src/node_options.cc14
-rw-r--r--test/es-module/test-esm-example-loader.js2
-rw-r--r--test/es-module/test-esm-loader-dependency.mjs2
-rw-r--r--test/es-module/test-esm-loader-invalid-format.mjs2
-rw-r--r--test/es-module/test-esm-loader-invalid-url.mjs2
-rw-r--r--test/es-module/test-esm-loader-missing-dynamic-instantiate-hook.mjs2
-rw-r--r--test/es-module/test-esm-named-exports.mjs2
-rw-r--r--test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs2
-rw-r--r--test/es-module/test-esm-preserve-symlinks-not-found.mjs2
-rw-r--r--test/es-module/test-esm-resolve-hook.mjs2
-rw-r--r--test/es-module/test-esm-shared-loader-dep.mjs2
-rw-r--r--test/parallel/test-loaders-unknown-builtin-module.mjs2
-rw-r--r--test/parallel/test-process-env-allowed-flags-are-documented.js1
17 files changed, 32 insertions, 28 deletions
diff --git a/doc/api/cli.md b/doc/api/cli.md
index 6d09b85842..c196adf038 100644
--- a/doc/api/cli.md
+++ b/doc/api/cli.md
@@ -368,12 +368,13 @@ Specify ways of the inspector web socket url exposure.
By default inspector websocket url is available in stderr and under `/json/list`
endpoint on `http://host:port/json/list`.
-### `--loader=file`
+### `--experimental-loader=module`
<!-- YAML
added: v9.0.0
-->
-Specify the `file` of the custom [experimental ECMAScript Module][] loader.
+Specify the `module` of a custom [experimental ECMAScript Module][] loader.
+`module` may be either a path to a file, or an ECMAScript Module name.
### `--max-http-header-size=size`
<!-- YAML
@@ -981,6 +982,7 @@ Node.js options that are allowed are:
* `--enable-fips`
* `--es-module-specifier-resolution`
* `--experimental-exports`
+* `--experimental-loader`
* `--experimental-modules`
* `--experimental-policy`
* `--experimental-repl-await`
@@ -998,7 +1000,6 @@ Node.js options that are allowed are:
* `--inspect-port`, `--debug-port`
* `--inspect-publish-uid`
* `--inspect`
-* `--loader`
* `--max-http-header-size`
* `--napi-modules`
* `--no-deprecation`
diff --git a/doc/api/esm.md b/doc/api/esm.md
index b811f2c4cf..5805284016 100644
--- a/doc/api/esm.md
+++ b/doc/api/esm.md
@@ -632,7 +632,7 @@ would provide the exports interface for the instantiation of `module.wasm`.
<!-- type=misc -->
To customize the default module resolution, loader hooks can optionally be
-provided via a `--loader ./loader-name.mjs` argument to Node.js.
+provided via a `--experimental-loader ./loader-name.mjs` argument to Node.js.
When hooks are used they only apply to ES module loading and not to any
CommonJS modules loaded.
@@ -731,7 +731,7 @@ export async function resolve(specifier,
With this loader, running:
```console
-NODE_OPTIONS='--experimental-modules --loader ./custom-loader.mjs' node x.js
+NODE_OPTIONS='--experimental-modules --experimental-loader ./custom-loader.mjs' node x.js
```
would load the module `x.js` as an ES module with relative resolution support
diff --git a/doc/node.1 b/doc/node.1
index dc0c1b551d..2b7e3dc429 100644
--- a/doc/node.1
+++ b/doc/node.1
@@ -191,9 +191,9 @@ Default is
V8 Inspector integration allows attaching Chrome DevTools and IDEs to Node.js instances for debugging and profiling.
It uses the Chrome DevTools Protocol.
.
-.It Fl -loader Ns = Ns Ar file
+.It Fl -experimental-loader Ns = Ns Ar module
Specify the
-.Ar file
+.Ar module
as a custom loader, to load
.Fl -experimental-modules .
.
diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js
index 6e7d946458..cab2d47c8e 100644
--- a/lib/internal/bootstrap/pre_execution.js
+++ b/lib/internal/bootstrap/pre_execution.js
@@ -400,12 +400,12 @@ function initializeESMLoader() {
// track of for different ESM modules.
setInitializeImportMetaObjectCallback(esm.initializeImportMetaObject);
setImportModuleDynamicallyCallback(esm.importModuleDynamicallyCallback);
- const userLoader = getOptionValue('--loader');
- // If --loader is specified, create a loader with user hooks. Otherwise
- // create the default loader.
+ const userLoader = getOptionValue('--experimental-loader');
+ // If --experimental-loader is specified, create a loader with user hooks.
+ // Otherwise create the default loader.
if (userLoader) {
const { emitExperimentalWarning } = require('internal/util');
- emitExperimentalWarning('--loader');
+ emitExperimentalWarning('--experimental-loader');
}
esm.initializeLoader(process.cwd(), userLoader);
}
diff --git a/src/node_options.cc b/src/node_options.cc
index 005f0d2e1e..34efe6336a 100644
--- a/src/node_options.cc
+++ b/src/node_options.cc
@@ -114,7 +114,8 @@ void PerIsolateOptions::CheckOptions(std::vector<std::string>* errors) {
void EnvironmentOptions::CheckOptions(std::vector<std::string>* errors) {
if (!userland_loader.empty() && !experimental_modules) {
- errors->push_back("--loader requires --experimental-modules be enabled");
+ errors->push_back("--experimental-loader requires "
+ "--experimental-modules be enabled");
}
if (has_policy_integrity_string && experimental_policy.empty()) {
errors->push_back("--policy-integrity requires "
@@ -311,6 +312,12 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
"experimental support for exports in package.json",
&EnvironmentOptions::experimental_exports,
kAllowedInEnvironment);
+ AddOption("--experimental-loader",
+ "(with --experimental-modules) use the specified file as a "
+ "custom loader",
+ &EnvironmentOptions::userland_loader,
+ kAllowedInEnvironment);
+ AddAlias("--loader", "--experimental-loader");
AddOption("--experimental-modules",
"experimental ES Module support and caching modules",
&EnvironmentOptions::experimental_modules,
@@ -363,11 +370,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
"set module type for string input",
&EnvironmentOptions::module_type,
kAllowedInEnvironment);
- AddOption("--loader",
- "(with --experimental-modules) use the specified file as a "
- "custom loader",
- &EnvironmentOptions::userland_loader,
- kAllowedInEnvironment);
AddOption("--es-module-specifier-resolution",
"Select extension resolution algorithm for es modules; "
"either 'explicit' (default) or 'node'",
diff --git a/test/es-module/test-esm-example-loader.js b/test/es-module/test-esm-example-loader.js
index c3ba95f228..0da1d34d2a 100644
--- a/test/es-module/test-esm-example-loader.js
+++ b/test/es-module/test-esm-example-loader.js
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/example-loader.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/example-loader.mjs
/* eslint-disable node-core/require-common-first, node-core/required-modules */
import assert from 'assert';
import ok from '../fixtures/es-modules/test-esm-ok.mjs';
diff --git a/test/es-module/test-esm-loader-dependency.mjs b/test/es-module/test-esm-loader-dependency.mjs
index 9cb2856009..dadc3bd84a 100644
--- a/test/es-module/test-esm-loader-dependency.mjs
+++ b/test/es-module/test-esm-loader-dependency.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-with-dep.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-with-dep.mjs
/* eslint-disable node-core/require-common-first, node-core/required-modules */
import '../fixtures/es-modules/test-esm-ok.mjs';
diff --git a/test/es-module/test-esm-loader-invalid-format.mjs b/test/es-module/test-esm-loader-invalid-format.mjs
index e4e4e30f5c..9e26d646d4 100644
--- a/test/es-module/test-esm-loader-invalid-format.mjs
+++ b/test/es-module/test-esm-loader-invalid-format.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-invalid-format.mjs
import { expectsError, mustCall } from '../common/index.mjs';
import assert from 'assert';
diff --git a/test/es-module/test-esm-loader-invalid-url.mjs b/test/es-module/test-esm-loader-invalid-url.mjs
index 44bacf9347..f42900c58e 100644
--- a/test/es-module/test-esm-loader-invalid-url.mjs
+++ b/test/es-module/test-esm-loader-invalid-url.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-invalid-url.mjs
import { expectsError, mustCall } from '../common/index.mjs';
import assert from 'assert';
diff --git a/test/es-module/test-esm-loader-missing-dynamic-instantiate-hook.mjs b/test/es-module/test-esm-loader-missing-dynamic-instantiate-hook.mjs
index 50fbf0c83e..5767af7aff 100644
--- a/test/es-module/test-esm-loader-missing-dynamic-instantiate-hook.mjs
+++ b/test/es-module/test-esm-loader-missing-dynamic-instantiate-hook.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs
import { expectsError } from '../common/index.mjs';
import('test').catch(expectsError({
diff --git a/test/es-module/test-esm-named-exports.mjs b/test/es-module/test-esm-named-exports.mjs
index 8b7c429b3d..6c80308269 100644
--- a/test/es-module/test-esm-named-exports.mjs
+++ b/test/es-module/test-esm-named-exports.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs
import '../common/index.mjs';
import { readFile } from 'fs';
import assert from 'assert';
diff --git a/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs b/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs
index b9b2860dff..1dcae4b8ae 100644
--- a/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs
+++ b/test/es-module/test-esm-preserve-symlinks-not-found-plain.mjs
@@ -1,3 +1,3 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
/* eslint-disable node-core/require-common-first, node-core/required-modules */
import './not-found.js';
diff --git a/test/es-module/test-esm-preserve-symlinks-not-found.mjs b/test/es-module/test-esm-preserve-symlinks-not-found.mjs
index 1dbdfa03e6..68e1b53eeb 100644
--- a/test/es-module/test-esm-preserve-symlinks-not-found.mjs
+++ b/test/es-module/test-esm-preserve-symlinks-not-found.mjs
@@ -1,3 +1,3 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/not-found-assert-loader.mjs
/* eslint-disable node-core/require-common-first, node-core/required-modules */
import './not-found.mjs';
diff --git a/test/es-module/test-esm-resolve-hook.mjs b/test/es-module/test-esm-resolve-hook.mjs
index bbf6c80cda..00c8e440f4 100644
--- a/test/es-module/test-esm-resolve-hook.mjs
+++ b/test/es-module/test-esm-resolve-hook.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/js-loader.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/js-loader.mjs
/* eslint-disable node-core/require-common-first, node-core/required-modules */
import { namedExport } from '../fixtures/es-module-loaders/js-as-esm.js';
import assert from 'assert';
diff --git a/test/es-module/test-esm-shared-loader-dep.mjs b/test/es-module/test-esm-shared-loader-dep.mjs
index 00ba1ec31a..b02e557d34 100644
--- a/test/es-module/test-esm-shared-loader-dep.mjs
+++ b/test/es-module/test-esm-shared-loader-dep.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-shared-dep.mjs
import { createRequire } from '../common/index.mjs';
import assert from 'assert';
diff --git a/test/parallel/test-loaders-unknown-builtin-module.mjs b/test/parallel/test-loaders-unknown-builtin-module.mjs
index b7d815c812..b0b1d400e6 100644
--- a/test/parallel/test-loaders-unknown-builtin-module.mjs
+++ b/test/parallel/test-loaders-unknown-builtin-module.mjs
@@ -1,4 +1,4 @@
-// Flags: --experimental-modules --loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
+// Flags: --experimental-modules --experimental-loader ./test/fixtures/es-module-loaders/loader-unknown-builtin-module.mjs
import { expectsError, mustCall } from '../common/index.mjs';
import assert from 'assert';
diff --git a/test/parallel/test-process-env-allowed-flags-are-documented.js b/test/parallel/test-process-env-allowed-flags-are-documented.js
index a60f6bbecf..2e0d67eefc 100644
--- a/test/parallel/test-process-env-allowed-flags-are-documented.js
+++ b/test/parallel/test-process-env-allowed-flags-are-documented.js
@@ -87,6 +87,7 @@ const undocumented = difference(process.allowedNodeEnvironmentFlags,
assert(undocumented.delete('--debug-arraybuffer-allocations'));
assert(undocumented.delete('--experimental-worker'));
assert(undocumented.delete('--no-node-snapshot'));
+assert(undocumented.delete('--loader'));
assert.strictEqual(undocumented.size, 0,
'The following options are not documented as allowed in ' +