25 lines
No EOL
680 B
TypeScript
25 lines
No EOL
680 B
TypeScript
import { t } from "./base"
|
|
import { playerRouter } from "./player"
|
|
import { directorRouter } from "./director"
|
|
import { game } from "../game"
|
|
import { on } from "node:events"
|
|
|
|
export const appRouter = t.router({
|
|
player: playerRouter,
|
|
director: directorRouter,
|
|
|
|
join: t.procedure
|
|
.subscription(async function*() {
|
|
const iterable = on(game.eventBus, "player-broadcast")
|
|
|
|
for (const broadcast of game.getConnectionPlayerBroadcasts()) {
|
|
yield broadcast
|
|
}
|
|
|
|
for await (const broadcast of iterable) {
|
|
yield broadcast
|
|
}
|
|
}),
|
|
})
|
|
|
|
export type AppRouter = typeof appRouter |