Skip to content

Commit

Permalink
fixup! refactor: normalize pnpm lockfile data in parser
Browse files Browse the repository at this point in the history
  • Loading branch information
jbedard committed May 16, 2024
1 parent 917a8b6 commit d87cfc4
Showing 1 changed file with 41 additions and 54 deletions.
95 changes: 41 additions & 54 deletions npm/private/utils.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,41 @@ def _convert_v5_importers(importers):
)
return result

def _convert_v5_v6_file_package(package_path, package_snapshot):
if "name" not in package_snapshot:
msg = "expected package {} to have a name field".format(package_path)
fail(msg)

name = package_snapshot["name"]
version = package_path
if _is_vendored_tarfile(package_snapshot):
package = package_snapshot["name"]
if "version" in package_snapshot:
version = package_snapshot["version"]
package_key = "{}@{}".format(package, version)
friendly_version = version
else:
package = package_path
friendly_version = package_snapshot["version"] if "version" in package_snapshot else version
package_key = package

return package_key, package, name, version, friendly_version

def _convert_v5_v6_default_package(package_path, package_snapshot):
package = package_path
if "name" not in package_snapshot:
msg = "expected package {} to have a name field".format(package_path)
fail(msg)
if "version" not in package_snapshot:
msg = "expected package {} to have a version field".format(package_path)
fail(msg)
name = package_snapshot["name"]
version = package_path
friendly_version = package_snapshot["version"]
package_key = package

return package_key, package, name, version, friendly_version

def _convert_v5_packages(packages):
result = {}
for package_path, package_snapshot in packages.items():
Expand All @@ -148,34 +183,10 @@ def _convert_v5_packages(packages):
friendly_version = version
package_key = "{}@{}".format(name, version)
elif package_path.startswith("file:"):
if "name" not in package_snapshot:
msg = "expected package {} to have a name field".format(package_path)
fail(msg)

name = package_snapshot["name"]
version = package_path
if _is_vendored_tarfile(package_snapshot):
package = package_snapshot["name"]
if "version" in package_snapshot:
version = package_snapshot["version"]
package_key = "{}@{}".format(package, version)
friendly_version = version
else:
package = package_path
friendly_version = package_snapshot["version"] if "version" in package_snapshot else version
package_key = package
# direct reference to file
package_key, package, name, version, friendly_version = _convert_v5_v6_file_package(package_path, package_snapshot)
else:
package = package_path
if "name" not in package_snapshot:
msg = "expected package {} to have a name field".format(package_path)
fail(msg)
if "version" not in package_snapshot:
msg = "expected package {} to have a version field".format(package_path)
fail(msg)
name = package_snapshot["name"]
version = package_path
friendly_version = package_snapshot["version"]
package_key = package
package_key, package, name, version, friendly_version = _convert_v5_v6_default_package(package_path, package_snapshot)

result[package_key] = _new_package_info(
id = package_snapshot["id"] if "id" in package_snapshot else None,
Expand Down Expand Up @@ -288,34 +299,10 @@ def _convert_v6_packages(packages):
friendly_version = version
package_key = "{}@{}".format(name, version)
elif package_path.startswith("file:"):
if "name" not in package_snapshot:
msg = "expected package {} to have a name field".format(package_path)
fail(msg)

name = package_snapshot["name"]
version = package_path
if _is_vendored_tarfile(package_snapshot):
package = package_snapshot["name"]
if "version" in package_snapshot:
version = package_snapshot["version"]
package_key = "{}@{}".format(package, version)
friendly_version = version
else:
package = package_path
friendly_version = package_snapshot["version"] if "version" in package_snapshot else version
package_key = package
# direct reference to file
package_key, package, name, version, friendly_version = _convert_v5_v6_file_package(package_path, package_snapshot)
else:
package = package_path
if "name" not in package_snapshot:
msg = "expected package {} to have a name field".format(package_path)
fail(msg)
if "version" not in package_snapshot:
msg = "expected package {} to have a version field".format(package_path)
fail(msg)
name = package_snapshot["name"]
version = package_path
friendly_version = package_snapshot["version"]
package_key = package
package_key, package, name, version, friendly_version = _convert_v5_v6_default_package(package_path, package_snapshot)

result[package_key] = _new_package_info(
id = package_snapshot["id"] if "id" in package_snapshot else None,
Expand Down

0 comments on commit d87cfc4

Please sign in to comment.