diff options
author | 2021-09-22 01:03:06 -0700 | |
---|---|---|
committer | 2021-09-22 01:03:06 -0700 | |
commit | 204b07f46b6c8985c8928ec58b51d941903ad69b (patch) | |
tree | 88ed268250938f4c444fac9ffcf0f224efafa791 /src/resolver/package_json.zig | |
parent | a48a02bade5079ab7c5ddd293ba8dc3b2f87ed26 (diff) | |
download | bun-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.zig | 14 |
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; |