@4players/odin-common
Version:
A collection of commonly used type definitions and utility functions across ODIN web projects
97 lines (96 loc) • 2.95 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RoomCommandsRpc = exports.MainCommandsRpc = void 0;
const zod_1 = require("zod");
const serialization_1 = require("../schema/serialization");
const room_1 = require("../schema/room");
const peer_1 = require("../schema/peer");
const media_1 = require("../schema/media");
const webrtc_1 = require("../schema/webrtc");
exports.MainCommandsRpc = {
Hello: {
request: zod_1.z.object({
stream: zod_1.z.literal('main'),
}),
response: zod_1.z.null(),
},
JoinRoom: {
request: zod_1.z.object({
token: zod_1.z.string(),
room_id: room_1.RoomV1.RoomIdSchema,
user_data: serialization_1.ByteArraySchema,
position: peer_1.PeerPositionSchema,
}),
response: zod_1.z.object({
peer_id: peer_1.PeerIdSchema,
stream_id: zod_1.z.optional(zod_1.z.number()),
token: zod_1.z.optional(zod_1.z.string()),
}),
},
WebRtcUpdate: {
request: webrtc_1.WebRtcUpdateSchema,
response: zod_1.z.null(),
},
RequestReconnectToken: {
request: zod_1.z.object({ peer_id: zod_1.z.optional(peer_1.PeerIdSchema) }),
response: zod_1.z.string(),
},
Ping: {
request: zod_1.z.object({}),
response: zod_1.z.null(),
},
};
exports.RoomCommandsRpc = {
Hello: {
request: zod_1.z.object({
stream: zod_1.z.literal('room'),
token: zod_1.z.string(),
room_id: zod_1.z.string(),
user_data: serialization_1.ByteArraySchema,
position: peer_1.PeerPositionSchema,
}),
response: zod_1.z.null(),
},
UpdatePeer: {
request: zod_1.z.object({ user_data: serialization_1.ByteArraySchema }),
response: zod_1.z.null(),
},
StartMedia: {
request: zod_1.z.object({
media_id: media_1.MediaIdSchema,
properties: media_1.MediaPropertiesSchema,
}),
response: zod_1.z.null(),
},
StopMedia: {
request: zod_1.z.object({
media_id: media_1.MediaIdSchema,
}),
response: zod_1.z.null(),
},
PauseMedia: {
request: zod_1.z.object({
media_id: media_1.MediaIdSchema,
}),
response: zod_1.z.null(),
},
ResumeMedia: {
request: zod_1.z.object({
media_id: media_1.MediaIdSchema,
}),
response: zod_1.z.null(),
},
SetPeerPosition: {
request: zod_1.z.object({
position: peer_1.PeerPositionSchema,
}),
response: zod_1.z.null(),
},
SendMessage: {
request: zod_1.z.object({
target_peer_ids: zod_1.z.optional(zod_1.z.array(peer_1.PeerIdSchema)),
message: serialization_1.ByteArraySchema,
}),
response: zod_1.z.null(),
},
};