Skip to content
This repository has been archived by the owner on Sep 2, 2023. It is now read-only.

doc: first pass at minimal-kernel #180

Merged
merged 6 commits into from
Oct 3, 2018
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions doc/minimal-kernel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# What is a Minimal Kernel for ESM in Node.js?

A minimal kernel is a subset of features that the @nodejs/modules group have agreed will be necessary for all potential iterations of our ESM implementation. It strips out any features that preclude other features

This comment was marked as off-topic.


# Why build a Minimal Kernel?

Having a minimal kernel creates a subset that we can build consensus on top of. It will also allow sharing features across proposals that potentially have different end goals and feature sets. Finally, reaching consensus on a minimal kernel is a win for the team, showing that we do indeed have a layer of consensus even if it is not entirely clear.

This comment was marked as off-topic.


# What is our minimal kernel

* both browser + node need bare imports
- implementation to be discussed
* we cannot have dynamic path searching

This comment was marked as off-topic.

- requiring the full path is an issue for tooling and a long term solution is required
- migration strategies also have issue with this
* common.js backwards compat
- createRequireFunction does
- import.meta.require does not fail early enough

This comment was marked as off-topic.

- hold off on importing common.js until more progress is made on dynamic modules spec
* .mjs will be the only way to import ESM
- intention is to move forward with format databases to map extensions and support multiple use cases
* only supporting importing ESM

This comment was marked as off-topic.

This comment was marked as off-topic.

- no JSON
- no native modules
- createRequireFunction used to get these
- will come back with format database
* import.meta.url
* dynamic import

# How will we get from where we are to the minimal kernel

* removing importing of formats other than ESM
- no common.js
- no JSON
- no native modules
- implemented in https://github.com/nodejs/ecmascript-modules/pull/3
* removing of dynamic path searching
- no extension adding
- no directory resolution

This comment was marked as off-topic.

- no support for index.js
- still maintaining support for the main field
- implemented in https://github.com/nodejs/ecmascript-modules/pull/2
* adding createRequireFunction
- implemented in https://github.com/nodejs/node/pull/19360