fcr-core
Version:
Core APIs for building online scenes
43 lines (39 loc) • 1.75 kB
JavaScript
import { DetailErrorCode, ErrorServiceType } from '../imports';
import { padStart, AgoraRestfulClientError, FcrError } from '../imports';
export { FcrError } from '../imports';
// Export aliases for compatibility
export { DetailErrorCode as FcrErrorCode, ErrorModuleCode as FcrErrorModuleCode } from '../imports';
// helpers
export const generateFcrCoreClientError = (module, code, message, cause) => {
return FcrError.create(ErrorServiceType.FCR_CLIENT, module, code, message, cause);
};
export const generateFcrCoreServerError = (code, message) => {
const errorCode = Number(`${ErrorServiceType.FCR_SERVER}${padStart(String(code), 8, '0')}`);
const error = new FcrError({
message: message,
code: errorCode
});
return error;
};
// TODO: i don't know
export const handleRequestError = async (action, errorModuleCode, errorMessage) => {
try {
return await action();
} catch (e) {
if (e instanceof AgoraRestfulClientError) {
throw generateFcrCoreServerError(e.serviceCode ?? -1, e.message);
}
const error = e;
throw generateFcrCoreClientError(errorModuleCode, DetailErrorCode.UNDEFINED_ERROR, errorMessage ?? error.message);
}
};
// 720410100 // 房间已销毁
// 720404100 // 房间不存在
// 732403100 // 无加入权限,如:房间已锁定
// 732403101 // 房间不存在或密码错误
// 100050051 // ap 探测失败
// 300000010 // 加入rtc频道超时了(rtc私有化)
// 400000010 // 加入web rtc频道超时了(rtc私有化)
// 730403100 // 被永久踢出房间
// error codes that cannot be retried when joining a room
export const ERROR_CODES_NOT_RETRYABLE_WHEN_JOINING_ROOM = [720410100, 720404100, 732403100, 732403101, 100050051, 300000010, 400000010, 730403100];