agora-react-native-rtm
Version:
React Native around the Agora RTM SDKs for Android and iOS agora
64 lines (63 loc) • 1.88 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.cleanIrisExtraData = cleanIrisExtraData;
exports.processRTMClientEventMap = processRTMClientEventMap;
/**
* @ignore
*/
function cleanIrisExtraData(data) {
if (data === null || typeof data !== 'object') {
return data;
}
if (Array.isArray(data)) {
return data.map(item => cleanIrisExtraData(item));
}
return Object.fromEntries(Object.entries(data).filter(([key]) => !key.endsWith('_str')).map(([key, value]) => [key, cleanIrisExtraData(value)]));
}
function processRTMClientEventMap(handler, event, jsonParams) {
switch (event) {
case 'presence':
if (handler.presence !== undefined) {
handler.presence(cleanIrisExtraData(jsonParams.event));
}
break;
case 'message':
if (handler.message !== undefined) {
handler.message(cleanIrisExtraData(jsonParams.event));
}
break;
case 'storage':
if (handler.storage !== undefined) {
handler.storage(cleanIrisExtraData(jsonParams.event));
}
break;
case 'lock':
if (handler.lock !== undefined) {
handler.lock(cleanIrisExtraData(jsonParams.event));
}
break;
case 'topic':
if (handler.topic !== undefined) {
handler.topic(cleanIrisExtraData(jsonParams.event));
}
break;
case 'tokenPrivilegeWillExpire':
if (handler.tokenPrivilegeWillExpire !== undefined) {
handler.tokenPrivilegeWillExpire(jsonParams.channelName);
}
break;
case 'linkState':
if (handler.linkState !== undefined) {
handler.linkState(cleanIrisExtraData(jsonParams.event));
}
break;
case 'token':
if (handler.token !== undefined) {
handler.token(cleanIrisExtraData(jsonParams.event));
}
break;
}
}
//# sourceMappingURL=RTMEvents.js.map
;