UNPKG

@4players/odin-common

Version:

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

21 lines (20 loc) 644 B
import * as z from 'zod'; import { MediaIdSchema } from './media'; export const WebRtcUpdateSchema = z.discriminatedUnion('kind', [ z.object({ kind: z.literal('Sdp'), type: z.enum(['Answer', 'Offer']), sdp: z.string(), media_map: z.array(z.tuple([MediaIdSchema, z.string()])), }), z.object({ kind: z.literal('Trickle'), candidate: z.string(), spd_mid: z.optional(z.string()), spd_mline_index: z.optional(z.number()), username_fragment: z.optional(z.union([z.string(), z.null()])), }), z.object({ kind: z.literal('TrickleFinished'), }), ]);