@4players/odin
Version:
A cross-platform SDK enabling developers to integrate real-time VoIP chat technology into their projects
116 lines (115 loc) • 3.17 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVENT_SCHEMAS = void 0;
const schema_validation_1 = require("./schema-validation");
const MEDIA = (0, schema_validation_1.create)({
type: 'Object',
optional: true,
fields: {
id: { type: 'Number' },
paused: { type: 'Boolean', optional: true },
properties: {
type: 'Object',
fields: {
kind: {
type: 'String',
optional: true,
},
},
},
},
});
const MEDIAS = (0, schema_validation_1.create)({
array: true,
type: 'Object',
fields: {
id: { type: 'Number' },
paused: { type: 'Boolean', optional: true },
properties: {
type: 'Object',
fields: {
kind: {
type: 'String',
optional: true,
},
},
},
},
});
const PEER = (0, schema_validation_1.create)({
type: 'Object',
fields: {
id: { type: 'Number' },
medias: MEDIAS,
user_data: { type: 'U8' },
user_id: { type: 'String' },
},
optional: true,
});
const PEERS = (0, schema_validation_1.create)({
array: true,
type: 'Object',
fields: {
id: { type: 'Number' },
medias: MEDIAS,
user_data: { type: 'U8' },
user_id: { type: 'String' },
},
});
const ROOM = (0, schema_validation_1.create)({
type: 'Object',
fields: {
customer: { type: 'String' },
id: { type: 'String' },
peers: PEERS,
user_data: { type: 'U8' },
},
optional: true,
});
exports.EVENT_SCHEMAS = {
RoomUpdated: (0, schema_validation_1.create)({
type: 'Object',
fields: {
updates: {
type: 'Object',
array: true,
fields: {
kind: { type: 'String' },
media_ids: { array: true, type: 'Number', optional: true },
own_peer_id: { type: 'Number', optional: true },
room: ROOM,
peer: PEER,
user_data: { type: 'U8', optional: true },
peer_id: { type: 'Number', optional: true },
},
},
},
}),
PeerUpdated: (0, schema_validation_1.create)({
type: 'Object',
fields: {
kind: { type: 'String' },
peer_id: { type: 'Number' },
media: MEDIA,
properties: {
type: 'Object',
fields: {
kind: { type: 'String', optional: true },
},
optional: true,
},
media_id: { type: 'Number', optional: true },
user_data: {
type: 'U8',
optional: true,
},
},
}),
MessageReceived: (0, schema_validation_1.create)({
type: 'Object',
fields: {
sender_peer_id: { type: 'Number' },
message: { type: 'U8' },
},
}),
};