diff --git a/doc/api/errors.md b/doc/api/errors.md index 57f64367c1d3eb..19f9f9abaec60f 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1330,6 +1330,14 @@ strict compliance with the API specification (which in some cases may accept `func(undefined)` and `func()` are treated identically, and the [`ERR_INVALID_ARG_TYPE`][] error code may be used instead. + +### ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK + +> Stability: 1 - Experimental + +An [ES6 module][] loader hook specified `format: 'dynamic'` but did not provide +a `dynamicInstantiate` hook. + ### ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST diff --git a/lib/internal/errors.js b/lib/internal/errors.js index be37c96d018704..4d2dd7f69410e2 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -739,6 +739,9 @@ E('ERR_MISSING_ARGS', } return `${msg} must be specified`; }, TypeError); +E('ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK', + 'The ES Module loader may not return a format of \'dynamic\' when no ' + + 'dynamicInstantiate function was provided', Error); E('ERR_MISSING_MODULE', 'Cannot find module %s', Error); E('ERR_MODULE_RESOLUTION_LEGACY', '%s not found by import in %s.' + diff --git a/lib/internal/modules/esm/loader.js b/lib/internal/modules/esm/loader.js index 2fa10c7eab9b44..89f40939e7a4f3 100644 --- a/lib/internal/modules/esm/loader.js +++ b/lib/internal/modules/esm/loader.js @@ -5,7 +5,7 @@ const { ERR_INVALID_RETURN_PROPERTY, ERR_INVALID_RETURN_PROPERTY_VALUE, ERR_INVALID_RETURN_VALUE, - ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK, + ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK, ERR_UNKNOWN_MODULE_FORMAT } = require('internal/errors').codes; const { URL } = require('url'); @@ -118,7 +118,7 @@ class Loader { let loaderInstance; if (format === 'dynamic') { if (typeof this._dynamicInstantiate !== 'function') - throw new ERR_MISSING_DYNAMIC_INTSTANTIATE_HOOK(); + throw new ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK(); loaderInstance = async (url) => { debug(`Translating dynamic ${url}`);