UNPKG

fcr-core

Version:

Core APIs for building online scenes

95 lines (93 loc) 5.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleRequestError = exports.generateFcrCoreServerError = exports.generateFcrCoreClientError = exports.RTE_ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = exports.FcrErrorModuleCode = exports.FcrErrorCodeType = exports.FcrErrorCode = exports.FcrError = void 0; var _imports = require("../imports"); class FcrError extends Error { get origin() { return this._origin; } get code() { return this._code; } get message() { return this._message; } constructor(_code, _message, _origin) { super(); this._code = _code; this._message = _message; this._origin = _origin; this.name = 'FcrCoreError'; } } exports.FcrError = FcrError; 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["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) => { return new FcrError(`${(0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0')}${(0, _imports.padStart)(String(module), 3, '0')}${(0, _imports.padStart)(String(code), 3, '0')}`, `domain: CORE-CLIENT, info: ${message}`, origin); }; exports.generateFcrCoreClientError = generateFcrCoreClientError; const generateFcrCoreServerError = (code, message, origin) => { return new FcrError(`${FcrErrorCodeType.SERVER}${(0, _imports.padStart)(String(code), 8, '0')}`, `domain: CORE-SRV, info: ${message}`, origin); }; exports.generateFcrCoreServerError = generateFcrCoreServerError; const handleRequestError = async (action, errorModuleCode, errorMessage) => { try { return await action(); } catch (e) { if (e instanceof _imports.AgoraRestfulClientError) { throw generateFcrCoreServerError(e.serviceCode ?? -1, e.message, e); } const error = e; throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, 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 RTE_ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = exports.RTE_ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = ['720410100', '720404100', '732403100', '732403101', '100050051', '300000010', '400000010', '730403100'];