Files
xingrin/frontend/lib/error-code-map.ts

71 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-12-30 10:56:26 +08:00
/**
* i18n
*
* StripeGitHub
* - 5-10
* - 使 errors.unknown
* - ErrorCodes
*
* 后端错误码定义: backend/apps/common/error_codes.py
*/
/**
* i18n
*
* : 后端返回的错误码线
* : 前端 i18n messages/en.json messages/zh.json
*/
export const ERROR_CODE_MAP: Record<string, string> = {
// 通用错误码8 个,与后端 ErrorCodes 类一致)
VALIDATION_ERROR: 'errors.validation',
NOT_FOUND: 'errors.notFound',
PERMISSION_DENIED: 'errors.permissionDenied',
SERVER_ERROR: 'errors.serverError',
BAD_REQUEST: 'errors.badRequest',
CONFLICT: 'errors.conflict',
UNAUTHORIZED: 'errors.unauthorized',
RATE_LIMITED: 'errors.rateLimited',
};
/**
* i18n
* 退
*/
export const DEFAULT_ERROR_KEY = 'errors.unknown';
/**
* i18n
*
* @param code -
* @returns i18n 'errors.unknown'
*
* @example
* const errorKey = getErrorI18nKey('NOT_FOUND');
* // 返回: 'errors.notFound'
*
* const unknownKey = getErrorI18nKey('SOME_UNKNOWN_ERROR');
* // 返回: 'errors.unknown'
*/
export function getErrorI18nKey(code: string): string {
return ERROR_CODE_MAP[code] ?? DEFAULT_ERROR_KEY;
}
/**
*
*
* @param code -
* @returns true
*/
export function isKnownErrorCode(code: string): boolean {
return code in ERROR_CODE_MAP;
}
/**
*
*
* @returns
*/
export function getAllErrorCodes(): string[] {
return Object.keys(ERROR_CODE_MAP);
}