diff options
Diffstat (limited to 'src/cli/init_command.zig')
-rw-r--r-- | src/cli/init_command.zig | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/cli/init_command.zig b/src/cli/init_command.zig index 6f1fced54..8d65461a7 100644 --- a/src/cli/init_command.zig +++ b/src/cli/init_command.zig @@ -110,12 +110,25 @@ pub const InitCommand = struct { initializeStore(); read_package_json: { if (package_json_file) |pkg| { - const stat = pkg.stat() catch break :read_package_json; + const size = brk: { + if (comptime bun.Environment.isWindows) { + const end = pkg.getEndPos() catch break :read_package_json; + if (end == 0) { + break :read_package_json; + } + + break :brk end; + } + const stat = pkg.stat() catch break :read_package_json; - if (stat.kind != .file or stat.size == 0) { - break :read_package_json; - } - package_json_contents = try MutableString.init(alloc, stat.size); + if (stat.kind != .file or stat.size == 0) { + break :read_package_json; + } + + break :brk stat.size; + }; + + package_json_contents = try MutableString.init(alloc, size); package_json_contents.list.expandToCapacity(); _ = pkg.preadAll(package_json_contents.list.items, 0) catch { |