@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
JavaScript
;
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,
}),
]);