Skip to content

Commit

Permalink
fix: issues with pnpm workspaces with ../ importers (#97)
Browse files Browse the repository at this point in the history
  • Loading branch information
gregmagolan authored May 11, 2022
1 parent c135650 commit 95868fc
Show file tree
Hide file tree
Showing 24 changed files with 399 additions and 3 deletions.
2 changes: 2 additions & 0 deletions e2e/pnpm_workspace/lib/a/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
const packageJson = require('./package.json')
const e = require('@aspect-test/e')
module.exports = {
id: () =>
`${packageJson.name}@${
packageJson.version ? package.version : '0.0.0'
}`,
idE: () => e.id(),
}
2 changes: 2 additions & 0 deletions e2e/pnpm_workspace/lib/b/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
const packageJson = require('./package.json')
const f = require('@aspect-test/f')
module.exports = {
id: () =>
`${packageJson.name}@${
packageJson.version ? package.version : '0.0.0'
}`,
idF: () => f.id(),
}
5 changes: 5 additions & 0 deletions e2e/pnpm_workspace_dot_dot/.bazelignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
root/node_modules/
app/a/node_modules/
app/b/node_modules/
lib/a/node_modules/
lib/b/node_modules/
2 changes: 2 additions & 0 deletions e2e/pnpm_workspace_dot_dot/.bazelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# import common bazelrc shared with e2e workspaces
import %workspace%/../../.bazelrc.common
1 change: 1 addition & 0 deletions e2e/pnpm_workspace_dot_dot/.bazelversion
Empty file.
32 changes: 32 additions & 0 deletions e2e/pnpm_workspace_dot_dot/WORKSPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
local_repository(
name = "aspect_rules_js",
path = "../..",
)

load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")

rules_js_dependencies()

load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains")

nodejs_register_toolchains(
name = "nodejs",
node_version = "16.9.0",
)

load("@aspect_bazel_lib//lib:repositories.bzl", "DEFAULT_YQ_VERSION", "register_yq_toolchains")

register_yq_toolchains(
version = DEFAULT_YQ_VERSION,
)

load("@aspect_rules_js//js:npm_import.bzl", "translate_pnpm_lock")

translate_pnpm_lock(
name = "npm",
pnpm_lock = "//root:pnpm-lock.yaml",
)

load("@npm//:repositories.bzl", "npm_repositories")

npm_repositories()
31 changes: 31 additions & 0 deletions e2e/pnpm_workspace_dot_dot/app/a/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_test")
load("@npm//:defs.bzl", "link_js_packages")

link_js_packages()

js_binary(
name = "main",
args = ["foo"],
data = [
"@npm//@aspect-test/a",
"@npm//@aspect-test/b",
"@npm//@aspect-test/c",
"@npm//dot_dot/app/a/@aspect-test/g",
"@npm//dot_dot/app/a/@lib/a",
],
entry_point = "main.js",
)

js_test(
name = "test",
args = ["foo"],
data = [
"@npm//@aspect-test/a",
"@npm//@aspect-test/b",
"@npm//@aspect-test/c",
"@npm//dot_dot/app/a/@aspect-test/g",
"@npm//dot_dot/app/a/@lib/a",
],
entry_point = "main.js",
verbose = True,
)
6 changes: 6 additions & 0 deletions e2e/pnpm_workspace_dot_dot/app/a/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
console.log(process.argv)
console.log('--@aspect-test/a--', require('@aspect-test/a').id())
console.log('--@aspect-test/b--', require('@aspect-test/b').id())
console.log('--@aspect-test/c--', require('@aspect-test/c').id())
console.log('--@aspect-test/g--', require('@aspect-test/g').id())
console.log('--@lib/a--', require('@lib/a').id())
11 changes: 11 additions & 0 deletions e2e/pnpm_workspace_dot_dot/app/a/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "@app/a",
"private": true,
"dependencies": {
"@aspect-test/a": "1.0.0",
"@aspect-test/b": "1.0.0",
"@aspect-test/c": "1.0.0",
"@aspect-test/g": "1.0.0",
"@lib/a": "workspace:*"
}
}
33 changes: 33 additions & 0 deletions e2e/pnpm_workspace_dot_dot/app/b/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_test")
load("@npm//:defs.bzl", "link_js_packages")

link_js_packages()

