global.dispose

This commit is contained in:
Dax Raad
2025-12-10 22:22:00 -05:00
parent 530b75a92a
commit 13a77005f1
4 changed files with 75 additions and 9 deletions

View File

@@ -7,7 +7,13 @@ import { GlobalBus } from "./global"
export namespace Bus {
const log = Log.create({ service: "bus" })
type Subscription = (event: any) => void
const disposedEventType = "server.instance.disposed"
export const InstanceDisposed = BusEvent.define(
"server.instance.disposed",
z.object({
directory: z.string(),
}),
)
const state = Instance.state(
() => {
@@ -21,7 +27,7 @@ export namespace Bus {
const wildcard = entry.subscriptions.get("*")
if (!wildcard) return
const event = {
type: disposedEventType,
type: InstanceDisposed.type,
properties: {
directory: Instance.directory,
},
@@ -32,13 +38,6 @@ export namespace Bus {
},
)
export const InstanceDisposed = BusEvent.define(
disposedEventType,
z.object({
directory: z.string(),
}),
)
export async function publish<Definition extends BusEvent.Definition>(
def: Definition,
properties: z.output<Definition["properties"]>,