diff options
author | 2022-07-17 18:58:28 +0400 | |
---|---|---|
committer | 2022-07-17 07:58:28 -0700 | |
commit | a85413c80207c9583e237672b48f9857d90159d5 (patch) | |
tree | 07559353425dceedb3be2b03779a9b4ef213f2b1 /src/install/install.zig | |
parent | 24a5f9ba290504895b5cd8b8a9a27a5800a7709c (diff) | |
download | bun-a85413c80207c9583e237672b48f9857d90159d5.tar.gz bun-a85413c80207c9583e237672b48f9857d90159d5.tar.zst bun-a85413c80207c9583e237672b48f9857d90159d5.zip |
fix scoped packages name resolution (#760)
Diffstat (limited to '')
-rw-r--r-- | src/install/install.zig | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/install/install.zig b/src/install/install.zig index 764191e79..1f5cac408 100644 --- a/src/install/install.zig +++ b/src/install/install.zig @@ -3533,17 +3533,23 @@ pub const PackageManager = struct { var unscoped_name = positional; request.name = unscoped_name; + // request.name = "@package..." => unscoped_name = "package..." if (unscoped_name.len > 0 and unscoped_name[0] == '@') { unscoped_name = unscoped_name[1..]; } + + // if there is a semver in package name... if (std.mem.indexOfScalar(u8, unscoped_name, '@')) |i| { + // unscoped_name = "package@1.0.0" => request.name = "package" request.name = unscoped_name[0..i]; + // if package was scoped, put "@" back in request.name if (unscoped_name.ptr != positional.ptr) { - request.name = request.name[0 .. i + 1]; + request.name = positional[0 .. i + 1]; } - if (positional.len > i + 1) request.version_buf = positional[i + 1 ..]; + // unscoped_name = "package@1.0.0" => request.version_buf = "1.0.0" + if (unscoped_name.len > i + 1) request.version_buf = unscoped_name[i + 1 ..]; } if (strings.hasPrefix("http://", request.name) or |