UNPKG

@4players/odin-common

Version:

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

35 lines (34 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PeerUpdateSchema = exports.PeerSchema = exports.PeerPositionSchema = exports.PeerIdSchema = void 0; const z = require("zod"); const media_1 = require("./media"); const serialization_1 = require("./serialization"); exports.PeerIdSchema = z.number(); exports.PeerPositionSchema = z.union([ z.tuple([z.number(), z.number(), z.number()]), z.tuple([z.number(), z.number()]), ]); exports.PeerSchema = z.object({ id: exports.PeerIdSchema, user_id: z.string(), user_data: serialization_1.ByteArraySchema, medias: z.array(media_1.MediaSchema), }); exports.PeerUpdateSchema = z.discriminatedUnion('kind', [ z.object({ kind: z.literal('UserDataChanged'), peer_id: exports.PeerIdSchema, user_data: serialization_1.ByteArraySchema, }), z.object({ kind: z.literal('MediaStarted'), peer_id: exports.PeerIdSchema, media: media_1.MediaSchema, }), z.object({ kind: z.literal('MediaStopped'), peer_id: exports.PeerIdSchema, media_id: media_1.MediaIdSchema, }), ]);