doc: document resolve hook formats

Add `"dynamic"` to the list of supported `format`s returned by a
custom resolve hook.

Add a table describing the meaning of each `format`.

PR-URL: https://github.com/nodejs/node/pull/16375
Refs: https://github.com/nodejs/node/pull/15445
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
Lucas Azzola 2017-10-22 14:03:18 +10:00 committed by Michaël Zasso
parent e46c3f743d
commit e5d4aeb6ac

View File

@ -128,10 +128,18 @@ argument to the resolver for easy compatibility workflows.
In addition to returning the resolved file URL value, the resolve hook also In addition to returning the resolved file URL value, the resolve hook also
returns a `format` property specifying the module format of the resolved returns a `format` property specifying the module format of the resolved
module. This can be one of `"esm"`, `"cjs"`, `"json"`, `"builtin"` or module. This can be one of the following:
`"addon"`.
For example a dummy loader to load JavaScript restricted to browser resolution | `format` | Description |
| --- | --- |
| `"esm"` | Load a standard JavaScript module |
| `"cjs"` | Load a node-style CommonJS module |
| `"builtin"` | Load a node builtin CommonJS module |
| `"json"` | Load a JSON file |
| `"addon"` | Load a [C++ Addon][addons] |
| `"dynamic"` | Use a [dynamic instantiate hook][] |
For example, a dummy loader to load JavaScript restricted to browser resolution
rules with only JS file extension and Node builtin modules support could rules with only JS file extension and Node builtin modules support could
be written: be written:
@ -205,3 +213,5 @@ then be called at the exact point of module evalutation order for that module
in the import tree. in the import tree.
[Node.js EP for ES Modules]: https://github.com/nodejs/node-eps/blob/master/002-es-modules.md [Node.js EP for ES Modules]: https://github.com/nodejs/node-eps/blob/master/002-es-modules.md
[addons]: addons.html
[dynamic instantiate hook]: #esm_dynamic_instantiate_hook