Skip to content

Commit 5d8e46f

Browse files
committed
refactor: remove use of pnpm <9 lockfile id field
1 parent ed6f7ec commit 5d8e46f

File tree

3 files changed

+4
-29
lines changed

3 files changed

+4
-29
lines changed

npm/private/npm_translate_lock_generate.bzl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,9 @@ sh_binary(
126126
name = package_info.get("name")
127127
version = package_info.get("version")
128128
deps = package_info.get("dependencies")
129-
if version.startswith("file:"):
130-
if version in packages and packages[version]["id"] and packages[version]["id"].startswith("file:"):
131-
dep_path = helpers.link_package(root_package, packages[version]["id"][len("file:"):])
132-
else:
133-
dep_path = helpers.link_package(root_package, version[len("file:"):])
129+
resolution = package_info.get("resolution")
130+
if resolution.get("type", None) == "directory":
131+
dep_path = helpers.link_package(root_package, resolution.get("directory"))
134132
dep_key = "{}+{}".format(name, version)
135133
transitive_deps = {}
136134
for raw_package, raw_version in deps.items():

npm/private/pnpm.bzl

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,6 @@ def _new_import_info(dependencies, dev_dependencies, optional_dependencies):
3434
# have data normalized across lockfiles.
3535
#
3636
# Args:
37-
# id: a "universal identifier of the package" only present when the id is not the same as the key
38-
# Normally present when the package is an odd version (such as file: or link: package) while
39-
# also having peer dependencies in the key.
40-
#
41-
# Removed in lockfile v9+ where snapshots/packages are separate.
42-
#
43-
# See https://github.com/pnpm/spec/blob/master/lockfile/6.0.md#packagesdependencypathid
44-
#
4537
# name:
4638
# version:
4739
# dependencies:
@@ -64,9 +56,8 @@ def _new_import_info(dependencies, dev_dependencies, optional_dependencies):
6456
# See https://github.com/pnpm/spec/blob/master/lockfile/6.0.md#packagesdependencypathrequiresbuild
6557
#
6658
# resolution: the lockfile resolution field
67-
def _new_package_info(id, name, dependencies, optional_dependencies, dev_only, has_bin, optional, requires_build, version, friendly_version, resolution):
59+
def _new_package_info(name, dependencies, optional_dependencies, dev_only, has_bin, optional, requires_build, version, friendly_version, resolution):
6860
return {
69-
"id": id,
7061
"name": name,
7162
"dependencies": dependencies,
7263
"optional_dependencies": optional_dependencies,
@@ -236,7 +227,6 @@ def _convert_v5_packages(packages):
236227
package_key = _to_package_key(name, version)
237228

238229
package_info = _new_package_info(
239-
id = package_snapshot.get("id", None),
240230
name = name,
241231
version = version,
242232
friendly_version = friendly_version,
@@ -403,7 +393,6 @@ def _convert_v6_packages(packages):
403393
package_key = _to_package_key(name, version)
404394

405395
package_info = _new_package_info(
406-
id = package_snapshot.get("id", None),
407396
name = name,
408397
version = version,
409398
friendly_version = friendly_version,
@@ -530,16 +519,7 @@ def _convert_v9_packages(packages, snapshots):
530519

531520
package_key = _convert_pnpm_v6_v9_version_peer_dep(package_key)
532521

533-
# pnpm v9+ no longer contains an id field
534-
# but we will use it to support some edge cases
535-
id = None
536-
537522
if version.startswith("file:"):
538-
# Keep the file: path as the 'id' for later use when linking to the path
539-
peer_index = version.find("(")
540-
if peer_index != -1:
541-
id = version[:peer_index]
542-
543523
version, friendly_version = _convert_v9_file_package_version(version, package_data)
544524
version = _convert_pnpm_v6_v9_version_peer_dep(version)
545525

@@ -552,7 +532,6 @@ def _convert_v9_packages(packages, snapshots):
552532
friendly_version = package_data["version"] if "version" in package_data else static_key[version_index + 1:]
553533

554534
package_info = _new_package_info(
555-
id = id,
556535
name = name,
557536
version = version,
558537
friendly_version = friendly_version,

npm/private/test/parse_pnpm_lock_tests.bzl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ expected_importers = {
2727
}
2828
expected_packages = {
2929
"@aspect-test/[email protected]": {
30-
"id": None,
3130
"name": "@aspect-test/a",
3231
"dependencies": {
3332
"@aspect-test/b": "5.0.0",
@@ -46,7 +45,6 @@ expected_packages = {
4645
},
4746
},
4847
49-
"id": None,
5048
"name": "lodash",
5149
"dependencies": {},
5250
"optional_dependencies": {},

0 commit comments

Comments
 (0)