@4players/odin-common
Version:
A collection of commonly used type definitions and utility functions across ODIN web projects
21 lines (20 loc) • 644 B
JavaScript
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'),
}),
]);