aboutsummaryrefslogtreecommitdiff
path: root/src/resolver/package_json.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-22 01:03:06 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-22 01:03:06 -0700
commit204b07f46b6c8985c8928ec58b51d941903ad69b (patch)
tree88ed268250938f4c444fac9ffcf0f224efafa791 /src/resolver/package_json.zig
parenta48a02bade5079ab7c5ddd293ba8dc3b2f87ed26 (diff)
downloadbun-204b07f46b6c8985c8928ec58b51d941903ad69b.tar.gz
bun-204b07f46b6c8985c8928ec58b51d941903ad69b.tar.zst
bun-204b07f46b6c8985c8928ec58b51d941903ad69b.zip
package json exports seems to work now!!!
Diffstat (limited to 'src/resolver/package_json.zig')
-rw-r--r--src/resolver/package_json.zig14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig
index b6faa19be..d98784c2b 100644
--- a/src/resolver/package_json.zig
+++ b/src/resolver/package_json.zig
@@ -686,6 +686,7 @@ pub const ExportsMap = struct {
.e_object => |e_obj| {
var map_data = Entry.Data.Map.List{};
map_data.ensureTotalCapacity(this.allocator, e_obj.*.properties.len) catch unreachable;
+ map_data.len = map_data.capacity;
var expansion_keys = this.allocator.alloc(Entry.Data.Map.MapEntry, e_obj.*.properties.len) catch unreachable;
var expansion_key_i: usize = 0;
var map_data_slices = map_data.slice();
@@ -916,9 +917,9 @@ pub const ESModule = struct {
if (strings.startsWith(package.name, ".") or strings.indexAnyComptime(package.name, "\\%") != null)
return null;
- std.mem.copy(u8, subpath_buf[1..], package.subpath);
+ std.mem.copy(u8, subpath_buf[1..], specifier[package.name.len..]);
subpath_buf[0] = '.';
- package.subpath = subpath_buf[0 .. package.subpath.len + 1];
+ package.subpath = subpath_buf[0 .. specifier[package.name.len..].len + 1];
return package;
}
};
@@ -948,7 +949,12 @@ pub const ESModule = struct {
const PercentEncoding = @import("../query_string_map.zig").PercentEncoding;
var fbs = std.io.fixedBufferStream(&resolved_path_buf_percent);
var writer = fbs.writer();
- const len = PercentEncoding.decode(@TypeOf(&writer), &writer, result.path) catch return Resolution{ .status = .InvalidModuleSpecifier, .path = result.path, .debug = result.debug };
+ const len = PercentEncoding.decode(@TypeOf(&writer), &writer, result.path) catch return Resolution{
+ .status = .InvalidModuleSpecifier,
+ .path = result.path,
+ .debug = result.debug,
+ };
+
const resolved_path = resolved_path_buf_percent[0..len];
var found: string = "";
@@ -1192,7 +1198,7 @@ pub const ESModule = struct {
log.addNoteFmt("The key \"{s}\" matched", .{key}) catch unreachable;
}
- var result = r.resolveTarget(package_url, target, subpath, pattern);
+ var result = r.resolveTarget(package_url, slice.items(.value)[i], subpath, pattern);
if (result.status.isUndefined()) {
did_find_map_entry = true;
last_map_entry_i = i;