fcr-core
Version:
Core APIs for building online scenes
125 lines (119 loc) • 6.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = void 0;
Object.defineProperty(exports, "FcrError", {
enumerable: true,
get: function () {
return _imports.FcrError;
}
});
exports.handleRequestError = exports.generateFcrCoreServerErrorNew = exports.generateFcrCoreServerError = exports.generateFcrCoreClientErrorNew = exports.generateFcrCoreClientError = exports.FcrErrorModuleCode = exports.FcrErrorCodeType = exports.FcrErrorCode = void 0;
var _imports = require("../imports");
let FcrErrorCodeType = exports.FcrErrorCodeType = /*#__PURE__*/function (FcrErrorCodeType) {
FcrErrorCodeType[FcrErrorCodeType["CLIENT"] = 6] = "CLIENT";
FcrErrorCodeType[FcrErrorCodeType["SERVER"] = 7] = "SERVER";
return FcrErrorCodeType;
}({});
let FcrErrorModuleCode = exports.FcrErrorModuleCode = /*#__PURE__*/function (FcrErrorModuleCode) {
FcrErrorModuleCode[FcrErrorModuleCode["ENGINE"] = 10] = "ENGINE";
FcrErrorModuleCode[FcrErrorModuleCode["ENGINE_PEER_SESSION"] = 11] = "ENGINE_PEER_SESSION";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM"] = 20] = "ROOM";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_USER"] = 21] = "ROOM_USER";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_STREAM"] = 22] = "ROOM_STREAM";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_GROUP"] = 23] = "ROOM_GROUP";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_CHATROOM"] = 24] = "ROOM_CHATROOM";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_SESSION"] = 25] = "ROOM_SESSION";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_PRIVILEGE"] = 26] = "ROOM_PRIVILEGE";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_WHITEBOARD"] = 27] = "ROOM_WHITEBOARD";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_CONNECTOR"] = 28] = "ROOM_CONNECTOR";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_INTERPRETER"] = 29] = "ROOM_INTERPRETER";
FcrErrorModuleCode[FcrErrorModuleCode["MEDIA_CONTROL"] = 30] = "MEDIA_CONTROL";
FcrErrorModuleCode[FcrErrorModuleCode["MEDIA_CONTROL_CAMERA"] = 31] = "MEDIA_CONTROL_CAMERA";
FcrErrorModuleCode[FcrErrorModuleCode["MEDIA_CONTROL_MICROPHONE"] = 32] = "MEDIA_CONTROL_MICROPHONE";
FcrErrorModuleCode[FcrErrorModuleCode["MEDIA_CONTROL_LOOPBACK"] = 33] = "MEDIA_CONTROL_LOOPBACK";
FcrErrorModuleCode[FcrErrorModuleCode["MEDIA_CONTROL_SCREEN"] = 34] = "MEDIA_CONTROL_SCREEN";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_STT"] = 35] = "ROOM_STT";
FcrErrorModuleCode[FcrErrorModuleCode["MONITOR"] = 40] = "MONITOR";
FcrErrorModuleCode[FcrErrorModuleCode["ROOM_LIVE_STREAMING"] = 41] = "ROOM_LIVE_STREAMING";
return FcrErrorModuleCode;
}({});
let FcrErrorCode = exports.FcrErrorCode = /*#__PURE__*/function (FcrErrorCode) {
FcrErrorCode[FcrErrorCode["UNDEFINED_ERROR"] = 1] = "UNDEFINED_ERROR";
FcrErrorCode[FcrErrorCode["INVALID_PARAMS"] = 10] = "INVALID_PARAMS";
FcrErrorCode[FcrErrorCode["JSON_PARSE_ERROR"] = 11] = "JSON_PARSE_ERROR";
FcrErrorCode[FcrErrorCode["LOCAL_HTTP_REQUEST_FAILED"] = 12] = "LOCAL_HTTP_REQUEST_FAILED";
FcrErrorCode[FcrErrorCode["NOT_LOGGED_IN"] = 13] = "NOT_LOGGED_IN";
FcrErrorCode[FcrErrorCode["NOT_JOINED_ROOM"] = 14] = "NOT_JOINED_ROOM";
FcrErrorCode[FcrErrorCode["JOIN_CONFLICT"] = 15] = "JOIN_CONFLICT";
FcrErrorCode[FcrErrorCode["EXPIRED"] = 15] = "EXPIRED";
return FcrErrorCode;
}({}); // helpers
const generateFcrCoreClientError = (module, code, message, origin) => {
const errorType = (0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0'); // 如:'100'
const moduleCode = (0, _imports.padStart)(String(module), 3, '0'); // 如:'020'
const errorCode = (0, _imports.padStart)(String(code), 3, '0'); // 如:'001'
const fullErrorCode = Number("".concat(errorType).concat(moduleCode).concat(errorCode)); // 如:'100020001'
const errorMessage = "domain: RTE-CLIENT, info: ".concat(message);
return new _imports.FcrError({
code: fullErrorCode,
message: errorMessage
});
};
exports.generateFcrCoreClientError = generateFcrCoreClientError;
const generateFcrCoreServerError = (code, message, origin) => {
const errorCode = Number("".concat(FcrErrorCodeType.SERVER).concat((0, _imports.padStart)(String(code), 8, '0')));
const error = new _imports.FcrError({
message: message,
code: errorCode
});
return error;
};
// TODO: i don't know
exports.generateFcrCoreServerError = generateFcrCoreServerError;
const handleRequestError = async (action, errorModuleCode, errorMessage) => {
try {
return await action();
} catch (e) {
if (e instanceof _imports.AgoraRestfulClientError) {
var _e$serviceCode;
throw generateFcrCoreServerError((_e$serviceCode = e.serviceCode) !== null && _e$serviceCode !== void 0 ? _e$serviceCode : -1, e.message, e);
}
const error = e;
throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, errorMessage !== null && errorMessage !== void 0 ? errorMessage : error.message, error);
}
};
// 720410100 // 房间已销毁
// 720404100 // 房间不存在
// 732403100 // 无加入权限,如:房间已锁定
// 732403101 // 房间不存在或密码错误
// 100050051 // ap 探测失败
// 300000010 // 加入rtc频道超时了(rtc私有化)
// 400000010 // 加入web rtc频道超时了(rtc私有化)
// 730403100 // 被永久踢出房间
// error codes that cannot be retried when joining a room
exports.handleRequestError = handleRequestError;
const ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = exports.ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = [720410100, 720404100, 732403100, 732403101, 100050051, 300000010, 400000010, 730403100];
// New
const generateFcrCoreClientErrorNew = (module, code, message) => {
const errorType = (0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0'); // 如:'100'
const moduleCode = (0, _imports.padStart)(String(module), 3, '0'); // 如:'020'
const errorCode = (0, _imports.padStart)(String(code), 3, '0'); // 如:'001'
const fullErrorCode = Number("".concat(errorType).concat(moduleCode).concat(errorCode)); // 如:'100020001'
const errorMessage = "domain: RTE-CLIENT, info: ".concat(message);
return new _imports.FcrError({
code: fullErrorCode,
message: errorMessage
});
};
exports.generateFcrCoreClientErrorNew = generateFcrCoreClientErrorNew;
const generateFcrCoreServerErrorNew = (code, message) => {
const errorCode = Number("".concat(FcrErrorCodeType.SERVER).concat((0, _imports.padStart)(String(code), 8, '0')));
const error = new _imports.FcrError({
message: message,
code: errorCode
});
return error;
};
exports.generateFcrCoreServerErrorNew = generateFcrCoreServerErrorNew;