@@ -1184,11 +1184,19 @@ CommonJS modules loaded.
11841184
11851185### Hooks
11861186
1187- #### < code > resolve < / code > hook
1187+ #### ` resolve(specifier, context, defaultResolve) `
11881188
11891189> Note : The loaders API is being redesigned . This hook may disappear or its
11901190> signature may change . Do not rely on the API described below .
11911191
1192+ * ` specifier` {string}
1193+ * ` context` {Object }
1194+ * ` conditions` {string[]}
1195+ * ` parentURL` {string}
1196+ * ` defaultResolve` {Function }
1197+ * Returns : {Object }
1198+ * ` url` {string}
1199+
11921200The ` resolve` hook returns the resolved file URL for a given module specifier
11931201and parent URL . The module specifier is the string in an ` import` statement or
11941202` import()` expression , and the parent URL is the URL of the module that imported
@@ -1209,11 +1217,11 @@ Node.js module specifier resolution behavior_ when calling `defaultResolve`, the
12091217/**
12101218 * @param {string} specifier
12111219 * @param {{
1220+ * conditions: !Array<string>,
12121221 * parentURL: !(string | undefined),
1213- * conditions: !(Array<string>),
12141222 * }} context
12151223 * @param {Function} defaultResolve
1216- * @returns {!( Promise<{ url: string }>) }
1224+ * @returns {Promise<{ url: string }>}
12171225 */
12181226export async function resolve(specifier, context, defaultResolve) {
12191227 const { parentURL = null } = context;
@@ -1239,29 +1247,34 @@ export async function resolve(specifier, context, defaultResolve) {
12391247}
12401248` ` `
12411249
1242- #### < code > getFormat < / code > hook
1250+ #### ` getFormat(url, context, defaultGetFormat) `
12431251
12441252> Note : The loaders API is being redesigned . This hook may disappear or its
12451253> signature may change . Do not rely on the API described below .
12461254
1255+ * ` url` {string}
1256+ * ` context` {Object }
1257+ * ` defaultGetFormat` {Function }
1258+ * Returns : {Object }
1259+ * ` format` {string}
1260+
12471261The ` getFormat` hook provides a way to define a custom method of determining how
12481262a URL should be interpreted . The ` format` returned also affects what the
12491263acceptable forms of source values are for a module when parsing . This can be one
12501264of the following :
12511265
1252- | ` format` | Description | Acceptable Types For ` source` Returned by ` getSource` or ` transformSource` |
1253- | -- - | -- - | -- - |
1254- | ` 'builtin'` | Load a Node .js builtin module | Not applicable |
1255- | ` 'commonjs'` | Load a Node .js CommonJS module | Not applicable |
1256- | ` 'json'` | Load a JSON file | { [ArrayBuffer ][], [string ][], [TypedArray][] } |
1257- | ` 'module'` | Load an ES module | { [ArrayBuffer ][], [string ][], [TypedArray][] } |
1258- | ` 'wasm'` | Load a WebAssembly module | { [ArrayBuffer ][], [string][], [ TypedArray][] } |
1266+ | ` format` | Description | Acceptable Types For ` source` Returned by ` getSource` or ` transformSource` |
1267+ | ------------ | ------------------------------ | ----------------------------------------------------------------------- --- |
1268+ | ` 'builtin'` | Load a Node .js builtin module | Not applicable |
1269+ | ` 'commonjs'` | Load a Node .js CommonJS module | Not applicable |
1270+ | ` 'json'` | Load a JSON file | { [` string ` ][], [` ArrayBuffer ` ][], [` TypedArray` ][] } |
1271+ | ` 'module'` | Load an ES module | { [` string ` ][], [` ArrayBuffer ` ][], [` TypedArray` ][] } |
1272+ | ` 'wasm'` | Load a WebAssembly module | { [` ArrayBuffer` ][], [` TypedArray` ][] } |
12591273
12601274Note : These types all correspond to classes defined in ECMAScript .
12611275
1262- * The specific [ArrayBuffer ][] object is a [SharedArrayBuffer ][].
1263- * The specific [string ][] object is not the class constructor , but an instance .
1264- * The specific [TypedArray ][] object is a [Uint8Array ][].
1276+ * The specific [` ArrayBuffer` ][] object is a [` SharedArrayBuffer` ][].
1277+ * The specific [` TypedArray` ][] object is a [` Uint8Array` ][].
12651278
12661279Note : If the source value of a text - based format (i .e ., ` 'json'` , ` 'module'` ) is
12671280not a string , it will be converted to a string using [` util.TextDecoder` ][].
@@ -1287,11 +1300,18 @@ export async function getFormat(url, context, defaultGetFormat) {
12871300}
12881301` ` `
12891302
1290- #### < code > getSource < / code > hook
1303+ #### ` getSource(url, context, defaultGetSource) `
12911304
12921305> Note : The loaders API is being redesigned . This hook may disappear or its
12931306> signature may change . Do not rely on the API described below .
12941307
1308+ * ` url` {string}
1309+ * ` context` {Object }
1310+ * ` format` {string}
1311+ * ` defaultGetSource` {Function }
1312+ * Returns : {Object }
1313+ * ` source` {string| SharedArrayBuffer | Uint8Array }
1314+
12951315The ` getSource` hook provides a way to define a custom method for retrieving
12961316the source code of an ES module specifier . This would allow a loader to
12971317potentially avoid reading files from disk .
@@ -1301,7 +1321,7 @@ potentially avoid reading files from disk.
13011321 * @param {string} url
13021322 * @param {{ format: string }} context
13031323 * @param {Function} defaultGetSource
1304- * @returns {Promise<{ source: !(SharedArrayBuffer | string | Uint8Array) }>}
1324+ * @returns {Promise<{ source: !(string | SharedArrayBuffer | Uint8Array) }>}
13051325 */
13061326export async function getSource(url, context, defaultGetSource) {
13071327 const { format } = context;
@@ -1317,11 +1337,18 @@ export async function getSource(url, context, defaultGetSource) {
13171337}
13181338` ` `
13191339
1320- #### < code > transformSource < / code > hook
1340+ #### ` transformSource(source, context, defaultTransformSource) `
13211341
13221342> Note : The loaders API is being redesigned . This hook may disappear or its
13231343> signature may change . Do not rely on the API described below .
13241344
1345+ * ` source` {string| SharedArrayBuffer | Uint8Array }
1346+ * ` context` {Object }
1347+ * ` format` {string}
1348+ * ` url` {string}
1349+ * Returns : {Object }
1350+ * ` source` {string| SharedArrayBuffer | Uint8Array }
1351+
13251352The ` transformSource` hook provides a way to modify the source code of a loaded
13261353ES module file after the source string has been loaded but before Node .js has
13271354done anything with it .
@@ -1332,13 +1359,13 @@ unknown-to-Node.js file extensions. See the [transpiler loader example][] below.
13321359
13331360` ` ` js
13341361/**
1335- * @param {!(SharedArrayBuffer | string | Uint8Array)} source
1362+ * @param {!(string | SharedArrayBuffer | Uint8Array)} source
13361363 * @param {{
1337- * url: string,
13381364 * format: string,
1365+ * url: string,
13391366 * }} context
13401367 * @param {Function} defaultTransformSource
1341- * @returns {Promise<{ source: !(SharedArrayBuffer | string | Uint8Array) }>}
1368+ * @returns {Promise<{ source: !(string | SharedArrayBuffer | Uint8Array) }>}
13421369 */
13431370export async function transformSource(source, context, defaultTransformSource) {
13441371 const { url, format } = context;
@@ -1354,11 +1381,13 @@ export async function transformSource(source, context, defaultTransformSource) {
13541381}
13551382` ` `
13561383
1357- #### < code > getGlobalPreloadCode < / code > hook
1384+ #### ` getGlobalPreloadCode() `
13581385
13591386> Note : The loaders API is being redesigned . This hook may disappear or its
13601387> signature may change . Do not rely on the API described below .
13611388
1389+ * Returns : {string}
1390+
13621391Sometimes it can be necessary to run some code inside of the same global scope
13631392that the application will run in . This hook allows to return a string that will
13641393be ran as sloppy - mode script on startup .
@@ -1909,12 +1938,12 @@ success!
19091938[`import`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
19101939[`module.createRequire()`]: modules.html#modules_module_createrequire_filename
19111940[`module.syncBuiltinESMExports()`]: modules.html#modules_module_syncbuiltinesmexports
1912- [`transformSource` hook]: #esm_code_transformsource_code_hook
1913- [ArrayBuffer]: https://www.ecma-international .org/ecma-262/6.0/#sec-arraybuffer-constructor
1914- [SharedArrayBuffer]: https://tc39.es/ecma262/#sec-sharedarraybuffer-constructor
1915- [string]: https://www.ecma-international .org/ecma-262/6.0/#sec-string-constructor
1916- [TypedArray]: https://www.ecma-international .org/ecma-262/6.0/#sec-typedarray-objects
1917- [Uint8Array]: https://www.ecma-international .org/ecma-262/6.0/#sec-uint8array
1941+ [`transformSource` hook]: #esm_transformsource_source_context_defaulttransformsource
1942+ [` ArrayBuffer` ]: https://developer.mozilla .org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer
1943+ [` SharedArrayBuffer` ]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
1944+ [` string` ]: https://developer.mozilla .org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
1945+ [` TypedArray` ]: https://developer.mozilla .org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
1946+ [` Uint8Array` ]: https://developer.mozilla .org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array
19181947[`util.TextDecoder`]: util.html#util_class_util_textdecoder
19191948[import an ES or CommonJS module for its side effects only]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Import_a_module_for_its_side_effects_only
19201949[special scheme]: https://url.spec.whatwg.org/#special-scheme
0 commit comments