Add Bun.canReload event to inspector

This commit is contained in:
Ashcon Partovi
2023-09-01 00:33:33 -07:00
parent 40d749b480
commit 1ff8155c28
2 changed files with 17 additions and 0 deletions

View File

@@ -452,6 +452,21 @@ extern "C" void Bun__ensureDebugger(ScriptExecutionContextIdentifier scriptId, b
}
}
extern "C" void BunDebugger__willHotReload() {
if (debuggerScriptExecutionContext == nullptr) {
return;
}
debuggerScriptExecutionContext->postTaskConcurrently([](ScriptExecutionContext &context){
WTF::LockHolder locker(inspectorConnectionsLock);
for (auto& connections : *inspectorConnections) {
for (auto* connection : connections.value) {
connection->sendMessageToFrontend("{\"method\":\"Bun.canReload\"}"_s);
}
}
});
}
JSC_DEFINE_HOST_FUNCTION(jsFunctionCreateConnection, (JSGlobalObject * globalObject, CallFrame* callFrame))
{
auto* debuggerGlobalObject = jsDynamicCast<Zig::GlobalObject*>(globalObject);

View File

@@ -2720,6 +2720,7 @@ pub const VirtualMachine = struct {
pub const HotReloader = NewHotReloader(VirtualMachine, JSC.EventLoop, false);
pub const Watcher = HotReloader.Watcher;
extern fn BunDebugger__willHotReload() void;
pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime reload_immediately: bool) type {
return struct {
@@ -2777,6 +2778,7 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime
unreachable;
}
BunDebugger__willHotReload();
var that = bun.default_allocator.create(HotReloadTask) catch unreachable;
that.* = this.*;