UNPKG

@4players/odin-common

Version:

A collection of commonly used type definitions and utility functions across ODIN web projects

37 lines (36 loc) 1.15 kB
import * as z from 'zod'; import { RoomV1 } from '../schema/room'; import { PeerUpdateSchema } from '../schema/peer'; import { MessageReceivedSchema } from '../schema/message'; import { WebRtcUpdateSchema } from '../schema/webrtc'; export const MainNotificationSchema = z.object({ name: z.literal('WebRtcUpdate'), properties: WebRtcUpdateSchema, }); export const MainNotificationsRpc = { WebRtcUpdate: WebRtcUpdateSchema, }; export const RoomNotificationSchema = z.union([ z.object({ name: z.literal('RoomStatusChanged'), properties: RoomV1.RoomStatusChangedSchema, }), z.object({ name: z.literal('RoomUpdated'), properties: RoomV1.RoomUpdatesSchema, }), z.object({ name: z.literal('PeerUpdated'), properties: PeerUpdateSchema, }), z.object({ name: z.literal('MessageReceived'), properties: MessageReceivedSchema, }), ]); export const RoomNotificationsRpc = { RoomStatusChanged: RoomV1.RoomStatusChangedSchema, RoomUpdated: RoomV1.RoomUpdatesSchema, PeerUpdated: PeerUpdateSchema, MessageReceived: MessageReceivedSchema, };