Something went wrong. Try again.
Starship Simulator Controls thoriumsim.com
Something went wrong. Try again.
1.2 kB · 41 lines
TSX
at develop
123456789101112131415161718192021222324252627282930313233343536373839404142import { pubsub } from "@thorium/.server/init/pubsub";import { t } from "@thorium/.server/init/t";import z from "zod";
export const officersLog = t.router({ get: t.procedure .input(z.object({ clientId: z.string() })) .filter((publish: { clientId: string }, { input }) => { if (publish && input.clientId !== publish.clientId) return false; return true; }) .autoPublish( ["flightClient"], (entity) => entity.components.flightClient && { clientId: entity.components.flightClient.clientId, }, ) .request(({ ctx, input }) => { return ctx.getFlightClient(input.clientId)?.components.flightClient?.officersLog || []; }), add: t.procedure .input( z.object({ clientId: z.string(), message: z.string(), timestamp: z.number(), }), ) .send(({ ctx, input }) => { const { message, timestamp } = input; const flightClientEntity = ctx.getFlightClient(input.clientId); flightClientEntity?.updateComponent("flightClient", { officersLog: flightClientEntity?.components.flightClient?.officersLog.concat({ message, timestamp, }) || [{ message, timestamp }], }); pubsub.publish.officersLog.get({ clientId: input.clientId }); }),});