From 3743406b0a44e13de491c8590386a964dbe327bb Mon Sep 17 00:00:00 2001 From: Jacob <3012099+JakobJingleheimer@users.noreply.github.com> Date: Wed, 25 Aug 2021 22:55:14 +0200 Subject: [PATCH] esm: consolidate ESM loader hooks doc: update ESM hook examples esm: fix unsafe primordial doc: fix ESM example linting esm: allow source of type ArrayBuffer doc: update ESM hook changelog to include resolve format esm: allow all ArrayBuffers and TypedArrays for load hook source doc: tidy code & API docs doc: convert ESM source table header from Title Case to Sentence case doc: add detailed explanation for getPackageType esm: add caveat that ESMLoader::import() must NOT be renamed esm: tidy code declaration of getFormat protocolHandlers doc: correct ESM doc link (bad conflict resolution) doc: update ESM hook limitation for CJS esm: tweak preload description doc: update ESM getPackageType() example explanation PR-URL: https://github.com/nodejs/node/pull/37468 Reviewed-By: Antoine du Hamel Reviewed-By: Guy Bedford Reviewed-By: Bradley Farias Reviewed-By: Geoffrey Booth --- doc/api/esm.md | 312 +++++----- lib/internal/modules/cjs/loader.js | 10 +- lib/internal/modules/esm/get_format.js | 36 +- lib/internal/modules/esm/get_source.js | 2 +- lib/internal/modules/esm/load.js | 32 + lib/internal/modules/esm/loader.js | 553 ++++++++++++------ lib/internal/modules/esm/module_job.js | 10 +- lib/internal/modules/esm/resolve.js | 2 +- lib/internal/modules/esm/transform_source.js | 7 - lib/internal/modules/esm/translators.js | 51 +- lib/internal/modules/run_main.js | 10 +- lib/internal/process/esm_loader.js | 52 +- lib/internal/process/execution.js | 2 +- lib/repl.js | 4 +- test/es-module/test-esm-data-urls.js | 2 +- ...-loader.js => test-esm-example-loader.mjs} | 0 test/es-module/test-esm-get-source-loader.mjs | 6 - test/es-module/test-esm-loader-get-format.mjs | 12 - test/es-module/test-esm-loader-modulemap.js | 4 +- .../test-esm-loader-stringify-text.mjs | 40 ++ test/es-module/test-esm-loader.mjs | 83 +++ test/es-module/test-esm-resolve-hook.mjs | 8 - .../test-esm-transform-source-loader.mjs | 6 - .../builtin-named-exports-loader.mjs | 18 +- .../fixtures/es-module-loaders/get-source.mjs | 10 - .../es-module-loaders/hooks-custom.mjs | 69 +++ .../es-module-loaders/hooks-obsolete.mjs | 22 + test/fixtures/es-module-loaders/js-loader.mjs | 9 - .../loader-invalid-format.mjs | 7 +- .../loader-unknown-builtin-module.mjs | 20 +- .../es-module-loaders/string-sources.mjs | 30 +- .../es-module-loaders/transform-source.mjs | 14 - test/fixtures/es-modules/file.ext | 3 + test/fixtures/es-modules/file.unknown | 0 test/fixtures/es-modules/stateful.mjs | 5 + test/message/esm_display_syntax_error.out | 3 +- .../esm_display_syntax_error_import.out | 5 +- ...esm_display_syntax_error_import_module.out | 5 +- .../esm_display_syntax_error_module.out | 3 +- test/message/esm_loader_not_found.out | 12 +- .../esm_loader_not_found_cjs_hint_bare.out | 6 +- ...esm_loader_not_found_cjs_hint_relative.out | 12 +- test/message/esm_loader_syntax_error.out | 3 +- .../test-esm-loader-obsolete-hooks.mjs | 4 + .../test-esm-loader-obsolete-hooks.out | 10 + test/parallel/test-bootstrap-modules.js | 2 +- 46 files changed, 971 insertions(+), 545 deletions(-) create mode 100644 lib/internal/modules/esm/load.js delete mode 100644 lib/internal/modules/esm/transform_source.js rename test/es-module/{test-esm-example-loader.js => test-esm-example-loader.mjs} (100%) delete mode 100644 test/es-module/test-esm-get-source-loader.mjs delete mode 100644 test/es-module/test-esm-loader-get-format.mjs create mode 100644 test/es-module/test-esm-loader.mjs delete mode 100644 test/es-module/test-esm-resolve-hook.mjs delete mode 100644 test/es-module/test-esm-transform-source-loader.mjs delete mode 100644 test/fixtures/es-module-loaders/get-source.mjs create mode 100644 test/fixtures/es-module-loaders/hooks-custom.mjs create mode 100644 test/fixtures/es-module-loaders/hooks-obsolete.mjs delete mode 100644 test/fixtures/es-module-loaders/js-loader.mjs delete mode 100644 test/fixtures/es-module-loaders/transform-source.mjs create mode 100644 test/fixtures/es-modules/file.ext create mode 100644 test/fixtures/es-modules/file.unknown create mode 100644 test/fixtures/es-modules/stateful.mjs create mode 100644 test/message/test-esm-loader-obsolete-hooks.mjs create mode 100644 test/message/test-esm-loader-obsolete-hooks.out diff --git a/doc/api/esm.md b/doc/api/esm.md index fd68e2649baf8e..06eae239c3abcd 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -7,6 +7,14 @@