angular/tools/esm-interop/BUILD.bazel
Paul Gschwendtner 9cd89569f5 build: create NodeJS ESM loader for supporting Bazel setup (#48521)
Replaces the existing ESM loader for dealing with external module
imports. This loader was introduced by Aspect for AIO `.mjs` scripts.

The loader will be used as foundation for a more extensive loader
that also properly handles first-party packages.

Additionally another loader is added, all packed as a single
loader because our current NodeJS version only supports a single
loader per node invocation. So we implement chaining ourselves.

The new loader will attempt rewriting `.js` extensions to `.mjs`,
also it will add `.mjs` if not already done. This is necessary
in the transition phase because we don't/cannot use explicit `.mts`
extensions and also we don't specify extensions in imports yet.

Long-term we would likely use `.mts` and explicit import extensions,
but it's not yet clear how we would sync this into g3 too.

PR Close #48521
2022-12-19 19:50:40 +00:00

15 lines
321 B
Text

package(default_visibility = ["//visibility:public"])
exports_files([
"esm-main-loader.mjs",
])
filegroup(
name = "loaders",
srcs = [
"esm-extension-loader.mjs",
"esm-main-loader.mjs",
"esm-node-module-loader.mjs",
"//third_party/github.com/lukeed/resolve.exports",
],
)