aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/node/node_fs.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-26 21:35:49 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-26 21:35:49 -0700
commit86633e0af47dc9ff62e9cef23962a855d061bde8 (patch)
tree991683656af75e39cd041b4631d6b0d196c77a44 /src/bun.js/node/node_fs.zig
parentec2cf38ad85d05bb15080d88febd2476548987c8 (diff)
downloadbun-86633e0af47dc9ff62e9cef23962a855d061bde8.tar.gz
bun-86633e0af47dc9ff62e9cef23962a855d061bde8.tar.zst
bun-86633e0af47dc9ff62e9cef23962a855d061bde8.zip
Start time performance improvements to build tools (#3797)
* Make os.cpus() faster on Linux * Fix crash See https://github.com/ziglang/zig/issues/16540 * Handle watcher_count == 0 * Add assertion * Clean up lifetimes of fs watcher a little * :scissors: * Use `errdefer` * Make the error better * Make os.cpus() more lazy * Please don't translate-c on the entire C standard library * immediately closing works correctly is still bug * ops * fmt+fixeup * add back verbose * free instead of destroy * remove destroy option for watcher tasks * flush verbose and add debug log * fixup files * use log for debug --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: cirospaciari <ciro.spaciari@gmail.com>
Diffstat (limited to 'src/bun.js/node/node_fs.zig')
-rw-r--r--src/bun.js/node/node_fs.zig9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig
index 8fb769fac..314cd44bd 100644
--- a/src/bun.js/node/node_fs.zig
+++ b/src/bun.js/node/node_fs.zig
@@ -4488,8 +4488,13 @@ pub const NodeFS = struct {
}
pub fn watch(_: *NodeFS, args: Arguments.Watch, comptime _: Flavor) Maybe(Return.Watch) {
const watcher = args.createFSWatcher() catch |err| {
- args.global_this.throwError(err, "Failed to watch filename");
- return Maybe(Return.Watch){ .result = JSC.JSValue.jsUndefined() };
+ var buf = std.fmt.allocPrint(bun.default_allocator, "{s} watching {}", .{ @errorName(err), strings.QuotedFormatter{ .text = args.path.slice() } }) catch unreachable;
+ defer bun.default_allocator.free(buf);
+ args.global_this.throwValue((JSC.SystemError{
+ .message = bun.String.init(buf),
+ .path = bun.String.init(args.path.slice()),
+ }).toErrorInstance(args.global_this));
+ return Maybe(Return.Watch){ .result = JSC.JSValue.undefined };
};
return Maybe(Return.Watch){ .result = watcher };
}