js_binary(
name = "main",
args = ["foo"],
data = [
"@npm//@aspect-test/a",
"@npm//@aspect-test/b",
"@npm//@aspect-test/c",
"@npm//dot_dot/app/b/@aspect-test/h",
"@npm//dot_dot/app/b/@lib/b",
"@npm//dot_dot/app/b/@lib/b_alias",
],
entry_point = "main.js",
)

js_test(
name = "test",
args = ["foo"],
data = [
"@npm//@aspect-test/a",
"@npm//@aspect-test/b",
"@npm//@aspect-test/c",
"@npm//dot_dot/app/b/@aspect-test/h",
"@npm//dot_dot/app/b/@lib/b",
"@npm//dot_dot/app/b/@lib/b_alias",
],
entry_point = "main.js",
verbose = True,
)
7 changes: 7 additions & 0 deletions e2e/pnpm_workspace_dot_dot/app/b/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
console.log(process.argv)
console.log('--@aspect-test/a--', require('@aspect-test/a').id())
console.log('--@aspect-test/b--', require('@aspect-test/b').id())
console.log('--@aspect-test/c--', require('@aspect-test/c').id())
console.log('--@aspect-test/h--', require('@aspect-test/h').id())
console.log('--@lib/b--', require('@lib/b').id())
console.log('--@lib/b_alias--', require('@lib/b_alias').id())
12 changes: 12 additions & 0 deletions e2e/pnpm_workspace_dot_dot/app/b/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "@app/b",
"private": true,
"dependencies": {
"@aspect-test/a": "1.0.0",
"@aspect-test/b": "1.0.0",
"@aspect-test/c": "1.0.0",
"@aspect-test/h": "1.0.0",
"@lib/b": "workspace:*",
"@lib/b_alias": "workspace:@lib/b@*"
}
}
13 changes: 13 additions & 0 deletions e2e/pnpm_workspace_dot_dot/lib/a/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
load("@aspect_rules_js//js:defs.bzl", "js_package")
load("@npm//:defs.bzl", "link_js_packages")

link_js_packages()

js_package(
name = "a",
srcs = [
"index.js",
"package.json",
],
visibility = ["//visibility:public"],
)
9 changes: 9 additions & 0 deletions e2e/pnpm_workspace_dot_dot/lib/a/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const packageJson = require('./package.json')
const e = require('@aspect-test/e')
module.exports = {
id: () =>
`${packageJson.name}@${
packageJson.version ? package.version : '0.0.0'
}`,
idE: () => e.id(),
}
8 changes: 8 additions & 0 deletions e2e/pnpm_workspace_dot_dot/lib/a/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "@lib/a",
"private": true,
"dependencies": {
"@aspect-test/e": "1.0.0",
"@lib/b": "workspace:*"
}
}
13 changes: 13 additions & 0 deletions e2e/pnpm_workspace_dot_dot/lib/b/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
load("@aspect_rules_js//js:defs.bzl", "js_package")
load("@npm//:defs.bzl", "link_js_packages")

link_js_packages()

js_package(
name = "b",
srcs = [
"index.js",
"package.json",
],
visibility = ["//visibility:public"],
)
9 changes: 9 additions & 0 deletions e2e/pnpm_workspace_dot_dot/lib/b/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const packageJson = require('./package.json')
const f = require('@aspect-test/f')
module.exports = {
id: () =>
`${packageJson.name}@${
packageJson.version ? package.version : '0.0.0'
}`,
idF: () => f.id(),
}
7 changes: 7 additions & 0 deletions e2e/pnpm_workspace_dot_dot/lib/b/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "@lib/b",
"private": true,
"dependencies": {
"@aspect-test/f": "1.0.0"
}
}
3 changes: 3 additions & 0 deletions e2e/pnpm_workspace_dot_dot/root/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
load("@npm//:defs.bzl", "link_js_packages")

link_js_packages()
13 changes: 13 additions & 0 deletions e2e/pnpm_workspace_dot_dot/root/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "simple",
"packageManager": "[email protected]",
"dependencies": {
"@aspect-test/a": "5.0.0"
},
"devDependencies": {
"@aspect-test/b": "5.0.0"
},
"optionalDependencies": {
"@aspect-test/c": "2.0.0"
}
}
Loading

0 comments on commit 95868fc

Please sign in to comment.