diff options
Diffstat (limited to 'src/resolver/package_json.zig')
-rw-r--r-- | src/resolver/package_json.zig | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig index a9952c8b1..053e00a90 100644 --- a/src/resolver/package_json.zig +++ b/src/resolver/package_json.zig @@ -44,11 +44,13 @@ pub const PackageJSON = struct { // browser_map: BrowserMap, - pub fn parse(r: *resolver.Resolver, input_path: string) ?PackageJSON { + pub fn parse(r: *resolver.Resolver, input_path: string, dirname_fd: StoredFileDescriptorType) ?PackageJSON { const parts = [_]string{ input_path, "package.json" }; - const package_json_path = r.fs.join(&parts); - const entry = r.caches.fs.readFile(r.fs, input_path) catch |err| { + const package_json_path_ = r.fs.abs(&parts); + const package_json_path = r.fs.filename_store.append(package_json_path_) catch unreachable; + + const entry = r.caches.fs.readFile(r.fs, package_json_path, dirname_fd) catch |err| { if (err != error.IsDir) { r.log.addErrorFmt(null, logger.Loc.Empty, r.allocator, "Cannot read file \"{s}\": {s}", .{ r.prettyPath(fs.Path.init(input_path)), @errorName(err) }) catch unreachable; } @@ -60,7 +62,7 @@ pub const PackageJSON = struct { debug.addNoteFmt("The file \"{s}\" exists", .{package_json_path}) catch unreachable; } - const key_path = fs.Path.init(r.allocator.dupe(u8, package_json_path) catch unreachable); + const key_path = fs.Path.init(package_json_path); var json_source = logger.Source.initPathString(key_path.text, entry.contents); json_source.path.pretty = r.prettyPath(json_source.path); |