aboutsummaryrefslogtreecommitdiff
path: root/src/cli/init_command.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/init_command.zig')
-rw-r--r--src/cli/init_command.zig23
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 {