Skip to content

Commit

Permalink
fix: route runfiles of js_library/JsInfo 1p linked dep through npm_pa…
Browse files Browse the repository at this point in the history
…ckage_store and npm_link_package_store (#2027)

* fix: route runfiles of js_library/JsInfo 1p linked dep through npm_package_store and npm_link_package_store

* jfirebaugh/rules_ts@d0e8522

* jfirebaugh/rules_ts@d0e8522

---------

Co-authored-by: Jason Bedard <jason+github@jbedard.ca>
  • Loading branch information
gregmagolan and jbedard authored Dec 4, 2024
1 parent b0b0781 commit 20b5216
Show file tree
Hide file tree
Showing 16 changed files with 191 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
# This file should be checked into version control along with the pnpm-lock.yaml file.
.npmrc=-2065072158
examples/js_binary/package.json=-41174383
examples/js_lib_pkg/a/package.json=740602849
examples/js_lib_pkg/b/package.json=641686424
examples/linked_consumer/package.json=-1109186228
examples/linked_empty_node_modules/package.json=-1039372825
examples/linked_lib/package.json=1590632845
Expand All @@ -29,5 +31,5 @@ npm/private/test/vendored/is-odd/package.json=1041695223
npm/private/test/vendored/lodash-4.17.21.tgz=-1206623349
npm/private/test/vendored/semver-max/package.json=578664053
package.json=1510979981
pnpm-lock.yaml=1138016668
pnpm-workspace.yaml=-762451270
pnpm-lock.yaml=-1005187097
pnpm-workspace.yaml=-1123429050
2 changes: 2 additions & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
e2e/
examples/js_binary/node_modules/
examples/js_lib_pkg/a/node_modules
examples/js_lib_pkg/b/node_modules
examples/linked_consumer/node_modules
examples/linked_empty_node_modules/node_modules
examples/linked_lib/node_modules
Expand Down
11 changes: 11 additions & 0 deletions examples/js_lib_pkg/a/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
load("@aspect_rules_js//js:defs.bzl", "js_library")
load("@npm//:defs.bzl", "npm_link_all_packages")

npm_link_all_packages(name = "node_modules")

js_library(
name = "pkg",
srcs = ["index.js"],
data = ["test.txt"],
visibility = ["//visibility:public"],
)
2 changes: 2 additions & 0 deletions examples/js_lib_pkg/a/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const { readFileSync } = require('node:fs')
exports.test = readFileSync(`${__dirname}/test.txt`, 'utf-8')
6 changes: 6 additions & 0 deletions examples/js_lib_pkg/a/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"name": "js_lib_pkg_a",
"devDependencies": {
"@types/node": "18.19.54"
}
}
1 change: 1 addition & 0 deletions examples/js_lib_pkg/a/test.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
test
10 changes: 10 additions & 0 deletions examples/js_lib_pkg/b/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
load("@aspect_rules_js//js:defs.bzl", "js_test")
load("@npm//:defs.bzl", "npm_link_all_packages")

npm_link_all_packages(name = "node_modules")

js_test(
name = "test",
data = [":node_modules"],
entry_point = "test.js",
)
9 changes: 9 additions & 0 deletions examples/js_lib_pkg/b/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "js_lib_pkg_b",
"dependencies": {
"js_lib_pkg_a": "workspace:*"
},
"devDependencies": {
"@types/node": "18.19.54"
}
}
3 changes: 3 additions & 0 deletions examples/js_lib_pkg/b/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
const { strict: assert } = require('node:assert')
const { test } = require('js_lib_pkg_a')
assert.equal(test, 'test')
2 changes: 1 addition & 1 deletion npm/private/npm_link_package_store.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ def _npm_link_package_store_impl(ctx):
files = files_depset,
# Include all transitives in runfiles so that this target can be used in the data
# of a generic binary target such as sh_binary
runfiles = ctx.runfiles(transitive_files = transitive_files_depset),
runfiles = ctx.runfiles(transitive_files = transitive_files_depset).merge(ctx.attr.src[DefaultInfo].default_runfiles),
),
js_info(
target = ctx.label,
Expand Down
6 changes: 6 additions & 0 deletions npm/private/npm_package_store.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,12 @@ deps of npm_package_store must be in the same package.""" % (ctx.label.package,
dev = ctx.attr.dev,
),
]

if ctx.attr.src:
providers.append(DefaultInfo(
runfiles = ctx.attr.src[DefaultInfo].default_runfiles,
))

if package_store_directory and package_store_directory.is_directory:
# Provide an output group that provides a single file which is the
# package directory for use in $(execpath) and $(rootpath).
Expand Down
56 changes: 55 additions & 1 deletion npm/private/test/snapshots/bzlmod/npm_defs.bzl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 55 additions & 1 deletion npm/private/test/snapshots/wksp/npm_defs.bzl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion npm/private/test/snapshots/wksp/repositories.bzl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 23 additions & 7 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
packages:
- 'examples/*'
- 'examples/js_lib_pkg/*'
- 'examples/npm_package/libs/*'
- 'examples/npm_package/packages/*'
- 'js/private/coverage/bundle'
Expand Down

0 comments on commit 20b5216

Please sign in to comment.