fix(core): better global sync event structure (#22858)

This commit is contained in:
James Long
2026-04-16 12:35:37 -04:00
committed by GitHub
parent d82bc3a421
commit b28956f0db
2 changed files with 5 additions and 10 deletions

View File

@@ -460,8 +460,7 @@ export namespace Workspace {
if (!("payload" in evt)) return
if (evt.payload.type === "sync") {
// This name -> type is temporary
SyncEvent.replay({ ...evt.payload, type: evt.payload.name } as SyncEvent.SerializedEvent)
SyncEvent.replay(evt.payload.syncEvent as SyncEvent.SerializedEvent)
}
GlobalBus.emit("event", {

View File

@@ -155,8 +155,10 @@ function process<Def extends Definition>(def: Def, event: Event<Def>, options: {
workspace: WorkspaceContext.workspaceID,
payload: {
type: "sync",
name: versionedType(def.type, def.version),
...event,
syncEvent: {
type: versionedType(def.type, def.version),
...event,
},
},
})
}
@@ -164,12 +166,6 @@ function process<Def extends Definition>(def: Def, event: Event<Def>, options: {
})
}
// TODO:
//
// * Support applying multiple events at one time. One transaction,
// and it validets all the sequence ids
// * when loading events from db, apply zod validation to ensure shape
export function replay(event: SerializedEvent, options?: { publish: boolean }) {
const def = registry.get(event.type)
if (!def) {