fcr-core
Version:
Core APIs for building online scenes
84 lines (83 loc) • 4.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleRequestError = exports.generateFcrCoreServerError = exports.generateFcrCoreClientError = exports.FcrErrorModuleCode = exports.FcrErrorCodeType = exports.FcrErrorCode = exports.FcrError = void 0;
require("core-js/modules/es.error.cause.js");
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["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("".concat((0, _imports.padEnd)(String(FcrErrorCodeType.CLIENT), 3, '0')).concat((0, _imports.padStart)(String(module), 3, '0')).concat((0, _imports.padStart)(String(code), 3, '0')), "domain: CORE-CLIENT, info: ".concat(message), origin);
};
exports.generateFcrCoreClientError = generateFcrCoreClientError;
const generateFcrCoreServerError = (code, message, origin) => {
return new FcrError("".concat(FcrErrorCodeType.SERVER).concat((0, _imports.padStart)(String(code), 8, '0')), "domain: CORE-SRV, info: ".concat(message), origin);
};
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);
}
throw generateFcrCoreClientError(errorModuleCode, FcrErrorCode.UNDEFINED_ERROR, errorMessage, e);
}
};
exports.handleRequestError = handleRequestError;