perf: avoid AST depth depending on pnpm workspace size (#2865)
This converts 2 `if/elif bazel_package == "pnpm-project-path"` blocks
into 2 constants and the `if/elif` is replaced with a lookup into the
constant. See the diffs of the snapshot files for the best outline of
the changes.
This prevents a reported `java.lang.StackOverflowError` from the bazel
starlark parser treating `elif` as nested `else: if`. This reduces the
`npm_link_all_packages()` from N `if/elif` statements into a single map
lookup. The tradeoff is when the generated `defs.bzl` is `load()`ed it
now has 2 giant maps declared at load time.
Overall I (and my robot assistants, and my testing on a repo with ~2k
pnpm workspace projects) think this has negligible impact on actually
performance but should avoid the `java.lang.StackOverflowError`.
### Changes are visible to end-users: no
### Test plan
- Covered by existing test cases
diff --git a/.aspect/config.axl b/.aspect/config.axl
index 2e89a04..526ef9c 100644
--- a/.aspect/config.axl
+++ b/.aspect/config.axl
@@ -44,6 +44,9 @@
"**/*.bzl",
"**/*.star",
],
+ "exclude_patterns": [
+ "**/snapshots/**",
+ ],
},
summary = "Format Starlark files using buildifier.",
)
diff --git a/e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl b/e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl
index aad9bee..2eca1e6 100644
--- a/e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl
+++ b/e2e/npm_translate_lock_disable_hooks/snapshots/defs.bzl
@@ -7,6 +7,16 @@
_IMPORTER_PACKAGES = [""]
+def _link_pkg_0():
+ link_0()
+ return [":node_modules/@aspect-test/c"], {
+ "@aspect-test": [":node_modules/@aspect-test/c"],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "": _link_pkg_0,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -29,12 +39,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "":
- link_0()
- link_targets = [":node_modules/@aspect-test/c"]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/c"],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -64,6 +71,12 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "": {
+ "prod": [":node_modules/@aspect-test/c"],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -73,9 +86,10 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "":
- if prod:
- link_targets.extend([":node_modules/@aspect-test/c"])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
diff --git a/e2e/npm_translate_lock_empty/snapshots/npm_defs.bzl b/e2e/npm_translate_lock_empty/snapshots/npm_defs.bzl
index 8f5f632..52648a6 100644
--- a/e2e/npm_translate_lock_empty/snapshots/npm_defs.bzl
+++ b/e2e/npm_translate_lock_empty/snapshots/npm_defs.bzl
@@ -59,6 +59,8 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -68,6 +70,10 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
diff --git a/e2e/npm_translate_lock_replace_packages/snapshots/npm_defs.bzl b/e2e/npm_translate_lock_replace_packages/snapshots/npm_defs.bzl
index 2dfa784..72a3fab 100644
--- a/e2e/npm_translate_lock_replace_packages/snapshots/npm_defs.bzl
+++ b/e2e/npm_translate_lock_replace_packages/snapshots/npm_defs.bzl
@@ -8,6 +8,18 @@
_IMPORTER_PACKAGES = [""]
+def _link_pkg_0():
+ link_0()
+ link_1()
+ return [
+ ":node_modules/chalk",
+ ":node_modules/lodash",
+ ], None
+
+_LINK_PACKAGE_FNS = {
+ "": _link_pkg_0,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -31,13 +43,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "":
- link_0()
- link_1()
- link_targets = [
- ":node_modules/chalk",
- ":node_modules/lodash",
- ]
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -67,6 +75,15 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "": {
+ "prod": [
+ ":node_modules/chalk",
+ ":node_modules/lodash",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -76,12 +93,10 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "":
- if prod:
- link_targets.extend([
- ":node_modules/chalk",
- ":node_modules/lodash",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
diff --git a/e2e/pnpm_lockfiles/v101/snapshots/defs.bzl b/e2e/pnpm_lockfiles/v101/snapshots/defs.bzl
index 29d01dc..928ba19 100644
--- a/e2e/pnpm_lockfiles/v101/snapshots/defs.bzl
+++ b/e2e/pnpm_lockfiles/v101/snapshots/defs.bzl
@@ -175,6 +175,248 @@
_IMPORTER_PACKAGES = ["<LOCKVERSION>", "projects/a", "projects/a-types", "projects/alts", "projects/b", "projects/c", "projects/d", "projects/peer-types", "projects/peers-combo-1", "projects/peers-combo-2", "vendored/is-number"]
+def _link_pkg_0():
+ link_0("@aspect-test-a-bad-scope")
+ link_0("@aspect-test-custom-scope/a")
+ link_0()
+ link_0("@aspect-test/a2")
+ link_0("aspect-test-a-no-scope")
+ link_0("aspect-test-a/no-at")
+ link_1(dev=True)
+ link_2()
+ link_8()
+ link_9("@aspect-test/h-is-only-optional")
+ link_37("jsonify")
+ link_38()
+ link_53("rollup-plugin-with-peers")
+ link_55(dev=True)
+ link_59(dev=True)
+ link_59("alias-types-node", dev=True)
+ link_60("alias-only-sizzle", dev=True)
+ link_70()
+ link_79()
+ link_87()
+ link_93("highlightjs-git-https-notar")
+ link_99("is-odd-v0")
+ link_100("is-odd-v1")
+ link_101("is-odd-v2")
+ link_102("is-odd-v3")
+ link_103()
+ link_103("is-odd-alias")
+ link_104("jquery-git-ssh-399b201")
+ link_105("jquery-github")
+ link_106("jquery-git-https-763ade6")
+ link_107("jquery-git-ssh-e61fccb")
+ link_108("jquery-http-git-f85d521")
+ link_113()
+ link_114()
+ link_123()
+ link_124("rollup3")
+ link_145(dev=True)
+ link_156()
+ link_157()
+ link_159()
+ _fp_link_0()
+ _fp_link_2()
+ _fp_link_2("alias-project-a")
+ _fp_link_3()
+ _fp_link_3("scoped/bad")
+ _fp_link_4()
+ _fp_link_5()
+ _fp_link_6()
+ _fp_link_7()
+ _fp_link_8()
+ return [
+ ":node_modules/@aspect-test-a-bad-scope",
+ ":node_modules/@aspect-test-custom-scope/a",
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/aspect-test-a-no-scope",
+ ":node_modules/aspect-test-a/no-at",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ":node_modules/jsonify",
+ ":node_modules/@isaacs/cliui",
+ ":node_modules/rollup-plugin-with-peers",
+ ":node_modules/@vscode/vsce-sign",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/highlightjs-git-https-notar",
+ ":node_modules/is-odd-v0",
+ ":node_modules/is-odd-v1",
+ ":node_modules/is-odd-v2",
+ ":node_modules/is-odd-v3",
+ ":node_modules/is-odd",
+ ":node_modules/is-odd-alias",
+ ":node_modules/jquery-git-ssh-399b201",
+ ":node_modules/jquery-github",
+ ":node_modules/jquery-git-https-763ade6",
+ ":node_modules/jquery-git-ssh-e61fccb",
+ ":node_modules/jquery-http-git-f85d521",
+ ":node_modules/lodash",
+ ":node_modules/meaning-of-life",
+ ":node_modules/rollup",
+ ":node_modules/rollup3",
+ ":node_modules/tslib",
+ ":node_modules/typescript",
+ ":node_modules/uvu",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/alias-project-a",
+ ":node_modules/@scoped/b",
+ ":node_modules/scoped/bad",
+ ":node_modules/@scoped/d",
+ ":node_modules/alternate-versions",
+ ":node_modules/test-c200-d200",
+ ":node_modules/test-c201-d200",
+ ":node_modules/test-peer-types",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ":node_modules/alias-types-node",
+ ":node_modules/alias-only-sizzle",
+ ":node_modules/sass-embedded",
+ ], {
+ "@aspect-test-a-bad-scop": [":node_modules/@aspect-test-a-bad-scope"],
+ "@aspect-test-custom-scope": [":node_modules/@aspect-test-custom-scope/a"],
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ],
+ "@isaacs": [":node_modules/@isaacs/cliui"],
+ "@types": [
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ],
+ "@vscode": [":node_modules/@vscode/vsce-sign"],
+ "@scoped": [
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ":node_modules/@scoped/d",
+ ],
+ }
+
+def _link_pkg_1():
+ link_2()
+ link_5()
+ return [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ }
+
+def _link_pkg_2():
+ link_3()
+ link_6()
+ return [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ }
+
+def _link_pkg_3():
+ link_37("jsonify", dev=True)
+ _fp_link_0()
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/jsonify",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+def _link_pkg_4():
+ link_59()
+ return [":node_modules/@types/node"], {
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_5():
+ link_59(dev=True)
+ _fp_link_2()
+ _fp_link_9()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@types/node",
+ ":node_modules/a-types",
+ ], {
+ "@types": [":node_modules/@types/node"],
+ "@scoped": [":node_modules/@scoped/a"],
+ }
+
+def _link_pkg_6():
+ link_110()
+ link_111("lodash-4.17.20")
+ link_112("lodash-4.17.21")
+ link_113("lodash-4.17.21-file")
+ return [
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.20",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-file",
+ ], None
+
+def _link_pkg_7():
+ _fp_link_2()
+ _fp_link_3()
+ _fp_link_9()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ":node_modules/a-types",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+def _link_pkg_8():
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "<LOCKVERSION>": _link_pkg_0,
+ "projects/peers-combo-2": _link_pkg_1,
+ "projects/peers-combo-1": _link_pkg_2,
+ "projects/peer-types": _link_pkg_3,
+ "projects/a-types": _link_pkg_4,
+ "projects/b": _link_pkg_5,
+ "projects/alts": _link_pkg_6,
+ "projects/c": _link_pkg_7,
+ "projects/d": _link_pkg_8,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -470,235 +712,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "<LOCKVERSION>":
- link_0("@aspect-test-a-bad-scope")
- link_0("@aspect-test-custom-scope/a")
- link_0()
- link_0("@aspect-test/a2")
- link_0("aspect-test-a-no-scope")
- link_0("aspect-test-a/no-at")
- link_1(dev=True)
- link_2()
- link_8()
- link_9("@aspect-test/h-is-only-optional")
- link_37("jsonify")
- link_38()
- link_53("rollup-plugin-with-peers")
- link_55(dev=True)
- link_59(dev=True)
- link_59("alias-types-node", dev=True)
- link_60("alias-only-sizzle", dev=True)
- link_70()
- link_79()
- link_87()
- link_93("highlightjs-git-https-notar")
- link_99("is-odd-v0")
- link_100("is-odd-v1")
- link_101("is-odd-v2")
- link_102("is-odd-v3")
- link_103()
- link_103("is-odd-alias")
- link_104("jquery-git-ssh-399b201")
- link_105("jquery-github")
- link_106("jquery-git-https-763ade6")
- link_107("jquery-git-ssh-e61fccb")
- link_108("jquery-http-git-f85d521")
- link_113()
- link_114()
- link_123()
- link_124("rollup3")
- link_145(dev=True)
- link_156()
- link_157()
- link_159()
- _fp_link_0()
- _fp_link_2()
- _fp_link_2("alias-project-a")
- _fp_link_3()
- _fp_link_3("scoped/bad")
- _fp_link_4()
- _fp_link_5()
- _fp_link_6()
- _fp_link_7()
- _fp_link_8()
- link_targets = [
- ":node_modules/@aspect-test-a-bad-scope",
- ":node_modules/@aspect-test-custom-scope/a",
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/aspect-test-a-no-scope",
- ":node_modules/aspect-test-a/no-at",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ":node_modules/jsonify",
- ":node_modules/@isaacs/cliui",
- ":node_modules/rollup-plugin-with-peers",
- ":node_modules/@vscode/vsce-sign",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/highlightjs-git-https-notar",
- ":node_modules/is-odd-v0",
- ":node_modules/is-odd-v1",
- ":node_modules/is-odd-v2",
- ":node_modules/is-odd-v3",
- ":node_modules/is-odd",
- ":node_modules/is-odd-alias",
- ":node_modules/jquery-git-ssh-399b201",
- ":node_modules/jquery-github",
- ":node_modules/jquery-git-https-763ade6",
- ":node_modules/jquery-git-ssh-e61fccb",
- ":node_modules/jquery-http-git-f85d521",
- ":node_modules/lodash",
- ":node_modules/meaning-of-life",
- ":node_modules/rollup",
- ":node_modules/rollup3",
- ":node_modules/tslib",
- ":node_modules/typescript",
- ":node_modules/uvu",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/alias-project-a",
- ":node_modules/@scoped/b",
- ":node_modules/scoped/bad",
- ":node_modules/@scoped/d",
- ":node_modules/alternate-versions",
- ":node_modules/test-c200-d200",
- ":node_modules/test-c201-d200",
- ":node_modules/test-peer-types",
- ":node_modules/@aspect-test/b",
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ":node_modules/alias-types-node",
- ":node_modules/alias-only-sizzle",
- ":node_modules/sass-embedded",
- ]
- scope_targets = {
- "@aspect-test-a-bad-scop": [":node_modules/@aspect-test-a-bad-scope"],
- "@aspect-test-custom-scope": [":node_modules/@aspect-test-custom-scope/a"],
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/@aspect-test/b",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ],
- "@isaacs": [":node_modules/@isaacs/cliui"],
- "@types": [
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ],
- "@vscode": [":node_modules/@vscode/vsce-sign"],
- "@scoped": [
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ":node_modules/@scoped/d",
- ],
- }
- elif bazel_package == "projects/peers-combo-2":
- link_2()
- link_5()
- link_targets = [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ],
- }
- elif bazel_package == "projects/peers-combo-1":
- link_3()
- link_6()
- link_targets = [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ],
- }
- elif bazel_package == "projects/peer-types":
- link_37("jsonify", dev=True)
- _fp_link_0()
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/jsonify",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
- elif bazel_package == "projects/a-types":
- link_59()
- link_targets = [":node_modules/@types/node"]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "projects/b":
- link_59(dev=True)
- _fp_link_2()
- _fp_link_9()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@types/node",
- ":node_modules/a-types",
- ]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- "@scoped": [":node_modules/@scoped/a"],
- }
- elif bazel_package == "projects/alts":
- link_110()
- link_111("lodash-4.17.20")
- link_112("lodash-4.17.21")
- link_113("lodash-4.17.21-file")
- link_targets = [
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.20",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-file",
- ]
- elif bazel_package == "projects/c":
- _fp_link_2()
- _fp_link_3()
- _fp_link_9()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ":node_modules/a-types",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
- elif bazel_package == "projects/d":
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -728,6 +744,116 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "<LOCKVERSION>": {
+ "prod": [
+ ":node_modules/@aspect-test-a-bad-scope",
+ ":node_modules/@aspect-test-custom-scope/a",
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/aspect-test-a-no-scope",
+ ":node_modules/aspect-test-a/no-at",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ":node_modules/jsonify",
+ ":node_modules/@isaacs/cliui",
+ ":node_modules/rollup-plugin-with-peers",
+ ":node_modules/@vscode/vsce-sign",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/highlightjs-git-https-notar",
+ ":node_modules/is-odd-v0",
+ ":node_modules/is-odd-v1",
+ ":node_modules/is-odd-v2",
+ ":node_modules/is-odd-v3",
+ ":node_modules/is-odd",
+ ":node_modules/is-odd-alias",
+ ":node_modules/jquery-git-ssh-399b201",
+ ":node_modules/jquery-github",
+ ":node_modules/jquery-git-https-763ade6",
+ ":node_modules/jquery-git-ssh-e61fccb",
+ ":node_modules/jquery-http-git-f85d521",
+ ":node_modules/lodash",
+ ":node_modules/meaning-of-life",
+ ":node_modules/rollup",
+ ":node_modules/rollup3",
+ ":node_modules/tslib",
+ ":node_modules/typescript",
+ ":node_modules/uvu",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/alias-project-a",
+ ":node_modules/@scoped/b",
+ ":node_modules/scoped/bad",
+ ":node_modules/@scoped/d",
+ ":node_modules/alternate-versions",
+ ":node_modules/test-c200-d200",
+ ":node_modules/test-c201-d200",
+ ":node_modules/test-peer-types",
+ ],
+ "dev": [
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ":node_modules/alias-types-node",
+ ":node_modules/alias-only-sizzle",
+ ":node_modules/sass-embedded",
+ ],
+ },
+ "projects/peers-combo-2": {
+ "prod": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ },
+ "projects/peers-combo-1": {
+ "prod": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ },
+ "projects/peer-types": {
+ "dev": [
+ ":node_modules/jsonify",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ },
+ "projects/a-types": {
+ "prod": [":node_modules/@types/node"],
+ },
+ "projects/b": {
+ "prod": [":node_modules/@scoped/a"],
+ "dev": [
+ ":node_modules/@types/node",
+ ":node_modules/a-types",
+ ],
+ },
+ "projects/alts": {
+ "prod": [
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.20",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-file",
+ ],
+ },
+ "projects/c": {
+ "prod": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ "dev": [":node_modules/a-types"],
+ },
+ "projects/d": {
+ "prod": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -737,118 +863,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "<LOCKVERSION>":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test-a-bad-scope",
- ":node_modules/@aspect-test-custom-scope/a",
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/aspect-test-a-no-scope",
- ":node_modules/aspect-test-a/no-at",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ":node_modules/jsonify",
- ":node_modules/@isaacs/cliui",
- ":node_modules/rollup-plugin-with-peers",
- ":node_modules/@vscode/vsce-sign",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/highlightjs-git-https-notar",
- ":node_modules/is-odd-v0",
- ":node_modules/is-odd-v1",
- ":node_modules/is-odd-v2",
- ":node_modules/is-odd-v3",
- ":node_modules/is-odd",
- ":node_modules/is-odd-alias",
- ":node_modules/jquery-git-ssh-399b201",
- ":node_modules/jquery-github",
- ":node_modules/jquery-git-https-763ade6",
- ":node_modules/jquery-git-ssh-e61fccb",
- ":node_modules/jquery-http-git-f85d521",
- ":node_modules/lodash",
- ":node_modules/meaning-of-life",
- ":node_modules/rollup",
- ":node_modules/rollup3",
- ":node_modules/tslib",
- ":node_modules/typescript",
- ":node_modules/uvu",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/alias-project-a",
- ":node_modules/@scoped/b",
- ":node_modules/scoped/bad",
- ":node_modules/@scoped/d",
- ":node_modules/alternate-versions",
- ":node_modules/test-c200-d200",
- ":node_modules/test-c201-d200",
- ":node_modules/test-peer-types",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@aspect-test/b",
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ":node_modules/alias-types-node",
- ":node_modules/alias-only-sizzle",
- ":node_modules/sass-embedded",
- ])
- elif bazel_package == "projects/peers-combo-2":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ])
- elif bazel_package == "projects/peers-combo-1":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ])
- elif bazel_package == "projects/peer-types":
- if dev:
- link_targets.extend([
- ":node_modules/jsonify",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
- elif bazel_package == "projects/a-types":
- if prod:
- link_targets.extend([":node_modules/@types/node"])
- elif bazel_package == "projects/b":
- if prod:
- link_targets.extend([":node_modules/@scoped/a"])
- if dev:
- link_targets.extend([
- ":node_modules/@types/node",
- ":node_modules/a-types",
- ])
- elif bazel_package == "projects/alts":
- if prod:
- link_targets.extend([
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.20",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-file",
- ])
- elif bazel_package == "projects/c":
- if prod:
- link_targets.extend([
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
- if dev:
- link_targets.extend([":node_modules/a-types"])
- elif bazel_package == "projects/d":
- if prod:
- link_targets.extend([
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "@scoped/c" package
diff --git a/e2e/pnpm_lockfiles/v110/snapshots/defs.bzl b/e2e/pnpm_lockfiles/v110/snapshots/defs.bzl
index bd445ce..c05a6c6 100644
--- a/e2e/pnpm_lockfiles/v110/snapshots/defs.bzl
+++ b/e2e/pnpm_lockfiles/v110/snapshots/defs.bzl
@@ -175,6 +175,248 @@
_IMPORTER_PACKAGES = ["<LOCKVERSION>", "projects/a", "projects/a-types", "projects/alts", "projects/b", "projects/c", "projects/d", "projects/peer-types", "projects/peers-combo-1", "projects/peers-combo-2", "vendored/is-number"]
+def _link_pkg_0():
+ link_0("@aspect-test-a-bad-scope")
+ link_0("@aspect-test-custom-scope/a")
+ link_0()
+ link_0("@aspect-test/a2")
+ link_0("aspect-test-a-no-scope")
+ link_0("aspect-test-a/no-at")
+ link_1(dev=True)
+ link_2()
+ link_8()
+ link_9("@aspect-test/h-is-only-optional")
+ link_37("jsonify")
+ link_38()
+ link_53("rollup-plugin-with-peers")
+ link_55(dev=True)
+ link_59(dev=True)
+ link_59("alias-types-node", dev=True)
+ link_60("alias-only-sizzle", dev=True)
+ link_70()
+ link_79()
+ link_87()
+ link_93("highlightjs-git-https-notar")
+ link_99("is-odd-v0")
+ link_100("is-odd-v1")
+ link_101("is-odd-v2")
+ link_102("is-odd-v3")
+ link_103()
+ link_103("is-odd-alias")
+ link_104("jquery-git-https-763ade6")
+ link_105("jquery-git-ssh-399b201")
+ link_106("jquery-github")
+ link_107("jquery-git-ssh-e61fccb")
+ link_108("jquery-http-git-f85d521")
+ link_113()
+ link_114()
+ link_123()
+ link_124("rollup3")
+ link_145(dev=True)
+ link_156()
+ link_157()
+ link_159()
+ _fp_link_0()
+ _fp_link_2()
+ _fp_link_2("alias-project-a")
+ _fp_link_3()
+ _fp_link_3("scoped/bad")
+ _fp_link_4()
+ _fp_link_5()
+ _fp_link_6()
+ _fp_link_7()
+ _fp_link_8()
+ return [
+ ":node_modules/@aspect-test-a-bad-scope",
+ ":node_modules/@aspect-test-custom-scope/a",
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/aspect-test-a-no-scope",
+ ":node_modules/aspect-test-a/no-at",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ":node_modules/jsonify",
+ ":node_modules/@isaacs/cliui",
+ ":node_modules/rollup-plugin-with-peers",
+ ":node_modules/@vscode/vsce-sign",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/highlightjs-git-https-notar",
+ ":node_modules/is-odd-v0",
+ ":node_modules/is-odd-v1",
+ ":node_modules/is-odd-v2",
+ ":node_modules/is-odd-v3",
+ ":node_modules/is-odd",
+ ":node_modules/is-odd-alias",
+ ":node_modules/jquery-git-https-763ade6",
+ ":node_modules/jquery-git-ssh-399b201",
+ ":node_modules/jquery-github",
+ ":node_modules/jquery-git-ssh-e61fccb",
+ ":node_modules/jquery-http-git-f85d521",
+ ":node_modules/lodash",
+ ":node_modules/meaning-of-life",
+ ":node_modules/rollup",
+ ":node_modules/rollup3",
+ ":node_modules/tslib",
+ ":node_modules/typescript",
+ ":node_modules/uvu",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/alias-project-a",
+ ":node_modules/@scoped/b",
+ ":node_modules/scoped/bad",
+ ":node_modules/@scoped/d",
+ ":node_modules/alternate-versions",
+ ":node_modules/test-c200-d200",
+ ":node_modules/test-c201-d200",
+ ":node_modules/test-peer-types",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ":node_modules/alias-types-node",
+ ":node_modules/alias-only-sizzle",
+ ":node_modules/sass-embedded",
+ ], {
+ "@aspect-test-a-bad-scop": [":node_modules/@aspect-test-a-bad-scope"],
+ "@aspect-test-custom-scope": [":node_modules/@aspect-test-custom-scope/a"],
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ],
+ "@isaacs": [":node_modules/@isaacs/cliui"],
+ "@types": [
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ],
+ "@vscode": [":node_modules/@vscode/vsce-sign"],
+ "@scoped": [
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ":node_modules/@scoped/d",
+ ],
+ }
+
+def _link_pkg_1():
+ link_2()
+ link_5()
+ return [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ }
+
+def _link_pkg_2():
+ link_3()
+ link_6()
+ return [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ }
+
+def _link_pkg_3():
+ link_37("jsonify", dev=True)
+ _fp_link_0()
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/jsonify",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+def _link_pkg_4():
+ link_59()
+ return [":node_modules/@types/node"], {
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_5():
+ link_59(dev=True)
+ _fp_link_2()
+ _fp_link_9()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@types/node",
+ ":node_modules/a-types",
+ ], {
+ "@types": [":node_modules/@types/node"],
+ "@scoped": [":node_modules/@scoped/a"],
+ }
+
+def _link_pkg_6():
+ link_110()
+ link_111("lodash-4.17.20")
+ link_112("lodash-4.17.21")
+ link_113("lodash-4.17.21-file")
+ return [
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.20",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-file",
+ ], None
+
+def _link_pkg_7():
+ _fp_link_2()
+ _fp_link_3()
+ _fp_link_9()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ":node_modules/a-types",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+def _link_pkg_8():
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "<LOCKVERSION>": _link_pkg_0,
+ "projects/peers-combo-2": _link_pkg_1,
+ "projects/peers-combo-1": _link_pkg_2,
+ "projects/peer-types": _link_pkg_3,
+ "projects/a-types": _link_pkg_4,
+ "projects/b": _link_pkg_5,
+ "projects/alts": _link_pkg_6,
+ "projects/c": _link_pkg_7,
+ "projects/d": _link_pkg_8,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -470,235 +712,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "<LOCKVERSION>":
- link_0("@aspect-test-a-bad-scope")
- link_0("@aspect-test-custom-scope/a")
- link_0()
- link_0("@aspect-test/a2")
- link_0("aspect-test-a-no-scope")
- link_0("aspect-test-a/no-at")
- link_1(dev=True)
- link_2()
- link_8()
- link_9("@aspect-test/h-is-only-optional")
- link_37("jsonify")
- link_38()
- link_53("rollup-plugin-with-peers")
- link_55(dev=True)
- link_59(dev=True)
- link_59("alias-types-node", dev=True)
- link_60("alias-only-sizzle", dev=True)
- link_70()
- link_79()
- link_87()
- link_93("highlightjs-git-https-notar")
- link_99("is-odd-v0")
- link_100("is-odd-v1")
- link_101("is-odd-v2")
- link_102("is-odd-v3")
- link_103()
- link_103("is-odd-alias")
- link_104("jquery-git-https-763ade6")
- link_105("jquery-git-ssh-399b201")
- link_106("jquery-github")
- link_107("jquery-git-ssh-e61fccb")
- link_108("jquery-http-git-f85d521")
- link_113()
- link_114()
- link_123()
- link_124("rollup3")
- link_145(dev=True)
- link_156()
- link_157()
- link_159()
- _fp_link_0()
- _fp_link_2()
- _fp_link_2("alias-project-a")
- _fp_link_3()
- _fp_link_3("scoped/bad")
- _fp_link_4()
- _fp_link_5()
- _fp_link_6()
- _fp_link_7()
- _fp_link_8()
- link_targets = [
- ":node_modules/@aspect-test-a-bad-scope",
- ":node_modules/@aspect-test-custom-scope/a",
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/aspect-test-a-no-scope",
- ":node_modules/aspect-test-a/no-at",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ":node_modules/jsonify",
- ":node_modules/@isaacs/cliui",
- ":node_modules/rollup-plugin-with-peers",
- ":node_modules/@vscode/vsce-sign",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/highlightjs-git-https-notar",
- ":node_modules/is-odd-v0",
- ":node_modules/is-odd-v1",
- ":node_modules/is-odd-v2",
- ":node_modules/is-odd-v3",
- ":node_modules/is-odd",
- ":node_modules/is-odd-alias",
- ":node_modules/jquery-git-https-763ade6",
- ":node_modules/jquery-git-ssh-399b201",
- ":node_modules/jquery-github",
- ":node_modules/jquery-git-ssh-e61fccb",
- ":node_modules/jquery-http-git-f85d521",
- ":node_modules/lodash",
- ":node_modules/meaning-of-life",
- ":node_modules/rollup",
- ":node_modules/rollup3",
- ":node_modules/tslib",
- ":node_modules/typescript",
- ":node_modules/uvu",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/alias-project-a",
- ":node_modules/@scoped/b",
- ":node_modules/scoped/bad",
- ":node_modules/@scoped/d",
- ":node_modules/alternate-versions",
- ":node_modules/test-c200-d200",
- ":node_modules/test-c201-d200",
- ":node_modules/test-peer-types",
- ":node_modules/@aspect-test/b",
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ":node_modules/alias-types-node",
- ":node_modules/alias-only-sizzle",
- ":node_modules/sass-embedded",
- ]
- scope_targets = {
- "@aspect-test-a-bad-scop": [":node_modules/@aspect-test-a-bad-scope"],
- "@aspect-test-custom-scope": [":node_modules/@aspect-test-custom-scope/a"],
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/@aspect-test/b",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ],
- "@isaacs": [":node_modules/@isaacs/cliui"],
- "@types": [
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ],
- "@vscode": [":node_modules/@vscode/vsce-sign"],
- "@scoped": [
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ":node_modules/@scoped/d",
- ],
- }
- elif bazel_package == "projects/peers-combo-2":
- link_2()
- link_5()
- link_targets = [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ],
- }
- elif bazel_package == "projects/peers-combo-1":
- link_3()
- link_6()
- link_targets = [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ],
- }
- elif bazel_package == "projects/peer-types":
- link_37("jsonify", dev=True)
- _fp_link_0()
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/jsonify",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
- elif bazel_package == "projects/a-types":
- link_59()
- link_targets = [":node_modules/@types/node"]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "projects/b":
- link_59(dev=True)
- _fp_link_2()
- _fp_link_9()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@types/node",
- ":node_modules/a-types",
- ]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- "@scoped": [":node_modules/@scoped/a"],
- }
- elif bazel_package == "projects/alts":
- link_110()
- link_111("lodash-4.17.20")
- link_112("lodash-4.17.21")
- link_113("lodash-4.17.21-file")
- link_targets = [
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.20",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-file",
- ]
- elif bazel_package == "projects/c":
- _fp_link_2()
- _fp_link_3()
- _fp_link_9()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ":node_modules/a-types",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
- elif bazel_package == "projects/d":
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -728,6 +744,116 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "<LOCKVERSION>": {
+ "prod": [
+ ":node_modules/@aspect-test-a-bad-scope",
+ ":node_modules/@aspect-test-custom-scope/a",
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/aspect-test-a-no-scope",
+ ":node_modules/aspect-test-a/no-at",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ":node_modules/jsonify",
+ ":node_modules/@isaacs/cliui",
+ ":node_modules/rollup-plugin-with-peers",
+ ":node_modules/@vscode/vsce-sign",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/highlightjs-git-https-notar",
+ ":node_modules/is-odd-v0",
+ ":node_modules/is-odd-v1",
+ ":node_modules/is-odd-v2",
+ ":node_modules/is-odd-v3",
+ ":node_modules/is-odd",
+ ":node_modules/is-odd-alias",
+ ":node_modules/jquery-git-https-763ade6",
+ ":node_modules/jquery-git-ssh-399b201",
+ ":node_modules/jquery-github",
+ ":node_modules/jquery-git-ssh-e61fccb",
+ ":node_modules/jquery-http-git-f85d521",
+ ":node_modules/lodash",
+ ":node_modules/meaning-of-life",
+ ":node_modules/rollup",
+ ":node_modules/rollup3",
+ ":node_modules/tslib",
+ ":node_modules/typescript",
+ ":node_modules/uvu",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/alias-project-a",
+ ":node_modules/@scoped/b",
+ ":node_modules/scoped/bad",
+ ":node_modules/@scoped/d",
+ ":node_modules/alternate-versions",
+ ":node_modules/test-c200-d200",
+ ":node_modules/test-c201-d200",
+ ":node_modules/test-peer-types",
+ ],
+ "dev": [
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ":node_modules/alias-types-node",
+ ":node_modules/alias-only-sizzle",
+ ":node_modules/sass-embedded",
+ ],
+ },
+ "projects/peers-combo-2": {
+ "prod": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ },
+ "projects/peers-combo-1": {
+ "prod": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ },
+ "projects/peer-types": {
+ "dev": [
+ ":node_modules/jsonify",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ },
+ "projects/a-types": {
+ "prod": [":node_modules/@types/node"],
+ },
+ "projects/b": {
+ "prod": [":node_modules/@scoped/a"],
+ "dev": [
+ ":node_modules/@types/node",
+ ":node_modules/a-types",
+ ],
+ },
+ "projects/alts": {
+ "prod": [
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.20",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-file",
+ ],
+ },
+ "projects/c": {
+ "prod": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ "dev": [":node_modules/a-types"],
+ },
+ "projects/d": {
+ "prod": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -737,118 +863,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "<LOCKVERSION>":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test-a-bad-scope",
- ":node_modules/@aspect-test-custom-scope/a",
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/aspect-test-a-no-scope",
- ":node_modules/aspect-test-a/no-at",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ":node_modules/jsonify",
- ":node_modules/@isaacs/cliui",
- ":node_modules/rollup-plugin-with-peers",
- ":node_modules/@vscode/vsce-sign",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/highlightjs-git-https-notar",
- ":node_modules/is-odd-v0",
- ":node_modules/is-odd-v1",
- ":node_modules/is-odd-v2",
- ":node_modules/is-odd-v3",
- ":node_modules/is-odd",
- ":node_modules/is-odd-alias",
- ":node_modules/jquery-git-https-763ade6",
- ":node_modules/jquery-git-ssh-399b201",
- ":node_modules/jquery-github",
- ":node_modules/jquery-git-ssh-e61fccb",
- ":node_modules/jquery-http-git-f85d521",
- ":node_modules/lodash",
- ":node_modules/meaning-of-life",
- ":node_modules/rollup",
- ":node_modules/rollup3",
- ":node_modules/tslib",
- ":node_modules/typescript",
- ":node_modules/uvu",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/alias-project-a",
- ":node_modules/@scoped/b",
- ":node_modules/scoped/bad",
- ":node_modules/@scoped/d",
- ":node_modules/alternate-versions",
- ":node_modules/test-c200-d200",
- ":node_modules/test-c201-d200",
- ":node_modules/test-peer-types",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@aspect-test/b",
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ":node_modules/alias-types-node",
- ":node_modules/alias-only-sizzle",
- ":node_modules/sass-embedded",
- ])
- elif bazel_package == "projects/peers-combo-2":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ])
- elif bazel_package == "projects/peers-combo-1":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ])
- elif bazel_package == "projects/peer-types":
- if dev:
- link_targets.extend([
- ":node_modules/jsonify",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
- elif bazel_package == "projects/a-types":
- if prod:
- link_targets.extend([":node_modules/@types/node"])
- elif bazel_package == "projects/b":
- if prod:
- link_targets.extend([":node_modules/@scoped/a"])
- if dev:
- link_targets.extend([
- ":node_modules/@types/node",
- ":node_modules/a-types",
- ])
- elif bazel_package == "projects/alts":
- if prod:
- link_targets.extend([
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.20",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-file",
- ])
- elif bazel_package == "projects/c":
- if prod:
- link_targets.extend([
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
- if dev:
- link_targets.extend([":node_modules/a-types"])
- elif bazel_package == "projects/d":
- if prod:
- link_targets.extend([
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "@scoped/c" package
diff --git a/e2e/pnpm_lockfiles/v90/snapshots/defs.bzl b/e2e/pnpm_lockfiles/v90/snapshots/defs.bzl
index fe00848..3130d02 100644
--- a/e2e/pnpm_lockfiles/v90/snapshots/defs.bzl
+++ b/e2e/pnpm_lockfiles/v90/snapshots/defs.bzl
@@ -175,6 +175,248 @@
_IMPORTER_PACKAGES = ["<LOCKVERSION>", "projects/a", "projects/a-types", "projects/alts", "projects/b", "projects/c", "projects/d", "projects/peer-types", "projects/peers-combo-1", "projects/peers-combo-2", "vendored/is-number"]
+def _link_pkg_0():
+ link_0("@aspect-test-a-bad-scope")
+ link_0("@aspect-test-custom-scope/a")
+ link_0()
+ link_0("@aspect-test/a2")
+ link_0("aspect-test-a-no-scope")
+ link_0("aspect-test-a/no-at")
+ link_1(dev=True)
+ link_2()
+ link_8()
+ link_9("@aspect-test/h-is-only-optional")
+ link_37("jsonify")
+ link_38()
+ link_53("rollup-plugin-with-peers")
+ link_55(dev=True)
+ link_59(dev=True)
+ link_59("alias-types-node", dev=True)
+ link_60("alias-only-sizzle", dev=True)
+ link_70()
+ link_79()
+ link_87()
+ link_93("highlightjs-git-https-notar")
+ link_99("is-odd-v0")
+ link_100("is-odd-v1")
+ link_101("is-odd-v2")
+ link_102("is-odd-v3")
+ link_103()
+ link_103("is-odd-alias")
+ link_104("jquery-git-ssh-399b201")
+ link_105("jquery-github")
+ link_106("jquery-git-https-763ade6")
+ link_107("jquery-git-ssh-e61fccb")
+ link_108("jquery-http-git-f85d521")
+ link_113()
+ link_114()
+ link_123()
+ link_124("rollup3")
+ link_145(dev=True)
+ link_156()
+ link_157()
+ link_159()
+ _fp_link_0()
+ _fp_link_2()
+ _fp_link_2("alias-project-a")
+ _fp_link_3()
+ _fp_link_3("scoped/bad")
+ _fp_link_4()
+ _fp_link_5()
+ _fp_link_6()
+ _fp_link_7()
+ _fp_link_8()
+ return [
+ ":node_modules/@aspect-test-a-bad-scope",
+ ":node_modules/@aspect-test-custom-scope/a",
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/aspect-test-a-no-scope",
+ ":node_modules/aspect-test-a/no-at",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ":node_modules/jsonify",
+ ":node_modules/@isaacs/cliui",
+ ":node_modules/rollup-plugin-with-peers",
+ ":node_modules/@vscode/vsce-sign",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/highlightjs-git-https-notar",
+ ":node_modules/is-odd-v0",
+ ":node_modules/is-odd-v1",
+ ":node_modules/is-odd-v2",
+ ":node_modules/is-odd-v3",
+ ":node_modules/is-odd",
+ ":node_modules/is-odd-alias",
+ ":node_modules/jquery-git-ssh-399b201",
+ ":node_modules/jquery-github",
+ ":node_modules/jquery-git-https-763ade6",
+ ":node_modules/jquery-git-ssh-e61fccb",
+ ":node_modules/jquery-http-git-f85d521",
+ ":node_modules/lodash",
+ ":node_modules/meaning-of-life",
+ ":node_modules/rollup",
+ ":node_modules/rollup3",
+ ":node_modules/tslib",
+ ":node_modules/typescript",
+ ":node_modules/uvu",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/alias-project-a",
+ ":node_modules/@scoped/b",
+ ":node_modules/scoped/bad",
+ ":node_modules/@scoped/d",
+ ":node_modules/alternate-versions",
+ ":node_modules/test-c200-d200",
+ ":node_modules/test-c201-d200",
+ ":node_modules/test-peer-types",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ":node_modules/alias-types-node",
+ ":node_modules/alias-only-sizzle",
+ ":node_modules/sass-embedded",
+ ], {
+ "@aspect-test-a-bad-scop": [":node_modules/@aspect-test-a-bad-scope"],
+ "@aspect-test-custom-scope": [":node_modules/@aspect-test-custom-scope/a"],
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ],
+ "@isaacs": [":node_modules/@isaacs/cliui"],
+ "@types": [
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ],
+ "@vscode": [":node_modules/@vscode/vsce-sign"],
+ "@scoped": [
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ":node_modules/@scoped/d",
+ ],
+ }
+
+def _link_pkg_1():
+ link_2()
+ link_5()
+ return [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ }
+
+def _link_pkg_2():
+ link_3()
+ link_6()
+ return [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ }
+
+def _link_pkg_3():
+ link_37("jsonify", dev=True)
+ _fp_link_0()
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/jsonify",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+def _link_pkg_4():
+ link_59()
+ return [":node_modules/@types/node"], {
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_5():
+ link_59(dev=True)
+ _fp_link_2()
+ _fp_link_9()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@types/node",
+ ":node_modules/a-types",
+ ], {
+ "@types": [":node_modules/@types/node"],
+ "@scoped": [":node_modules/@scoped/a"],
+ }
+
+def _link_pkg_6():
+ link_110()
+ link_111("lodash-4.17.20")
+ link_112("lodash-4.17.21")
+ link_113("lodash-4.17.21-file")
+ return [
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.20",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-file",
+ ], None
+
+def _link_pkg_7():
+ _fp_link_2()
+ _fp_link_3()
+ _fp_link_9()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ":node_modules/a-types",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+def _link_pkg_8():
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ], {
+ "@scoped": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "<LOCKVERSION>": _link_pkg_0,
+ "projects/peers-combo-2": _link_pkg_1,
+ "projects/peers-combo-1": _link_pkg_2,
+ "projects/peer-types": _link_pkg_3,
+ "projects/a-types": _link_pkg_4,
+ "projects/b": _link_pkg_5,
+ "projects/alts": _link_pkg_6,
+ "projects/c": _link_pkg_7,
+ "projects/d": _link_pkg_8,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -470,235 +712,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "<LOCKVERSION>":
- link_0("@aspect-test-a-bad-scope")
- link_0("@aspect-test-custom-scope/a")
- link_0()
- link_0("@aspect-test/a2")
- link_0("aspect-test-a-no-scope")
- link_0("aspect-test-a/no-at")
- link_1(dev=True)
- link_2()
- link_8()
- link_9("@aspect-test/h-is-only-optional")
- link_37("jsonify")
- link_38()
- link_53("rollup-plugin-with-peers")
- link_55(dev=True)
- link_59(dev=True)
- link_59("alias-types-node", dev=True)
- link_60("alias-only-sizzle", dev=True)
- link_70()
- link_79()
- link_87()
- link_93("highlightjs-git-https-notar")
- link_99("is-odd-v0")
- link_100("is-odd-v1")
- link_101("is-odd-v2")
- link_102("is-odd-v3")
- link_103()
- link_103("is-odd-alias")
- link_104("jquery-git-ssh-399b201")
- link_105("jquery-github")
- link_106("jquery-git-https-763ade6")
- link_107("jquery-git-ssh-e61fccb")
- link_108("jquery-http-git-f85d521")
- link_113()
- link_114()
- link_123()
- link_124("rollup3")
- link_145(dev=True)
- link_156()
- link_157()
- link_159()
- _fp_link_0()
- _fp_link_2()
- _fp_link_2("alias-project-a")
- _fp_link_3()
- _fp_link_3("scoped/bad")
- _fp_link_4()
- _fp_link_5()
- _fp_link_6()
- _fp_link_7()
- _fp_link_8()
- link_targets = [
- ":node_modules/@aspect-test-a-bad-scope",
- ":node_modules/@aspect-test-custom-scope/a",
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/aspect-test-a-no-scope",
- ":node_modules/aspect-test-a/no-at",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ":node_modules/jsonify",
- ":node_modules/@isaacs/cliui",
- ":node_modules/rollup-plugin-with-peers",
- ":node_modules/@vscode/vsce-sign",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/highlightjs-git-https-notar",
- ":node_modules/is-odd-v0",
- ":node_modules/is-odd-v1",
- ":node_modules/is-odd-v2",
- ":node_modules/is-odd-v3",
- ":node_modules/is-odd",
- ":node_modules/is-odd-alias",
- ":node_modules/jquery-git-ssh-399b201",
- ":node_modules/jquery-github",
- ":node_modules/jquery-git-https-763ade6",
- ":node_modules/jquery-git-ssh-e61fccb",
- ":node_modules/jquery-http-git-f85d521",
- ":node_modules/lodash",
- ":node_modules/meaning-of-life",
- ":node_modules/rollup",
- ":node_modules/rollup3",
- ":node_modules/tslib",
- ":node_modules/typescript",
- ":node_modules/uvu",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/alias-project-a",
- ":node_modules/@scoped/b",
- ":node_modules/scoped/bad",
- ":node_modules/@scoped/d",
- ":node_modules/alternate-versions",
- ":node_modules/test-c200-d200",
- ":node_modules/test-c201-d200",
- ":node_modules/test-peer-types",
- ":node_modules/@aspect-test/b",
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ":node_modules/alias-types-node",
- ":node_modules/alias-only-sizzle",
- ":node_modules/sass-embedded",
- ]
- scope_targets = {
- "@aspect-test-a-bad-scop": [":node_modules/@aspect-test-a-bad-scope"],
- "@aspect-test-custom-scope": [":node_modules/@aspect-test-custom-scope/a"],
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/@aspect-test/b",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ],
- "@isaacs": [":node_modules/@isaacs/cliui"],
- "@types": [
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ],
- "@vscode": [":node_modules/@vscode/vsce-sign"],
- "@scoped": [
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ":node_modules/@scoped/d",
- ],
- }
- elif bazel_package == "projects/peers-combo-2":
- link_2()
- link_5()
- link_targets = [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ],
- }
- elif bazel_package == "projects/peers-combo-1":
- link_3()
- link_6()
- link_targets = [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ],
- }
- elif bazel_package == "projects/peer-types":
- link_37("jsonify", dev=True)
- _fp_link_0()
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/jsonify",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
- elif bazel_package == "projects/a-types":
- link_59()
- link_targets = [":node_modules/@types/node"]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "projects/b":
- link_59(dev=True)
- _fp_link_2()
- _fp_link_9()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@types/node",
- ":node_modules/a-types",
- ]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- "@scoped": [":node_modules/@scoped/a"],
- }
- elif bazel_package == "projects/alts":
- link_110()
- link_111("lodash-4.17.20")
- link_112("lodash-4.17.21")
- link_113("lodash-4.17.21-file")
- link_targets = [
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.20",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-file",
- ]
- elif bazel_package == "projects/c":
- _fp_link_2()
- _fp_link_3()
- _fp_link_9()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ":node_modules/a-types",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
- elif bazel_package == "projects/d":
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ]
- scope_targets = {
- "@scoped": [
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -728,6 +744,116 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "<LOCKVERSION>": {
+ "prod": [
+ ":node_modules/@aspect-test-a-bad-scope",
+ ":node_modules/@aspect-test-custom-scope/a",
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/a2",
+ ":node_modules/aspect-test-a-no-scope",
+ ":node_modules/aspect-test-a/no-at",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/e",
+ ":node_modules/@aspect-test/h-is-only-optional",
+ ":node_modules/jsonify",
+ ":node_modules/@isaacs/cliui",
+ ":node_modules/rollup-plugin-with-peers",
+ ":node_modules/@vscode/vsce-sign",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/highlightjs-git-https-notar",
+ ":node_modules/is-odd-v0",
+ ":node_modules/is-odd-v1",
+ ":node_modules/is-odd-v2",
+ ":node_modules/is-odd-v3",
+ ":node_modules/is-odd",
+ ":node_modules/is-odd-alias",
+ ":node_modules/jquery-git-ssh-399b201",
+ ":node_modules/jquery-github",
+ ":node_modules/jquery-git-https-763ade6",
+ ":node_modules/jquery-git-ssh-e61fccb",
+ ":node_modules/jquery-http-git-f85d521",
+ ":node_modules/lodash",
+ ":node_modules/meaning-of-life",
+ ":node_modules/rollup",
+ ":node_modules/rollup3",
+ ":node_modules/tslib",
+ ":node_modules/typescript",
+ ":node_modules/uvu",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/alias-project-a",
+ ":node_modules/@scoped/b",
+ ":node_modules/scoped/bad",
+ ":node_modules/@scoped/d",
+ ":node_modules/alternate-versions",
+ ":node_modules/test-c200-d200",
+ ":node_modules/test-c201-d200",
+ ":node_modules/test-peer-types",
+ ],
+ "dev": [
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@types/archiver",
+ ":node_modules/@types/node",
+ ":node_modules/alias-types-node",
+ ":node_modules/alias-only-sizzle",
+ ":node_modules/sass-embedded",
+ ],
+ },
+ "projects/peers-combo-2": {
+ "prod": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ },
+ "projects/peers-combo-1": {
+ "prod": [
+ ":node_modules/@aspect-test/c",
+ ":node_modules/@aspect-test/d",
+ ],
+ },
+ "projects/peer-types": {
+ "dev": [
+ ":node_modules/jsonify",
+ ":node_modules/@scoped/c",
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ },
+ "projects/a-types": {
+ "prod": [":node_modules/@types/node"],
+ },
+ "projects/b": {
+ "prod": [":node_modules/@scoped/a"],
+ "dev": [
+ ":node_modules/@types/node",
+ ":node_modules/a-types",
+ ],
+ },
+ "projects/alts": {
+ "prod": [
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.20",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-file",
+ ],
+ },
+ "projects/c": {
+ "prod": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ "dev": [":node_modules/a-types"],
+ },
+ "projects/d": {
+ "prod": [
+ ":node_modules/@scoped/a",
+ ":node_modules/@scoped/b",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -737,118 +863,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "<LOCKVERSION>":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test-a-bad-scope",
- ":node_modules/@aspect-test-custom-scope/a",
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/a2",
- ":node_modules/aspect-test-a-no-scope",
- ":node_modules/aspect-test-a/no-at",
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/e",
- ":node_modules/@aspect-test/h-is-only-optional",
- ":node_modules/jsonify",
- ":node_modules/@isaacs/cliui",
- ":node_modules/rollup-plugin-with-peers",
- ":node_modules/@vscode/vsce-sign",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/highlightjs-git-https-notar",
- ":node_modules/is-odd-v0",
- ":node_modules/is-odd-v1",
- ":node_modules/is-odd-v2",
- ":node_modules/is-odd-v3",
- ":node_modules/is-odd",
- ":node_modules/is-odd-alias",
- ":node_modules/jquery-git-ssh-399b201",
- ":node_modules/jquery-github",
- ":node_modules/jquery-git-https-763ade6",
- ":node_modules/jquery-git-ssh-e61fccb",
- ":node_modules/jquery-http-git-f85d521",
- ":node_modules/lodash",
- ":node_modules/meaning-of-life",
- ":node_modules/rollup",
- ":node_modules/rollup3",
- ":node_modules/tslib",
- ":node_modules/typescript",
- ":node_modules/uvu",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/alias-project-a",
- ":node_modules/@scoped/b",
- ":node_modules/scoped/bad",
- ":node_modules/@scoped/d",
- ":node_modules/alternate-versions",
- ":node_modules/test-c200-d200",
- ":node_modules/test-c201-d200",
- ":node_modules/test-peer-types",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@aspect-test/b",
- ":node_modules/@types/archiver",
- ":node_modules/@types/node",
- ":node_modules/alias-types-node",
- ":node_modules/alias-only-sizzle",
- ":node_modules/sass-embedded",
- ])
- elif bazel_package == "projects/peers-combo-2":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ])
- elif bazel_package == "projects/peers-combo-1":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/c",
- ":node_modules/@aspect-test/d",
- ])
- elif bazel_package == "projects/peer-types":
- if dev:
- link_targets.extend([
- ":node_modules/jsonify",
- ":node_modules/@scoped/c",
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
- elif bazel_package == "projects/a-types":
- if prod:
- link_targets.extend([":node_modules/@types/node"])
- elif bazel_package == "projects/b":
- if prod:
- link_targets.extend([":node_modules/@scoped/a"])
- if dev:
- link_targets.extend([
- ":node_modules/@types/node",
- ":node_modules/a-types",
- ])
- elif bazel_package == "projects/alts":
- if prod:
- link_targets.extend([
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.20",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-file",
- ])
- elif bazel_package == "projects/c":
- if prod:
- link_targets.extend([
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
- if dev:
- link_targets.extend([":node_modules/a-types"])
- elif bazel_package == "projects/d":
- if prod:
- link_targets.extend([
- ":node_modules/@scoped/a",
- ":node_modules/@scoped/b",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "@scoped/c" package
diff --git a/e2e/pnpm_workspace/snapshots/defs.bzl b/e2e/pnpm_workspace/snapshots/defs.bzl
index 0721eae..2ff4674 100644
--- a/e2e/pnpm_workspace/snapshots/defs.bzl
+++ b/e2e/pnpm_workspace/snapshots/defs.bzl
@@ -25,6 +25,146 @@
_IMPORTER_PACKAGES = ["", "app/a", "app/b", "app/c", "app/d", "lib/a", "lib/b", "lib/c", "lib/d", "lib/d/e", "lib/d/f"]
+def _link_pkg_0():
+ link_0()
+ link_1(dev=True)
+ link_2()
+ link_10()
+ link_11()
+ return [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/lodash",
+ ":node_modules/typescript",
+ ":node_modules/@aspect-test/b",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@aspect-test/c",
+ ],
+ }
+
+def _link_pkg_1():
+ link_0()
+ link_6()
+ _fp_link_2()
+ return [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/a",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ],
+ "@lib": [":node_modules/@lib/a"],
+ }
+
+def _link_pkg_2():
+ link_0()
+ link_6()
+ _fp_link_4()
+ return [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/c",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ],
+ "@lib": [":node_modules/@lib/c"],
+ }
+
+def _link_pkg_3():
+ link_3()
+ link_8("alias-2")
+ _fp_link_6()
+ _fp_link_7()
+ return [
+ ":node_modules/@aspect-test/d",
+ ":node_modules/alias-2",
+ ":node_modules/@lib/e",
+ ":node_modules/@lib/f",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/d"],
+ "@lib": [
+ ":node_modules/@lib/e",
+ ":node_modules/@lib/f",
+ ],
+ }
+
+def _link_pkg_4():
+ link_4()
+ _fp_link_0()
+ _fp_link_1()
+ _fp_link_3()
+ return [
+ ":node_modules/@aspect-test/e",
+ ":node_modules/vendored-a",
+ ":node_modules/vendored-b",
+ ":node_modules/@lib/b",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/e"],
+ "@lib": [":node_modules/@lib/b"],
+ }
+
+def _link_pkg_5():
+ link_5()
+ link_9("alias-1")
+ return [
+ ":node_modules/@aspect-test/f",
+ ":node_modules/alias-1",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/f"],
+ }
+
+def _link_pkg_6():
+ link_5()
+ return [":node_modules/@aspect-test/f"], {
+ "@aspect-test": [":node_modules/@aspect-test/f"],
+ }
+
+def _link_pkg_7():
+ link_6()
+ _fp_link_5()
+ return [
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/d",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/g"],
+ "@lib": [":node_modules/@lib/d"],
+ }
+
+def _link_pkg_8():
+ link_7()
+ _fp_link_3()
+ _fp_link_3("@lib/b_alias")
+ return [
+ ":node_modules/@aspect-test/h",
+ ":node_modules/@lib/b",
+ ":node_modules/@lib/b_alias",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/h"],
+ "@lib": [
+ ":node_modules/@lib/b",
+ ":node_modules/@lib/b_alias",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "": _link_pkg_0,
+ "app/a": _link_pkg_1,
+ "app/c": _link_pkg_2,
+ "lib/d": _link_pkg_3,
+ "lib/a": _link_pkg_4,
+ "lib/b": _link_pkg_5,
+ "lib/c": _link_pkg_6,
+ "app/d": _link_pkg_7,
+ "app/b": _link_pkg_8,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -150,134 +290,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "":
- link_0()
- link_1(dev=True)
- link_2()
- link_10()
- link_11()
- link_targets = [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/c",
- ":node_modules/lodash",
- ":node_modules/typescript",
- ":node_modules/@aspect-test/b",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/b",
- ":node_modules/@aspect-test/c",
- ],
- }
- elif bazel_package == "app/a":
- link_0()
- link_6()
- _fp_link_2()
- link_targets = [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/a",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ],
- "@lib": [":node_modules/@lib/a"],
- }
- elif bazel_package == "app/c":
- link_0()
- link_6()
- _fp_link_4()
- link_targets = [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/c",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ],
- "@lib": [":node_modules/@lib/c"],
- }
- elif bazel_package == "lib/d":
- link_3()
- link_8("alias-2")
- _fp_link_6()
- _fp_link_7()
- link_targets = [
- ":node_modules/@aspect-test/d",
- ":node_modules/alias-2",
- ":node_modules/@lib/e",
- ":node_modules/@lib/f",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/d"],
- "@lib": [
- ":node_modules/@lib/e",
- ":node_modules/@lib/f",
- ],
- }
- elif bazel_package == "lib/a":
- link_4()
- _fp_link_0()
- _fp_link_1()
- _fp_link_3()
- link_targets = [
- ":node_modules/@aspect-test/e",
- ":node_modules/vendored-a",
- ":node_modules/vendored-b",
- ":node_modules/@lib/b",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/e"],
- "@lib": [":node_modules/@lib/b"],
- }
- elif bazel_package == "lib/b":
- link_5()
- link_9("alias-1")
- link_targets = [
- ":node_modules/@aspect-test/f",
- ":node_modules/alias-1",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/f"],
- }
- elif bazel_package == "lib/c":
- link_5()
- link_targets = [":node_modules/@aspect-test/f"]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/f"],
- }
- elif bazel_package == "app/d":
- link_6()
- _fp_link_5()
- link_targets = [
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/d",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/g"],
- "@lib": [":node_modules/@lib/d"],
- }
- elif bazel_package == "app/b":
- link_7()
- _fp_link_3()
- _fp_link_3("@lib/b_alias")
- link_targets = [
- ":node_modules/@aspect-test/h",
- ":node_modules/@lib/b",
- ":node_modules/@lib/b_alias",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/h"],
- "@lib": [
- ":node_modules/@lib/b",
- ":node_modules/@lib/b_alias",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -307,6 +322,70 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "": {
+ "prod": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/lodash",
+ ":node_modules/typescript",
+ ],
+ "dev": [":node_modules/@aspect-test/b"],
+ },
+ "app/a": {
+ "prod": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/a",
+ ],
+ },
+ "app/c": {
+ "prod": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/c",
+ ],
+ },
+ "lib/d": {
+ "prod": [
+ ":node_modules/@aspect-test/d",
+ ":node_modules/alias-2",
+ ":node_modules/@lib/e",
+ ":node_modules/@lib/f",
+ ],
+ },
+ "lib/a": {
+ "prod": [
+ ":node_modules/@aspect-test/e",
+ ":node_modules/vendored-a",
+ ":node_modules/vendored-b",
+ ":node_modules/@lib/b",
+ ],
+ },
+ "lib/b": {
+ "prod": [
+ ":node_modules/@aspect-test/f",
+ ":node_modules/alias-1",
+ ],
+ },
+ "lib/c": {
+ "prod": [":node_modules/@aspect-test/f"],
+ },
+ "app/d": {
+ "prod": [
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/d",
+ ],
+ },
+ "app/b": {
+ "prod": [
+ ":node_modules/@aspect-test/h",
+ ":node_modules/@lib/b",
+ ":node_modules/@lib/b_alias",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -316,70 +395,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/c",
- ":node_modules/lodash",
- ":node_modules/typescript",
- ])
- if dev:
- link_targets.extend([":node_modules/@aspect-test/b"])
- elif bazel_package == "app/a":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/a",
- ])
- elif bazel_package == "app/c":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/c",
- ])
- elif bazel_package == "lib/d":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/d",
- ":node_modules/alias-2",
- ":node_modules/@lib/e",
- ":node_modules/@lib/f",
- ])
- elif bazel_package == "lib/a":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/e",
- ":node_modules/vendored-a",
- ":node_modules/vendored-b",
- ":node_modules/@lib/b",
- ])
- elif bazel_package == "lib/b":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/f",
- ":node_modules/alias-1",
- ])
- elif bazel_package == "lib/c":
- if prod:
- link_targets.extend([":node_modules/@aspect-test/f"])
- elif bazel_package == "app/d":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/d",
- ])
- elif bazel_package == "app/b":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/h",
- ":node_modules/@lib/b",
- ":node_modules/@lib/b_alias",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "vendored-a" package
diff --git a/e2e/pnpm_workspace_rerooted/snapshots/defs.bzl b/e2e/pnpm_workspace_rerooted/snapshots/defs.bzl
index 9715d1c..bf5b4ce 100644
--- a/e2e/pnpm_workspace_rerooted/snapshots/defs.bzl
+++ b/e2e/pnpm_workspace_rerooted/snapshots/defs.bzl
@@ -25,6 +25,146 @@
_IMPORTER_PACKAGES = ["root", "", "app/a", "app/b", "app/c", "app/d", "lib/a", "lib/b", "lib/c", "lib/d", "lib/d/e", "lib/d/f"]
+def _link_pkg_0():
+ link_0()
+ link_1(dev=True)
+ link_2()
+ link_10()
+ link_11()
+ return [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/lodash",
+ ":node_modules/typescript",
+ ":node_modules/@aspect-test/b",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/b",
+ ":node_modules/@aspect-test/c",
+ ],
+ }
+
+def _link_pkg_1():
+ link_0()
+ link_6()
+ _fp_link_2()
+ return [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/a",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ],
+ "@lib": [":node_modules/@lib/a"],
+ }
+
+def _link_pkg_2():
+ link_0()
+ link_6()
+ _fp_link_4()
+ return [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/c",
+ ], {
+ "@aspect-test": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ],
+ "@lib": [":node_modules/@lib/c"],
+ }
+
+def _link_pkg_3():
+ link_3()
+ link_8("alias-2")
+ _fp_link_6()
+ _fp_link_7()
+ return [
+ ":node_modules/@aspect-test/d",
+ ":node_modules/alias-2",
+ ":node_modules/@lib/e",
+ ":node_modules/@lib/f",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/d"],
+ "@lib": [
+ ":node_modules/@lib/e",
+ ":node_modules/@lib/f",
+ ],
+ }
+
+def _link_pkg_4():
+ link_4()
+ _fp_link_0()
+ _fp_link_1()
+ _fp_link_3()
+ return [
+ ":node_modules/@aspect-test/e",
+ ":node_modules/vendored-a",
+ ":node_modules/vendored-b",
+ ":node_modules/@lib/b",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/e"],
+ "@lib": [":node_modules/@lib/b"],
+ }
+
+def _link_pkg_5():
+ link_5()
+ link_9("alias-1")
+ return [
+ ":node_modules/@aspect-test/f",
+ ":node_modules/alias-1",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/f"],
+ }
+
+def _link_pkg_6():
+ link_5()
+ return [":node_modules/@aspect-test/f"], {
+ "@aspect-test": [":node_modules/@aspect-test/f"],
+ }
+
+def _link_pkg_7():
+ link_6()
+ _fp_link_5()
+ return [
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/d",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/g"],
+ "@lib": [":node_modules/@lib/d"],
+ }
+
+def _link_pkg_8():
+ link_7()
+ _fp_link_3()
+ _fp_link_3("@lib/b_alias")
+ return [
+ ":node_modules/@aspect-test/h",
+ ":node_modules/@lib/b",
+ ":node_modules/@lib/b_alias",
+ ], {
+ "@aspect-test": [":node_modules/@aspect-test/h"],
+ "@lib": [
+ ":node_modules/@lib/b",
+ ":node_modules/@lib/b_alias",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "": _link_pkg_0,
+ "app/a": _link_pkg_1,
+ "app/c": _link_pkg_2,
+ "lib/d": _link_pkg_3,
+ "lib/a": _link_pkg_4,
+ "lib/b": _link_pkg_5,
+ "lib/c": _link_pkg_6,
+ "app/d": _link_pkg_7,
+ "app/b": _link_pkg_8,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -150,134 +290,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "":
- link_0()
- link_1(dev=True)
- link_2()
- link_10()
- link_11()
- link_targets = [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/c",
- ":node_modules/lodash",
- ":node_modules/typescript",
- ":node_modules/@aspect-test/b",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/b",
- ":node_modules/@aspect-test/c",
- ],
- }
- elif bazel_package == "app/a":
- link_0()
- link_6()
- _fp_link_2()
- link_targets = [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/a",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ],
- "@lib": [":node_modules/@lib/a"],
- }
- elif bazel_package == "app/c":
- link_0()
- link_6()
- _fp_link_4()
- link_targets = [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/c",
- ]
- scope_targets = {
- "@aspect-test": [
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ],
- "@lib": [":node_modules/@lib/c"],
- }
- elif bazel_package == "lib/d":
- link_3()
- link_8("alias-2")
- _fp_link_6()
- _fp_link_7()
- link_targets = [
- ":node_modules/@aspect-test/d",
- ":node_modules/alias-2",
- ":node_modules/@lib/e",
- ":node_modules/@lib/f",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/d"],
- "@lib": [
- ":node_modules/@lib/e",
- ":node_modules/@lib/f",
- ],
- }
- elif bazel_package == "lib/a":
- link_4()
- _fp_link_0()
- _fp_link_1()
- _fp_link_3()
- link_targets = [
- ":node_modules/@aspect-test/e",
- ":node_modules/vendored-a",
- ":node_modules/vendored-b",
- ":node_modules/@lib/b",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/e"],
- "@lib": [":node_modules/@lib/b"],
- }
- elif bazel_package == "lib/b":
- link_5()
- link_9("alias-1")
- link_targets = [
- ":node_modules/@aspect-test/f",
- ":node_modules/alias-1",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/f"],
- }
- elif bazel_package == "lib/c":
- link_5()
- link_targets = [":node_modules/@aspect-test/f"]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/f"],
- }
- elif bazel_package == "app/d":
- link_6()
- _fp_link_5()
- link_targets = [
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/d",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/g"],
- "@lib": [":node_modules/@lib/d"],
- }
- elif bazel_package == "app/b":
- link_7()
- _fp_link_3()
- _fp_link_3("@lib/b_alias")
- link_targets = [
- ":node_modules/@aspect-test/h",
- ":node_modules/@lib/b",
- ":node_modules/@lib/b_alias",
- ]
- scope_targets = {
- "@aspect-test": [":node_modules/@aspect-test/h"],
- "@lib": [
- ":node_modules/@lib/b",
- ":node_modules/@lib/b_alias",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -307,6 +322,70 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "": {
+ "prod": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/c",
+ ":node_modules/lodash",
+ ":node_modules/typescript",
+ ],
+ "dev": [":node_modules/@aspect-test/b"],
+ },
+ "app/a": {
+ "prod": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/a",
+ ],
+ },
+ "app/c": {
+ "prod": [
+ ":node_modules/@aspect-test/a",
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/c",
+ ],
+ },
+ "lib/d": {
+ "prod": [
+ ":node_modules/@aspect-test/d",
+ ":node_modules/alias-2",
+ ":node_modules/@lib/e",
+ ":node_modules/@lib/f",
+ ],
+ },
+ "lib/a": {
+ "prod": [
+ ":node_modules/@aspect-test/e",
+ ":node_modules/vendored-a",
+ ":node_modules/vendored-b",
+ ":node_modules/@lib/b",
+ ],
+ },
+ "lib/b": {
+ "prod": [
+ ":node_modules/@aspect-test/f",
+ ":node_modules/alias-1",
+ ],
+ },
+ "lib/c": {
+ "prod": [":node_modules/@aspect-test/f"],
+ },
+ "app/d": {
+ "prod": [
+ ":node_modules/@aspect-test/g",
+ ":node_modules/@lib/d",
+ ],
+ },
+ "app/b": {
+ "prod": [
+ ":node_modules/@aspect-test/h",
+ ":node_modules/@lib/b",
+ ":node_modules/@lib/b_alias",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -316,70 +395,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/c",
- ":node_modules/lodash",
- ":node_modules/typescript",
- ])
- if dev:
- link_targets.extend([":node_modules/@aspect-test/b"])
- elif bazel_package == "app/a":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/a",
- ])
- elif bazel_package == "app/c":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/a",
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/c",
- ])
- elif bazel_package == "lib/d":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/d",
- ":node_modules/alias-2",
- ":node_modules/@lib/e",
- ":node_modules/@lib/f",
- ])
- elif bazel_package == "lib/a":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/e",
- ":node_modules/vendored-a",
- ":node_modules/vendored-b",
- ":node_modules/@lib/b",
- ])
- elif bazel_package == "lib/b":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/f",
- ":node_modules/alias-1",
- ])
- elif bazel_package == "lib/c":
- if prod:
- link_targets.extend([":node_modules/@aspect-test/f"])
- elif bazel_package == "app/d":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/g",
- ":node_modules/@lib/d",
- ])
- elif bazel_package == "app/b":
- if prod:
- link_targets.extend([
- ":node_modules/@aspect-test/h",
- ":node_modules/@lib/b",
- ":node_modules/@lib/b_alias",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "vendored-a" package
diff --git a/npm/private/npm_translate_lock_generate.bzl b/npm/private/npm_translate_lock_generate.bzl
index 78e28dd..f063748 100644
--- a/npm/private/npm_translate_lock_generate.bzl
+++ b/npm/private/npm_translate_lock_generate.bzl
@@ -292,7 +292,7 @@
is_alias = link_alias != _import.package
is_dev = link_alias not in link_importer["dependencies"] and link_alias not in link_importer["optional_dependencies"]
- links_pkg_bzl[link_package].append(""" link_{i}({maybe_alias}{maybe_dev})""".format(
+ links_pkg_bzl[link_package].append(""" link_{i}({maybe_alias}{maybe_dev})""".format(
i = i,
maybe_alias = '"{}"'.format(link_alias) if is_alias else "",
maybe_dev = (", " if is_alias else "") + "dev=True" if is_dev else "",
@@ -410,42 +410,53 @@
links_pkg_bzl[link_package] = []
for alias in aliases.keys():
if alias == fp_package:
- links_pkg_bzl[link_package].append(""" _fp_link_{i}()""".format(i = i))
+ links_pkg_bzl[link_package].append(""" _fp_link_{i}()""".format(i = i))
else:
- links_pkg_bzl[link_package].append(""" _fp_link_{i}("{alias}")""".format(i = i, alias = alias))
+ links_pkg_bzl[link_package].append(""" _fp_link_{i}("{alias}")""".format(i = i, alias = alias))
if stores_bzl:
npm_link_all_packages_bzl.append(""" if is_root:""")
npm_link_all_packages_bzl.extend(stores_bzl)
+ # Generate one function per pnpm workspace project that performs the linking
+ # for that project and returns its (link_targets, scope_targets), collected
+ # into the `_LINK_PACKAGE_FNS` dict for dispatch by package name.
+ link_pkg_fns_bzl = []
+ link_pkg_dispatch = {}
+ for i, (link_package, bzl) in enumerate(links_pkg_bzl.items()):
+ fn_name = "_link_pkg_%d" % i
+ link_pkg_dispatch[link_package] = fn_name
+
+ if link_package in links_targets and (links_targets[link_package]["prod"] or links_targets[link_package]["dev"]):
+ link_targets_repr = starlark_codegen_utils.to_list_attr(links_targets[link_package]["prod"] + links_targets[link_package]["dev"], 1, 4, quote_value = False)
+ else:
+ link_targets_repr = "None"
+
+ if links_scope_targets.get(link_package):
+ scope_targets_repr = starlark_codegen_utils.to_dict_list_attr(links_scope_targets[link_package], 1, 4, quote_list_value = False)
+ else:
+ scope_targets_repr = "None"
+
+ fn_lines = ["""def {fn_name}():""".format(fn_name = fn_name)]
+ fn_lines.extend(bzl)
+ fn_lines.append(""" return {link_targets}, {scope_targets}""".format(
+ link_targets = link_targets_repr,
+ scope_targets = scope_targets_repr,
+ ))
+ link_pkg_fns_bzl.append("\n".join(fn_lines))
+
# Start with empty link and scope targets
npm_link_all_packages_bzl.append("""
link_targets = None
scope_targets = None
""")
- # Invoke and collect link targets based on package
- if links_pkg_bzl:
- npm_link_all_packages_bzl.append(""" if is_importer:""")
- first_link = True
- for link_package, bzl in links_pkg_bzl.items():
- npm_link_all_packages_bzl.append(""" {els}if bazel_package == "{pkg}":""".format(
- els = "" if first_link else "el",
- pkg = link_package,
- ))
- npm_link_all_packages_bzl.extend(bzl)
-
- if link_package in links_targets and (links_targets[link_package]["prod"] or links_targets[link_package]["dev"]):
- npm_link_all_packages_bzl.append(""" link_targets = {targets}""".format(
- targets = starlark_codegen_utils.to_list_attr(links_targets[link_package]["prod"] + links_targets[link_package]["dev"], 3, 4, quote_value = False),
- ))
-
- if links_scope_targets.get(link_package):
- npm_link_all_packages_bzl.append(""" scope_targets = {targets}""".format(
- targets = starlark_codegen_utils.to_dict_list_attr(links_scope_targets[link_package], 3, 4, quote_list_value = False),
- ))
-
- first_link = False
+ # Dispatch to this importer's link function, if any.
+ if link_pkg_dispatch:
+ npm_link_all_packages_bzl.append(""" if is_importer:
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()""")
# Invoke and collect link targets from the `imported_links` param
npm_link_all_packages_bzl.append("""\
@@ -480,7 +491,7 @@
visibility = ["//visibility:public"],
)""")
- npm_link_targets_bzl = _generate_npm_link_targets(links_targets)
+ npm_link_targets_const, npm_link_targets_bzl = _generate_npm_link_targets(links_targets)
defs_bzl_header.append("")
defs_bzl_header.append("# buildifier: disable=bzl-visibility")
@@ -510,11 +521,25 @@
defs_bzl_contents.extend(["", npm_visibility_config] if npm_visibility_config else [])
defs_bzl_contents.extend(["", npm_package_locations] if npm_package_locations else [])
+ # Per-package link functions + dispatch dict, emitted before npm_link_all_packages
+ # which references _LINK_PACKAGE_FNS.
+ if link_pkg_fns_bzl:
+ defs_bzl_contents.extend([
+ "",
+ "\n\n".join(link_pkg_fns_bzl),
+ "",
+ "_LINK_PACKAGE_FNS = {dispatch}".format(
+ dispatch = starlark_codegen_utils.to_dict_attr(link_pkg_dispatch, 0, 4, quote_value = False),
+ ),
+ ])
+
defs_bzl_contents.extend([
"",
"\n".join(npm_link_all_packages_bzl),
"",
- "\n".join(npm_link_targets_bzl),
+ npm_link_targets_const,
+ "",
+ npm_link_targets_bzl,
"",
"\n\n".join(link_factories_bzl),
])
@@ -527,9 +552,37 @@
}
def _generate_npm_link_targets(links_targets):
- """Generate the npm_link_targets() macro given the links_targets struct"""
- npm_link_targets_bzl = [
- """\
+ """Generate the npm_link_targets() macro and its `_LINK_TARGETS` data table.
+
+ The per-package prod/dev targets are stored in the `_LINK_TARGETS` dict and
+ looked up at runtime by package name.
+
+ Returns:
+ A (link_targets_const, npm_link_targets_bzl) tuple of source strings, where
+ link_targets_const is the `_LINK_TARGETS = {...}` table and
+ npm_link_targets_bzl is the npm_link_targets() macro definition.
+ """
+ link_targets_const_lines = []
+ for link_package, lists in links_targets.items():
+ if not lists["prod"] and not lists["dev"]:
+ continue
+ link_targets_const_lines.append(""" "{pkg}": {{""".format(pkg = link_package))
+ if lists["prod"]:
+ link_targets_const_lines.append(""" "prod": {targets},""".format(
+ targets = starlark_codegen_utils.to_list_attr(lists["prod"], 2, 4, quote_value = False),
+ ))
+ if lists["dev"]:
+ link_targets_const_lines.append(""" "dev": {targets},""".format(
+ targets = starlark_codegen_utils.to_list_attr(lists["dev"], 2, 4, quote_value = False),
+ ))
+ link_targets_const_lines.append(" },")
+
+ if link_targets_const_lines:
+ link_targets_const = "_LINK_TARGETS = {\n" + "\n".join(link_targets_const_lines) + "\n}"
+ else:
+ link_targets_const = "_LINK_TARGETS = {}"
+
+ npm_link_targets_bzl = """\
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -539,29 +592,15 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-""",
- ]
- first_link = True
- for link_package, lists in links_targets.items():
- npm_link_targets_bzl.append(""" {els}if bazel_package == "{pkg}":""".format(
- els = "" if first_link else "el",
- pkg = link_package,
- ))
- if lists["prod"]:
- npm_link_targets_bzl.append(""" if prod:""")
- npm_link_targets_bzl.append(""" link_targets.extend({targets})""".format(
- targets = starlark_codegen_utils.to_list_attr(lists["prod"], 3, 4, quote_value = False),
- ))
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
+ return ["//%s%s" % (bazel_package, target) for target in link_targets]"""
- if lists["dev"]:
- npm_link_targets_bzl.append(""" if dev:""")
- npm_link_targets_bzl.append(""" link_targets.extend({targets})""".format(
- targets = starlark_codegen_utils.to_list_attr(lists["dev"], 3, 4, quote_value = False),
- ))
- first_link = False
- npm_link_targets_bzl.append(""" return ["//%s%s" % (bazel_package, target) for target in link_targets]""")
- return npm_link_targets_bzl
+ return link_targets_const, npm_link_targets_bzl
def _generate_npm_visibility_config(package_visibility_attr):
"""Generate visibility configuration for npm packages"""
diff --git a/npm/private/test/snapshots/npm_defs-no_dev.bzl b/npm/private/test/snapshots/npm_defs-no_dev.bzl
index 1978b21..4b2e79f 100644
--- a/npm/private/test/snapshots/npm_defs-no_dev.bzl
+++ b/npm/private/test/snapshots/npm_defs-no_dev.bzl
@@ -918,6 +918,130 @@
_IMPORTER_PACKAGES = ["", "js/private/coverage/bundle", "js/private/devserver/src", "js/private/test/image", "js/private/test/image-fixture-a", "js/private/test/image-fixture-d", "js/private/test/image/platform_deps", "js/private/test/js_run_devserver", "js/private/test/node-patches", "js/private/worker/src", "npm/private/lifecycle", "npm/private/test", "npm/private/test/npm_package", "npm/private/test/npm_package_publish", "npm/private/test/subs"]
+def _link_pkg_0():
+ link_117()
+ link_119()
+ link_125()
+ return [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ], {
+ "@pnpm": [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ],
+ }
+
+def _link_pkg_1():
+ link_178()
+ link_179()
+ return [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ], {
+ "@rspack": [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ],
+ }
+
+def _link_pkg_2():
+ link_196()
+ link_545()
+ return [
+ ":node_modules/@types/node",
+ ":node_modules/jasmine",
+ ], {
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_3():
+ link_205()
+ link_206()
+ link_749()
+ return [
+ ":node_modules/@vscode/vsce-sign-alpine-arm64",
+ ":node_modules/@vscode/vsce-sign-alpine-x64",
+ ":node_modules/sass-embedded-all-unknown",
+ ], {
+ "@vscode": [
+ ":node_modules/@vscode/vsce-sign-alpine-arm64",
+ ":node_modules/@vscode/vsce-sign-alpine-x64",
+ ],
+ }
+
+def _link_pkg_4():
+ link_218()
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/acorn",
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ], {
+ "@image-test": [
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ],
+ }
+
+def _link_pkg_5():
+ link_268()
+ return [":node_modules/c8"], None
+
+def _link_pkg_6():
+ link_279()
+ link_280("chalk-alt")
+ return [
+ ":node_modules/chalk",
+ ":node_modules/chalk-alt",
+ ], None
+
+def _link_pkg_7():
+ link_471()
+ link_842()
+ return [
+ ":node_modules/google-protobuf",
+ ":node_modules/tslib",
+ ], None
+
+def _link_pkg_8():
+ link_868()
+ return [":node_modules/uuid"], None
+
+def _link_pkg_9():
+ link_868()
+ return [":node_modules/uuid"], None
+
+def _link_pkg_10():
+ _fp_link_4()
+ _fp_link_5()
+ return [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ], {
+ "@subs": [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "npm/private/lifecycle": _link_pkg_0,
+ "js/private/test/image/platform_deps": _link_pkg_1,
+ "js/private/test/js_run_devserver": _link_pkg_2,
+ "npm/private/test": _link_pkg_3,
+ "js/private/test/image": _link_pkg_4,
+ "js/private/coverage/bundle": _link_pkg_5,
+ "npm/private/test/npm_package": _link_pkg_6,
+ "js/private/worker/src": _link_pkg_7,
+ "js/private/test/image-fixture-a": _link_pkg_8,
+ "js/private/test/image-fixture-d": _link_pkg_9,
+ "npm/private/test/subs": _link_pkg_10,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -1908,111 +2032,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "npm/private/lifecycle":
- link_117()
- link_119()
- link_125()
- link_targets = [
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ]
- scope_targets = {
- "@pnpm": [
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ],
- }
- elif bazel_package == "js/private/test/image/platform_deps":
- link_178()
- link_179()
- link_targets = [
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ]
- scope_targets = {
- "@rspack": [
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ],
- }
- elif bazel_package == "js/private/test/js_run_devserver":
- link_196()
- link_545()
- link_targets = [
- ":node_modules/@types/node",
- ":node_modules/jasmine",
- ]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "npm/private/test":
- link_205()
- link_206()
- link_749()
- link_targets = [
- ":node_modules/@vscode/vsce-sign-alpine-arm64",
- ":node_modules/@vscode/vsce-sign-alpine-x64",
- ":node_modules/sass-embedded-all-unknown",
- ]
- scope_targets = {
- "@vscode": [
- ":node_modules/@vscode/vsce-sign-alpine-arm64",
- ":node_modules/@vscode/vsce-sign-alpine-x64",
- ],
- }
- elif bazel_package == "js/private/test/image":
- link_218()
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/acorn",
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ]
- scope_targets = {
- "@image-test": [
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ],
- }
- elif bazel_package == "js/private/coverage/bundle":
- link_268()
- link_targets = [":node_modules/c8"]
- elif bazel_package == "npm/private/test/npm_package":
- link_279()
- link_280("chalk-alt")
- link_targets = [
- ":node_modules/chalk",
- ":node_modules/chalk-alt",
- ]
- elif bazel_package == "js/private/worker/src":
- link_471()
- link_842()
- link_targets = [
- ":node_modules/google-protobuf",
- ":node_modules/tslib",
- ]
- elif bazel_package == "js/private/test/image-fixture-a":
- link_868()
- link_targets = [":node_modules/uuid"]
- elif bazel_package == "js/private/test/image-fixture-d":
- link_868()
- link_targets = [":node_modules/uuid"]
- elif bazel_package == "npm/private/test/subs":
- _fp_link_4()
- _fp_link_5()
- link_targets = [
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ]
- scope_targets = {
- "@subs": [
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -2042,6 +2064,69 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "npm/private/lifecycle": {
+ "prod": [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ],
+ },
+ "js/private/test/image/platform_deps": {
+ "prod": [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ],
+ },
+ "js/private/test/js_run_devserver": {
+ "prod": [
+ ":node_modules/@types/node",
+ ":node_modules/jasmine",
+ ],
+ },
+ "npm/private/test": {
+ "prod": [
+ ":node_modules/@vscode/vsce-sign-alpine-arm64",
+ ":node_modules/@vscode/vsce-sign-alpine-x64",
+ ":node_modules/sass-embedded-all-unknown",
+ ],
+ },
+ "js/private/test/image": {
+ "prod": [
+ ":node_modules/acorn",
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ],
+ },
+ "js/private/coverage/bundle": {
+ "prod": [":node_modules/c8"],
+ },
+ "npm/private/test/npm_package": {
+ "prod": [
+ ":node_modules/chalk",
+ ":node_modules/chalk-alt",
+ ],
+ },
+ "js/private/worker/src": {
+ "prod": [
+ ":node_modules/google-protobuf",
+ ":node_modules/tslib",
+ ],
+ },
+ "js/private/test/image-fixture-a": {
+ "prod": [":node_modules/uuid"],
+ },
+ "js/private/test/image-fixture-d": {
+ "prod": [":node_modules/uuid"],
+ },
+ "npm/private/test/subs": {
+ "prod": [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -2051,68 +2136,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "npm/private/lifecycle":
- if prod:
- link_targets.extend([
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ])
- elif bazel_package == "js/private/test/image/platform_deps":
- if prod:
- link_targets.extend([
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ])
- elif bazel_package == "js/private/test/js_run_devserver":
- if prod:
- link_targets.extend([
- ":node_modules/@types/node",
- ":node_modules/jasmine",
- ])
- elif bazel_package == "npm/private/test":
- if prod:
- link_targets.extend([
- ":node_modules/@vscode/vsce-sign-alpine-arm64",
- ":node_modules/@vscode/vsce-sign-alpine-x64",
- ":node_modules/sass-embedded-all-unknown",
- ])
- elif bazel_package == "js/private/test/image":
- if prod:
- link_targets.extend([
- ":node_modules/acorn",
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ])
- elif bazel_package == "js/private/coverage/bundle":
- if prod:
- link_targets.extend([":node_modules/c8"])
- elif bazel_package == "npm/private/test/npm_package":
- if prod:
- link_targets.extend([
- ":node_modules/chalk",
- ":node_modules/chalk-alt",
- ])
- elif bazel_package == "js/private/worker/src":
- if prod:
- link_targets.extend([
- ":node_modules/google-protobuf",
- ":node_modules/tslib",
- ])
- elif bazel_package == "js/private/test/image-fixture-a":
- if prod:
- link_targets.extend([":node_modules/uuid"])
- elif bazel_package == "js/private/test/image-fixture-d":
- if prod:
- link_targets.extend([":node_modules/uuid"])
- elif bazel_package == "npm/private/test/subs":
- if prod:
- link_targets.extend([
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "@image-test/a" package
diff --git a/npm/private/test/snapshots/npm_defs-no_optional.bzl b/npm/private/test/snapshots/npm_defs-no_optional.bzl
index fdcc557..ccab1b1 100644
--- a/npm/private/test/snapshots/npm_defs-no_optional.bzl
+++ b/npm/private/test/snapshots/npm_defs-no_optional.bzl
@@ -809,6 +809,295 @@
_IMPORTER_PACKAGES = ["", "js/private/coverage/bundle", "js/private/devserver/src", "js/private/test/image", "js/private/test/image-fixture-a", "js/private/test/image-fixture-d", "js/private/test/image/platform_deps", "js/private/test/js_run_devserver", "js/private/test/node-patches", "js/private/worker/src", "npm/private/lifecycle", "npm/private/test", "npm/private/test/npm_package", "npm/private/test/npm_package_publish", "npm/private/test/subs"]
+def _link_pkg_0():
+ link_1(dev=True)
+ link_5(dev=True)
+ link_17(dev=True)
+ link_407(dev=True)
+ return [
+ ":node_modules/@babel/cli",
+ ":node_modules/@babel/core",
+ ":node_modules/@babel/plugin-transform-modules-commonjs",
+ ":node_modules/inline-fixtures",
+ ], {
+ "@babel": [
+ ":node_modules/@babel/cli",
+ ":node_modules/@babel/core",
+ ":node_modules/@babel/plugin-transform-modules-commonjs",
+ ],
+ }
+
+def _link_pkg_1():
+ link_21(dev=True)
+ link_116(dev=True)
+ link_190(dev=True)
+ link_290("circles", dev=True)
+ link_372(dev=True)
+ link_456(dev=True)
+ link_742(dev=True)
+ return [
+ ":node_modules/@bazel/runfiles",
+ ":node_modules/@types/node",
+ ":node_modules/chalk",
+ ":node_modules/circles",
+ ":node_modules/google-closure-compiler",
+ ":node_modules/jsonpath-plus",
+ ":node_modules/typescript",
+ ], {
+ "@bazel": [":node_modules/@bazel/runfiles"],
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_2():
+ link_24(dev=True)
+ link_25(dev=True)
+ link_40(dev=True)
+ link_63(dev=True)
+ link_63("regl", dev=True)
+ link_177(dev=True)
+ link_258(dev=True)
+ link_294(dev=True)
+ link_387("handlebars-helpers/helper-date", dev=True)
+ link_389(dev=True)
+ link_408(dev=True)
+ link_452(dev=True)
+ link_465(dev=True)
+ link_466("lodash-4.17.21", dev=True)
+ link_467("lodash-4.17.21-tar", dev=True)
+ link_537(dev=True)
+ link_587(dev=True)
+ link_588(dev=True)
+ link_598(dev=True)
+ link_603(dev=True)
+ link_645(dev=True)
+ link_646(dev=True)
+ link_705(dev=True)
+ link_742(dev=True)
+ link_755(dev=True)
+ link_768(dev=True)
+ _fp_link_4()
+ return [
+ ":node_modules/@fastify/send",
+ ":node_modules/@figma/nodegit",
+ ":node_modules/@kubernetes/client-node",
+ ":node_modules/@plotly/regl",
+ ":node_modules/regl",
+ ":node_modules/bufferutil",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/handlebars-helpers/helper-date",
+ ":node_modules/hot-shots",
+ ":node_modules/inline-fixtures",
+ ":node_modules/json-stable-stringify",
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-tar",
+ ":node_modules/node-gyp",
+ ":node_modules/plotly.js",
+ ":node_modules/pngjs",
+ ":node_modules/protoc-gen-grpc",
+ ":node_modules/puppeteer",
+ ":node_modules/segfault-handler",
+ ":node_modules/semver-first-satisfied",
+ ":node_modules/syncpack",
+ ":node_modules/typescript",
+ ":node_modules/unused",
+ ":node_modules/webpack-bundle-analyzer",
+ ":node_modules/test-npm_package",
+ ], {
+ "@fastify": [":node_modules/@fastify/send"],
+ "@figma": [":node_modules/@figma/nodegit"],
+ "@kubernetes": [":node_modules/@kubernetes/client-node"],
+ "@plotly": [":node_modules/@plotly/regl"],
+ }
+
+def _link_pkg_3():
+ link_73()
+ link_75()
+ link_81()
+ link_91(dev=True)
+ link_92(dev=True)
+ link_93(dev=True)
+ link_94(dev=True)
+ link_95(dev=True)
+ link_637(dev=True)
+ return [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-replace",
+ ":node_modules/@rollup/plugin-terser",
+ ":node_modules/rollup",
+ ], {
+ "@pnpm": [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ],
+ "@rollup": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-replace",
+ ":node_modules/@rollup/plugin-terser",
+ ],
+ }
+
+def _link_pkg_4():
+ link_91(dev=True)
+ link_92(dev=True)
+ link_93(dev=True)
+ link_178()
+ link_637(dev=True)
+ return [
+ ":node_modules/c8",
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/rollup",
+ ], {
+ "@rollup": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ],
+ }
+
+def _link_pkg_5():
+ link_91(dev=True)
+ link_92(dev=True)
+ link_93(dev=True)
+ link_96(dev=True)
+ link_110(dev=True)
+ link_116(dev=True)
+ link_373()
+ link_637(dev=True)
+ link_734()
+ link_742(dev=True)
+ return [
+ ":node_modules/google-protobuf",
+ ":node_modules/tslib",
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-typescript",
+ ":node_modules/@types/google-protobuf",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ":node_modules/typescript",
+ ], {
+ "@rollup": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-typescript",
+ ],
+ "@types": [
+ ":node_modules/@types/google-protobuf",
+ ":node_modules/@types/node",
+ ],
+ }
+
+def _link_pkg_6():
+ link_93(dev=True)
+ link_116(dev=True)
+ link_637(dev=True)
+ return [
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ], {
+ "@rollup": [":node_modules/@rollup/plugin-node-resolve"],
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_7():
+ link_99()
+ link_100()
+ return [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ], {
+ "@rspack": [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ],
+ }
+
+def _link_pkg_8():
+ link_116()
+ link_443()
+ return [
+ ":node_modules/@types/node",
+ ":node_modules/jasmine",
+ ], {
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_9():
+ link_135()
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/acorn",
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ], {
+ "@image-test": [
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ],
+ }
+
+def _link_pkg_10():
+ link_189()
+ link_190("chalk-alt")
+ return [
+ ":node_modules/chalk",
+ ":node_modules/chalk-alt",
+ ], None
+
+def _link_pkg_11():
+ link_759()
+ return [":node_modules/uuid"], None
+
+def _link_pkg_12():
+ link_759()
+ return [":node_modules/uuid"], None
+
+def _link_pkg_13():
+ _fp_link_5()
+ _fp_link_6()
+ return [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ], {
+ "@subs": [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "js/private/test/node-patches": _link_pkg_0,
+ "": _link_pkg_1,
+ "npm/private/test": _link_pkg_2,
+ "npm/private/lifecycle": _link_pkg_3,
+ "js/private/coverage/bundle": _link_pkg_4,
+ "js/private/worker/src": _link_pkg_5,
+ "js/private/devserver/src": _link_pkg_6,
+ "js/private/test/image/platform_deps": _link_pkg_7,
+ "js/private/test/js_run_devserver": _link_pkg_8,
+ "js/private/test/image": _link_pkg_9,
+ "npm/private/test/npm_package": _link_pkg_10,
+ "js/private/test/image-fixture-a": _link_pkg_11,
+ "js/private/test/image-fixture-d": _link_pkg_12,
+ "npm/private/test/subs": _link_pkg_13,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -1702,275 +1991,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "js/private/test/node-patches":
- link_1(dev=True)
- link_5(dev=True)
- link_17(dev=True)
- link_407(dev=True)
- link_targets = [
- ":node_modules/@babel/cli",
- ":node_modules/@babel/core",
- ":node_modules/@babel/plugin-transform-modules-commonjs",
- ":node_modules/inline-fixtures",
- ]
- scope_targets = {
- "@babel": [
- ":node_modules/@babel/cli",
- ":node_modules/@babel/core",
- ":node_modules/@babel/plugin-transform-modules-commonjs",
- ],
- }
- elif bazel_package == "":
- link_21(dev=True)
- link_116(dev=True)
- link_190(dev=True)
- link_290("circles", dev=True)
- link_372(dev=True)
- link_456(dev=True)
- link_742(dev=True)
- link_targets = [
- ":node_modules/@bazel/runfiles",
- ":node_modules/@types/node",
- ":node_modules/chalk",
- ":node_modules/circles",
- ":node_modules/google-closure-compiler",
- ":node_modules/jsonpath-plus",
- ":node_modules/typescript",
- ]
- scope_targets = {
- "@bazel": [":node_modules/@bazel/runfiles"],
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "npm/private/test":
- link_24(dev=True)
- link_25(dev=True)
- link_40(dev=True)
- link_63(dev=True)
- link_63("regl", dev=True)
- link_177(dev=True)
- link_258(dev=True)
- link_294(dev=True)
- link_387("handlebars-helpers/helper-date", dev=True)
- link_389(dev=True)
- link_408(dev=True)
- link_452(dev=True)
- link_465(dev=True)
- link_466("lodash-4.17.21", dev=True)
- link_467("lodash-4.17.21-tar", dev=True)
- link_537(dev=True)
- link_587(dev=True)
- link_588(dev=True)
- link_598(dev=True)
- link_603(dev=True)
- link_645(dev=True)
- link_646(dev=True)
- link_705(dev=True)
- link_742(dev=True)
- link_755(dev=True)
- link_768(dev=True)
- _fp_link_4()
- link_targets = [
- ":node_modules/@fastify/send",
- ":node_modules/@figma/nodegit",
- ":node_modules/@kubernetes/client-node",
- ":node_modules/@plotly/regl",
- ":node_modules/regl",
- ":node_modules/bufferutil",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/handlebars-helpers/helper-date",
- ":node_modules/hot-shots",
- ":node_modules/inline-fixtures",
- ":node_modules/json-stable-stringify",
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-tar",
- ":node_modules/node-gyp",
- ":node_modules/plotly.js",
- ":node_modules/pngjs",
- ":node_modules/protoc-gen-grpc",
- ":node_modules/puppeteer",
- ":node_modules/segfault-handler",
- ":node_modules/semver-first-satisfied",
- ":node_modules/syncpack",
- ":node_modules/typescript",
- ":node_modules/unused",
- ":node_modules/webpack-bundle-analyzer",
- ":node_modules/test-npm_package",
- ]
- scope_targets = {
- "@fastify": [":node_modules/@fastify/send"],
- "@figma": [":node_modules/@figma/nodegit"],
- "@kubernetes": [":node_modules/@kubernetes/client-node"],
- "@plotly": [":node_modules/@plotly/regl"],
- }
- elif bazel_package == "npm/private/lifecycle":
- link_73()
- link_75()
- link_81()
- link_91(dev=True)
- link_92(dev=True)
- link_93(dev=True)
- link_94(dev=True)
- link_95(dev=True)
- link_637(dev=True)
- link_targets = [
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-replace",
- ":node_modules/@rollup/plugin-terser",
- ":node_modules/rollup",
- ]
- scope_targets = {
- "@pnpm": [
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ],
- "@rollup": [
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-replace",
- ":node_modules/@rollup/plugin-terser",
- ],
- }
- elif bazel_package == "js/private/coverage/bundle":
- link_91(dev=True)
- link_92(dev=True)
- link_93(dev=True)
- link_178()
- link_637(dev=True)
- link_targets = [
- ":node_modules/c8",
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/rollup",
- ]
- scope_targets = {
- "@rollup": [
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ],
- }
- elif bazel_package == "js/private/worker/src":
- link_91(dev=True)
- link_92(dev=True)
- link_93(dev=True)
- link_96(dev=True)
- link_110(dev=True)
- link_116(dev=True)
- link_373()
- link_637(dev=True)
- link_734()
- link_742(dev=True)
- link_targets = [
- ":node_modules/google-protobuf",
- ":node_modules/tslib",
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-typescript",
- ":node_modules/@types/google-protobuf",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ":node_modules/typescript",
- ]
- scope_targets = {
- "@rollup": [
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-typescript",
- ],
- "@types": [
- ":node_modules/@types/google-protobuf",
- ":node_modules/@types/node",
- ],
- }
- elif bazel_package == "js/private/devserver/src":
- link_93(dev=True)
- link_116(dev=True)
- link_637(dev=True)
- link_targets = [
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ]
- scope_targets = {
- "@rollup": [":node_modules/@rollup/plugin-node-resolve"],
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "js/private/test/image/platform_deps":
- link_99()
- link_100()
- link_targets = [
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ]
- scope_targets = {
- "@rspack": [
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ],
- }
- elif bazel_package == "js/private/test/js_run_devserver":
- link_116()
- link_443()
- link_targets = [
- ":node_modules/@types/node",
- ":node_modules/jasmine",
- ]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "js/private/test/image":
- link_135()
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/acorn",
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ]
- scope_targets = {
- "@image-test": [
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ],
- }
- elif bazel_package == "npm/private/test/npm_package":
- link_189()
- link_190("chalk-alt")
- link_targets = [
- ":node_modules/chalk",
- ":node_modules/chalk-alt",
- ]
- elif bazel_package == "js/private/test/image-fixture-a":
- link_759()
- link_targets = [":node_modules/uuid"]
- elif bazel_package == "js/private/test/image-fixture-d":
- link_759()
- link_targets = [":node_modules/uuid"]
- elif bazel_package == "npm/private/test/subs":
- _fp_link_5()
- _fp_link_6()
- link_targets = [
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ]
- scope_targets = {
- "@subs": [
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -2000,6 +2023,143 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "js/private/test/node-patches": {
+ "dev": [
+ ":node_modules/@babel/cli",
+ ":node_modules/@babel/core",
+ ":node_modules/@babel/plugin-transform-modules-commonjs",
+ ":node_modules/inline-fixtures",
+ ],
+ },
+ "": {
+ "dev": [
+ ":node_modules/@bazel/runfiles",
+ ":node_modules/@types/node",
+ ":node_modules/chalk",
+ ":node_modules/circles",
+ ":node_modules/google-closure-compiler",
+ ":node_modules/jsonpath-plus",
+ ":node_modules/typescript",
+ ],
+ },
+ "npm/private/test": {
+ "dev": [
+ ":node_modules/@fastify/send",
+ ":node_modules/@figma/nodegit",
+ ":node_modules/@kubernetes/client-node",
+ ":node_modules/@plotly/regl",
+ ":node_modules/regl",
+ ":node_modules/bufferutil",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/handlebars-helpers/helper-date",
+ ":node_modules/hot-shots",
+ ":node_modules/inline-fixtures",
+ ":node_modules/json-stable-stringify",
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-tar",
+ ":node_modules/node-gyp",
+ ":node_modules/plotly.js",
+ ":node_modules/pngjs",
+ ":node_modules/protoc-gen-grpc",
+ ":node_modules/puppeteer",
+ ":node_modules/segfault-handler",
+ ":node_modules/semver-first-satisfied",
+ ":node_modules/syncpack",
+ ":node_modules/typescript",
+ ":node_modules/unused",
+ ":node_modules/webpack-bundle-analyzer",
+ ":node_modules/test-npm_package",
+ ],
+ },
+ "npm/private/lifecycle": {
+ "prod": [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ],
+ "dev": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-replace",
+ ":node_modules/@rollup/plugin-terser",
+ ":node_modules/rollup",
+ ],
+ },
+ "js/private/coverage/bundle": {
+ "prod": [":node_modules/c8"],
+ "dev": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/rollup",
+ ],
+ },
+ "js/private/worker/src": {
+ "prod": [
+ ":node_modules/google-protobuf",
+ ":node_modules/tslib",
+ ],
+ "dev": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-typescript",
+ ":node_modules/@types/google-protobuf",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ":node_modules/typescript",
+ ],
+ },
+ "js/private/devserver/src": {
+ "dev": [
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ],
+ },
+ "js/private/test/image/platform_deps": {
+ "prod": [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ],
+ },
+ "js/private/test/js_run_devserver": {
+ "prod": [
+ ":node_modules/@types/node",
+ ":node_modules/jasmine",
+ ],
+ },
+ "js/private/test/image": {
+ "prod": [
+ ":node_modules/acorn",
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ],
+ },
+ "npm/private/test/npm_package": {
+ "prod": [
+ ":node_modules/chalk",
+ ":node_modules/chalk-alt",
+ ],
+ },
+ "js/private/test/image-fixture-a": {
+ "prod": [":node_modules/uuid"],
+ },
+ "js/private/test/image-fixture-d": {
+ "prod": [":node_modules/uuid"],
+ },
+ "npm/private/test/subs": {
+ "prod": [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -2009,145 +2169,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "js/private/test/node-patches":
- if dev:
- link_targets.extend([
- ":node_modules/@babel/cli",
- ":node_modules/@babel/core",
- ":node_modules/@babel/plugin-transform-modules-commonjs",
- ":node_modules/inline-fixtures",
- ])
- elif bazel_package == "":
- if dev:
- link_targets.extend([
- ":node_modules/@bazel/runfiles",
- ":node_modules/@types/node",
- ":node_modules/chalk",
- ":node_modules/circles",
- ":node_modules/google-closure-compiler",
- ":node_modules/jsonpath-plus",
- ":node_modules/typescript",
- ])
- elif bazel_package == "npm/private/test":
- if dev:
- link_targets.extend([
- ":node_modules/@fastify/send",
- ":node_modules/@figma/nodegit",
- ":node_modules/@kubernetes/client-node",
- ":node_modules/@plotly/regl",
- ":node_modules/regl",
- ":node_modules/bufferutil",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/handlebars-helpers/helper-date",
- ":node_modules/hot-shots",
- ":node_modules/inline-fixtures",
- ":node_modules/json-stable-stringify",
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-tar",
- ":node_modules/node-gyp",
- ":node_modules/plotly.js",
- ":node_modules/pngjs",
- ":node_modules/protoc-gen-grpc",
- ":node_modules/puppeteer",
- ":node_modules/segfault-handler",
- ":node_modules/semver-first-satisfied",
- ":node_modules/syncpack",
- ":node_modules/typescript",
- ":node_modules/unused",
- ":node_modules/webpack-bundle-analyzer",
- ":node_modules/test-npm_package",
- ])
- elif bazel_package == "npm/private/lifecycle":
- if prod:
- link_targets.extend([
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-replace",
- ":node_modules/@rollup/plugin-terser",
- ":node_modules/rollup",
- ])
- elif bazel_package == "js/private/coverage/bundle":
- if prod:
- link_targets.extend([":node_modules/c8"])
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/rollup",
- ])
- elif bazel_package == "js/private/worker/src":
- if prod:
- link_targets.extend([
- ":node_modules/google-protobuf",
- ":node_modules/tslib",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-typescript",
- ":node_modules/@types/google-protobuf",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ":node_modules/typescript",
- ])
- elif bazel_package == "js/private/devserver/src":
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ])
- elif bazel_package == "js/private/test/image/platform_deps":
- if prod:
- link_targets.extend([
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ])
- elif bazel_package == "js/private/test/js_run_devserver":
- if prod:
- link_targets.extend([
- ":node_modules/@types/node",
- ":node_modules/jasmine",
- ])
- elif bazel_package == "js/private/test/image":
- if prod:
- link_targets.extend([
- ":node_modules/acorn",
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ])
- elif bazel_package == "npm/private/test/npm_package":
- if prod:
- link_targets.extend([
- ":node_modules/chalk",
- ":node_modules/chalk-alt",
- ])
- elif bazel_package == "js/private/test/image-fixture-a":
- if prod:
- link_targets.extend([":node_modules/uuid"])
- elif bazel_package == "js/private/test/image-fixture-d":
- if prod:
- link_targets.extend([":node_modules/uuid"])
- elif bazel_package == "npm/private/test/subs":
- if prod:
- link_targets.extend([
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "@image-test/a" package
diff --git a/npm/private/test/snapshots/npm_defs.bzl b/npm/private/test/snapshots/npm_defs.bzl
index 56f35d6..504ca7c 100644
--- a/npm/private/test/snapshots/npm_defs.bzl
+++ b/npm/private/test/snapshots/npm_defs.bzl
@@ -942,6 +942,304 @@
"js/private/test/image-fixture-d": ["uuid"],
}
+def _link_pkg_0():
+ link_1(dev=True)
+ link_5(dev=True)
+ link_17(dev=True)
+ link_508(dev=True)
+ return [
+ ":node_modules/@babel/cli",
+ ":node_modules/@babel/core",
+ ":node_modules/@babel/plugin-transform-modules-commonjs",
+ ":node_modules/inline-fixtures",
+ ], {
+ "@babel": [
+ ":node_modules/@babel/cli",
+ ":node_modules/@babel/core",
+ ":node_modules/@babel/plugin-transform-modules-commonjs",
+ ],
+ }
+
+def _link_pkg_1():
+ link_21(dev=True)
+ link_196(dev=True)
+ link_280(dev=True)
+ link_383("circles", dev=True)
+ link_470(dev=True)
+ link_558(dev=True)
+ link_850(dev=True)
+ return [
+ ":node_modules/@bazel/runfiles",
+ ":node_modules/@types/node",
+ ":node_modules/chalk",
+ ":node_modules/circles",
+ ":node_modules/google-closure-compiler",
+ ":node_modules/jsonpath-plus",
+ ":node_modules/typescript",
+ ], {
+ "@bazel": [":node_modules/@bazel/runfiles"],
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_2():
+ link_51(dev=True)
+ link_52(dev=True)
+ link_67(dev=True)
+ link_107(dev=True)
+ link_107("regl", dev=True)
+ link_205()
+ link_206()
+ link_267(dev=True)
+ link_350(dev=True)
+ link_387(dev=True)
+ link_485("handlebars-helpers/helper-date", dev=True)
+ link_487(dev=True)
+ link_509(dev=True)
+ link_554(dev=True)
+ link_567(dev=True)
+ link_568("lodash-4.17.21", dev=True)
+ link_569("lodash-4.17.21-tar", dev=True)
+ link_640(dev=True)
+ link_690(dev=True)
+ link_691(dev=True)
+ link_701(dev=True)
+ link_706(dev=True)
+ link_749()
+ link_752(dev=True)
+ link_753(dev=True)
+ link_813(dev=True)
+ link_850(dev=True)
+ link_864(dev=True)
+ link_877(dev=True)
+ _fp_link_4()
+ return [
+ ":node_modules/@vscode/vsce-sign-alpine-arm64",
+ ":node_modules/@vscode/vsce-sign-alpine-x64",
+ ":node_modules/sass-embedded-all-unknown",
+ ":node_modules/@fastify/send",
+ ":node_modules/@figma/nodegit",
+ ":node_modules/@kubernetes/client-node",
+ ":node_modules/@plotly/regl",
+ ":node_modules/regl",
+ ":node_modules/bufferutil",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/handlebars-helpers/helper-date",
+ ":node_modules/hot-shots",
+ ":node_modules/inline-fixtures",
+ ":node_modules/json-stable-stringify",
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-tar",
+ ":node_modules/node-gyp",
+ ":node_modules/plotly.js",
+ ":node_modules/pngjs",
+ ":node_modules/protoc-gen-grpc",
+ ":node_modules/puppeteer",
+ ":node_modules/segfault-handler",
+ ":node_modules/semver-first-satisfied",
+ ":node_modules/syncpack",
+ ":node_modules/typescript",
+ ":node_modules/webpack-bundle-analyzer",
+ ":node_modules/test-npm_package",
+ ], {
+ "@fastify": [":node_modules/@fastify/send"],
+ "@figma": [":node_modules/@figma/nodegit"],
+ "@kubernetes": [":node_modules/@kubernetes/client-node"],
+ "@plotly": [":node_modules/@plotly/regl"],
+ "@vscode": [
+ ":node_modules/@vscode/vsce-sign-alpine-arm64",
+ ":node_modules/@vscode/vsce-sign-alpine-x64",
+ ],
+ }
+
+def _link_pkg_3():
+ link_117()
+ link_119()
+ link_125()
+ link_135(dev=True)
+ link_136(dev=True)
+ link_137(dev=True)
+ link_138(dev=True)
+ link_139(dev=True)
+ link_742(dev=True)
+ return [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-replace",
+ ":node_modules/@rollup/plugin-terser",
+ ":node_modules/rollup",
+ ], {
+ "@pnpm": [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ],
+ "@rollup": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-replace",
+ ":node_modules/@rollup/plugin-terser",
+ ],
+ }
+
+def _link_pkg_4():
+ link_135(dev=True)
+ link_136(dev=True)
+ link_137(dev=True)
+ link_268()
+ link_742(dev=True)
+ return [
+ ":node_modules/c8",
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/rollup",
+ ], {
+ "@rollup": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ],
+ }
+
+def _link_pkg_5():
+ link_135(dev=True)
+ link_136(dev=True)
+ link_137(dev=True)
+ link_140(dev=True)
+ link_190(dev=True)
+ link_196(dev=True)
+ link_471()
+ link_742(dev=True)
+ link_842()
+ link_850(dev=True)
+ return [
+ ":node_modules/google-protobuf",
+ ":node_modules/tslib",
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-typescript",
+ ":node_modules/@types/google-protobuf",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ":node_modules/typescript",
+ ], {
+ "@rollup": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-typescript",
+ ],
+ "@types": [
+ ":node_modules/@types/google-protobuf",
+ ":node_modules/@types/node",
+ ],
+ }
+
+def _link_pkg_6():
+ link_137(dev=True)
+ link_196(dev=True)
+ link_742(dev=True)
+ return [
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ], {
+ "@rollup": [":node_modules/@rollup/plugin-node-resolve"],
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_7():
+ link_178()
+ link_179()
+ return [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ], {
+ "@rspack": [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ],
+ }
+
+def _link_pkg_8():
+ link_196()
+ link_545()
+ return [
+ ":node_modules/@types/node",
+ ":node_modules/jasmine",
+ ], {
+ "@types": [":node_modules/@types/node"],
+ }
+
+def _link_pkg_9():
+ link_218()
+ _fp_link_2()
+ _fp_link_3()
+ return [
+ ":node_modules/acorn",
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ], {
+ "@image-test": [
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ],
+ }
+
+def _link_pkg_10():
+ link_279()
+ link_280("chalk-alt")
+ return [
+ ":node_modules/chalk",
+ ":node_modules/chalk-alt",
+ ], None
+
+def _link_pkg_11():
+ link_868()
+ return [":node_modules/uuid"], None
+
+def _link_pkg_12():
+ link_868()
+ return [":node_modules/uuid"], None
+
+def _link_pkg_13():
+ _fp_link_5()
+ _fp_link_6()
+ return [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ], {
+ "@subs": [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ],
+ }
+
+_LINK_PACKAGE_FNS = {
+ "js/private/test/node-patches": _link_pkg_0,
+ "": _link_pkg_1,
+ "npm/private/test": _link_pkg_2,
+ "npm/private/lifecycle": _link_pkg_3,
+ "js/private/coverage/bundle": _link_pkg_4,
+ "js/private/worker/src": _link_pkg_5,
+ "js/private/devserver/src": _link_pkg_6,
+ "js/private/test/image/platform_deps": _link_pkg_7,
+ "js/private/test/js_run_devserver": _link_pkg_8,
+ "js/private/test/image": _link_pkg_9,
+ "npm/private/test/npm_package": _link_pkg_10,
+ "js/private/test/image-fixture-a": _link_pkg_11,
+ "js/private/test/image-fixture-d": _link_pkg_12,
+ "npm/private/test/subs": _link_pkg_13,
+}
+
# buildifier: disable=function-docstring
def npm_link_all_packages(name = "node_modules", imported_links = [], prod = True, dev = True):
if name != "node_modules":
@@ -1947,284 +2245,9 @@
scope_targets = None
if is_importer:
- if bazel_package == "js/private/test/node-patches":
- link_1(dev=True)
- link_5(dev=True)
- link_17(dev=True)
- link_508(dev=True)
- link_targets = [
- ":node_modules/@babel/cli",
- ":node_modules/@babel/core",
- ":node_modules/@babel/plugin-transform-modules-commonjs",
- ":node_modules/inline-fixtures",
- ]
- scope_targets = {
- "@babel": [
- ":node_modules/@babel/cli",
- ":node_modules/@babel/core",
- ":node_modules/@babel/plugin-transform-modules-commonjs",
- ],
- }
- elif bazel_package == "":
- link_21(dev=True)
- link_196(dev=True)
- link_280(dev=True)
- link_383("circles", dev=True)
- link_470(dev=True)
- link_558(dev=True)
- link_850(dev=True)
- link_targets = [
- ":node_modules/@bazel/runfiles",
- ":node_modules/@types/node",
- ":node_modules/chalk",
- ":node_modules/circles",
- ":node_modules/google-closure-compiler",
- ":node_modules/jsonpath-plus",
- ":node_modules/typescript",
- ]
- scope_targets = {
- "@bazel": [":node_modules/@bazel/runfiles"],
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "npm/private/test":
- link_51(dev=True)
- link_52(dev=True)
- link_67(dev=True)
- link_107(dev=True)
- link_107("regl", dev=True)
- link_205()
- link_206()
- link_267(dev=True)
- link_350(dev=True)
- link_387(dev=True)
- link_485("handlebars-helpers/helper-date", dev=True)
- link_487(dev=True)
- link_509(dev=True)
- link_554(dev=True)
- link_567(dev=True)
- link_568("lodash-4.17.21", dev=True)
- link_569("lodash-4.17.21-tar", dev=True)
- link_640(dev=True)
- link_690(dev=True)
- link_691(dev=True)
- link_701(dev=True)
- link_706(dev=True)
- link_749()
- link_752(dev=True)
- link_753(dev=True)
- link_813(dev=True)
- link_850(dev=True)
- link_864(dev=True)
- link_877(dev=True)
- _fp_link_4()
- link_targets = [
- ":node_modules/@vscode/vsce-sign-alpine-arm64",
- ":node_modules/@vscode/vsce-sign-alpine-x64",
- ":node_modules/sass-embedded-all-unknown",
- ":node_modules/@fastify/send",
- ":node_modules/@figma/nodegit",
- ":node_modules/@kubernetes/client-node",
- ":node_modules/@plotly/regl",
- ":node_modules/regl",
- ":node_modules/bufferutil",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/handlebars-helpers/helper-date",
- ":node_modules/hot-shots",
- ":node_modules/inline-fixtures",
- ":node_modules/json-stable-stringify",
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-tar",
- ":node_modules/node-gyp",
- ":node_modules/plotly.js",
- ":node_modules/pngjs",
- ":node_modules/protoc-gen-grpc",
- ":node_modules/puppeteer",
- ":node_modules/segfault-handler",
- ":node_modules/semver-first-satisfied",
- ":node_modules/syncpack",
- ":node_modules/typescript",
- ":node_modules/webpack-bundle-analyzer",
- ":node_modules/test-npm_package",
- ]
- scope_targets = {
- "@fastify": [":node_modules/@fastify/send"],
- "@figma": [":node_modules/@figma/nodegit"],
- "@kubernetes": [":node_modules/@kubernetes/client-node"],
- "@plotly": [":node_modules/@plotly/regl"],
- "@vscode": [
- ":node_modules/@vscode/vsce-sign-alpine-arm64",
- ":node_modules/@vscode/vsce-sign-alpine-x64",
- ],
- }
- elif bazel_package == "npm/private/lifecycle":
- link_117()
- link_119()
- link_125()
- link_135(dev=True)
- link_136(dev=True)
- link_137(dev=True)
- link_138(dev=True)
- link_139(dev=True)
- link_742(dev=True)
- link_targets = [
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-replace",
- ":node_modules/@rollup/plugin-terser",
- ":node_modules/rollup",
- ]
- scope_targets = {
- "@pnpm": [
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ],
- "@rollup": [
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-replace",
- ":node_modules/@rollup/plugin-terser",
- ],
- }
- elif bazel_package == "js/private/coverage/bundle":
- link_135(dev=True)
- link_136(dev=True)
- link_137(dev=True)
- link_268()
- link_742(dev=True)
- link_targets = [
- ":node_modules/c8",
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/rollup",
- ]
- scope_targets = {
- "@rollup": [
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ],
- }
- elif bazel_package == "js/private/worker/src":
- link_135(dev=True)
- link_136(dev=True)
- link_137(dev=True)
- link_140(dev=True)
- link_190(dev=True)
- link_196(dev=True)
- link_471()
- link_742(dev=True)
- link_842()
- link_850(dev=True)
- link_targets = [
- ":node_modules/google-protobuf",
- ":node_modules/tslib",
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-typescript",
- ":node_modules/@types/google-protobuf",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ":node_modules/typescript",
- ]
- scope_targets = {
- "@rollup": [
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-typescript",
- ],
- "@types": [
- ":node_modules/@types/google-protobuf",
- ":node_modules/@types/node",
- ],
- }
- elif bazel_package == "js/private/devserver/src":
- link_137(dev=True)
- link_196(dev=True)
- link_742(dev=True)
- link_targets = [
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ]
- scope_targets = {
- "@rollup": [":node_modules/@rollup/plugin-node-resolve"],
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "js/private/test/image/platform_deps":
- link_178()
- link_179()
- link_targets = [
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ]
- scope_targets = {
- "@rspack": [
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ],
- }
- elif bazel_package == "js/private/test/js_run_devserver":
- link_196()
- link_545()
- link_targets = [
- ":node_modules/@types/node",
- ":node_modules/jasmine",
- ]
- scope_targets = {
- "@types": [":node_modules/@types/node"],
- }
- elif bazel_package == "js/private/test/image":
- link_218()
- _fp_link_2()
- _fp_link_3()
- link_targets = [
- ":node_modules/acorn",
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ]
- scope_targets = {
- "@image-test": [
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ],
- }
- elif bazel_package == "npm/private/test/npm_package":
- link_279()
- link_280("chalk-alt")
- link_targets = [
- ":node_modules/chalk",
- ":node_modules/chalk-alt",
- ]
- elif bazel_package == "js/private/test/image-fixture-a":
- link_868()
- link_targets = [":node_modules/uuid"]
- elif bazel_package == "js/private/test/image-fixture-d":
- link_868()
- link_targets = [":node_modules/uuid"]
- elif bazel_package == "npm/private/test/subs":
- _fp_link_5()
- _fp_link_6()
- link_targets = [
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ]
- scope_targets = {
- "@subs": [
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ],
- }
+ _link_pkg_fn = _LINK_PACKAGE_FNS.get(bazel_package)
+ if _link_pkg_fn:
+ link_targets, scope_targets = _link_pkg_fn()
for link_fn in imported_links:
new_link_targets, new_scope_targets = link_fn(name, prod, dev)
if not link_targets:
@@ -2254,6 +2277,147 @@
visibility = ["//visibility:public"],
)
+_LINK_TARGETS = {
+ "js/private/test/node-patches": {
+ "dev": [
+ ":node_modules/@babel/cli",
+ ":node_modules/@babel/core",
+ ":node_modules/@babel/plugin-transform-modules-commonjs",
+ ":node_modules/inline-fixtures",
+ ],
+ },
+ "": {
+ "dev": [
+ ":node_modules/@bazel/runfiles",
+ ":node_modules/@types/node",
+ ":node_modules/chalk",
+ ":node_modules/circles",
+ ":node_modules/google-closure-compiler",
+ ":node_modules/jsonpath-plus",
+ ":node_modules/typescript",
+ ],
+ },
+ "npm/private/test": {
+ "prod": [
+ ":node_modules/@vscode/vsce-sign-alpine-arm64",
+ ":node_modules/@vscode/vsce-sign-alpine-x64",
+ ":node_modules/sass-embedded-all-unknown",
+ ],
+ "dev": [
+ ":node_modules/@fastify/send",
+ ":node_modules/@figma/nodegit",
+ ":node_modules/@kubernetes/client-node",
+ ":node_modules/@plotly/regl",
+ ":node_modules/regl",
+ ":node_modules/bufferutil",
+ ":node_modules/debug",
+ ":node_modules/esbuild",
+ ":node_modules/handlebars-helpers/helper-date",
+ ":node_modules/hot-shots",
+ ":node_modules/inline-fixtures",
+ ":node_modules/json-stable-stringify",
+ ":node_modules/lodash",
+ ":node_modules/lodash-4.17.21",
+ ":node_modules/lodash-4.17.21-tar",
+ ":node_modules/node-gyp",
+ ":node_modules/plotly.js",
+ ":node_modules/pngjs",
+ ":node_modules/protoc-gen-grpc",
+ ":node_modules/puppeteer",
+ ":node_modules/segfault-handler",
+ ":node_modules/semver-first-satisfied",
+ ":node_modules/syncpack",
+ ":node_modules/typescript",
+ ":node_modules/webpack-bundle-analyzer",
+ ":node_modules/test-npm_package",
+ ],
+ },
+ "npm/private/lifecycle": {
+ "prod": [
+ ":node_modules/@pnpm/lifecycle",
+ ":node_modules/@pnpm/logger",
+ ":node_modules/@pnpm/read-package-json",
+ ],
+ "dev": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-replace",
+ ":node_modules/@rollup/plugin-terser",
+ ":node_modules/rollup",
+ ],
+ },
+ "js/private/coverage/bundle": {
+ "prod": [":node_modules/c8"],
+ "dev": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/rollup",
+ ],
+ },
+ "js/private/worker/src": {
+ "prod": [
+ ":node_modules/google-protobuf",
+ ":node_modules/tslib",
+ ],
+ "dev": [
+ ":node_modules/@rollup/plugin-commonjs",
+ ":node_modules/@rollup/plugin-json",
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@rollup/plugin-typescript",
+ ":node_modules/@types/google-protobuf",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ":node_modules/typescript",
+ ],
+ },
+ "js/private/devserver/src": {
+ "dev": [
+ ":node_modules/@rollup/plugin-node-resolve",
+ ":node_modules/@types/node",
+ ":node_modules/rollup",
+ ],
+ },
+ "js/private/test/image/platform_deps": {
+ "prod": [
+ ":node_modules/@rspack/cli",
+ ":node_modules/@rspack/core",
+ ],
+ },
+ "js/private/test/js_run_devserver": {
+ "prod": [
+ ":node_modules/@types/node",
+ ":node_modules/jasmine",
+ ],
+ },
+ "js/private/test/image": {
+ "prod": [
+ ":node_modules/acorn",
+ ":node_modules/@image-test/a",
+ ":node_modules/@image-test/d",
+ ],
+ },
+ "npm/private/test/npm_package": {
+ "prod": [
+ ":node_modules/chalk",
+ ":node_modules/chalk-alt",
+ ],
+ },
+ "js/private/test/image-fixture-a": {
+ "prod": [":node_modules/uuid"],
+ },
+ "js/private/test/image-fixture-d": {
+ "prod": [":node_modules/uuid"],
+ },
+ "npm/private/test/subs": {
+ "prod": [
+ ":node_modules/@subs/a",
+ ":node_modules/@subs/b",
+ ],
+ },
+}
+
# buildifier: disable=function-docstring
def npm_link_targets(name = "node_modules", package = None, prod = True, dev = True):
if name != "node_modules":
@@ -2263,150 +2427,12 @@
bazel_package = package if package != None else native.package_name()
+ entry = _LINK_TARGETS.get(bazel_package, {})
link_targets = []
-
- if bazel_package == "js/private/test/node-patches":
- if dev:
- link_targets.extend([
- ":node_modules/@babel/cli",
- ":node_modules/@babel/core",
- ":node_modules/@babel/plugin-transform-modules-commonjs",
- ":node_modules/inline-fixtures",
- ])
- elif bazel_package == "":
- if dev:
- link_targets.extend([
- ":node_modules/@bazel/runfiles",
- ":node_modules/@types/node",
- ":node_modules/chalk",
- ":node_modules/circles",
- ":node_modules/google-closure-compiler",
- ":node_modules/jsonpath-plus",
- ":node_modules/typescript",
- ])
- elif bazel_package == "npm/private/test":
- if prod:
- link_targets.extend([
- ":node_modules/@vscode/vsce-sign-alpine-arm64",
- ":node_modules/@vscode/vsce-sign-alpine-x64",
- ":node_modules/sass-embedded-all-unknown",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@fastify/send",
- ":node_modules/@figma/nodegit",
- ":node_modules/@kubernetes/client-node",
- ":node_modules/@plotly/regl",
- ":node_modules/regl",
- ":node_modules/bufferutil",
- ":node_modules/debug",
- ":node_modules/esbuild",
- ":node_modules/handlebars-helpers/helper-date",
- ":node_modules/hot-shots",
- ":node_modules/inline-fixtures",
- ":node_modules/json-stable-stringify",
- ":node_modules/lodash",
- ":node_modules/lodash-4.17.21",
- ":node_modules/lodash-4.17.21-tar",
- ":node_modules/node-gyp",
- ":node_modules/plotly.js",
- ":node_modules/pngjs",
- ":node_modules/protoc-gen-grpc",
- ":node_modules/puppeteer",
- ":node_modules/segfault-handler",
- ":node_modules/semver-first-satisfied",
- ":node_modules/syncpack",
- ":node_modules/typescript",
- ":node_modules/webpack-bundle-analyzer",
- ":node_modules/test-npm_package",
- ])
- elif bazel_package == "npm/private/lifecycle":
- if prod:
- link_targets.extend([
- ":node_modules/@pnpm/lifecycle",
- ":node_modules/@pnpm/logger",
- ":node_modules/@pnpm/read-package-json",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-replace",
- ":node_modules/@rollup/plugin-terser",
- ":node_modules/rollup",
- ])
- elif bazel_package == "js/private/coverage/bundle":
- if prod:
- link_targets.extend([":node_modules/c8"])
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/rollup",
- ])
- elif bazel_package == "js/private/worker/src":
- if prod:
- link_targets.extend([
- ":node_modules/google-protobuf",
- ":node_modules/tslib",
- ])
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-commonjs",
- ":node_modules/@rollup/plugin-json",
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@rollup/plugin-typescript",
- ":node_modules/@types/google-protobuf",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ":node_modules/typescript",
- ])
- elif bazel_package == "js/private/devserver/src":
- if dev:
- link_targets.extend([
- ":node_modules/@rollup/plugin-node-resolve",
- ":node_modules/@types/node",
- ":node_modules/rollup",
- ])
- elif bazel_package == "js/private/test/image/platform_deps":
- if prod:
- link_targets.extend([
- ":node_modules/@rspack/cli",
- ":node_modules/@rspack/core",
- ])
- elif bazel_package == "js/private/test/js_run_devserver":
- if prod:
- link_targets.extend([
- ":node_modules/@types/node",
- ":node_modules/jasmine",
- ])
- elif bazel_package == "js/private/test/image":
- if prod:
- link_targets.extend([
- ":node_modules/acorn",
- ":node_modules/@image-test/a",
- ":node_modules/@image-test/d",
- ])
- elif bazel_package == "npm/private/test/npm_package":
- if prod:
- link_targets.extend([
- ":node_modules/chalk",
- ":node_modules/chalk-alt",
- ])
- elif bazel_package == "js/private/test/image-fixture-a":
- if prod:
- link_targets.extend([":node_modules/uuid"])
- elif bazel_package == "js/private/test/image-fixture-d":
- if prod:
- link_targets.extend([":node_modules/uuid"])
- elif bazel_package == "npm/private/test/subs":
- if prod:
- link_targets.extend([
- ":node_modules/@subs/a",
- ":node_modules/@subs/b",
- ])
+ if prod and "prod" in entry:
+ link_targets.extend(entry["prod"])
+ if dev and "dev" in entry:
+ link_targets.extend(entry["dev"])
return ["//%s%s" % (bazel_package, target) for target in link_targets]
# Generated npm_link_package_store for linking of first-party "@image-test/a" package