pocketbase-tools
Version:
A TypeScript toolkit for PocketBase, featuring a standard service/action/types layered structure. It provides interfaces and implementations for common business logic such as users, products, company profiles, and file utilities, making it suitable for se
40 lines (39 loc) • 1.16 kB
JavaScript
import { logger } from "./logger";
export class ErrorHandler {
handle(error) {
const apiError = this.parseError(error);
logger.error(apiError.message, apiError);
}
parseError(error) {
if (error.response) {
return {
code: error.response.code || "UNKNOWN_ERROR",
message: error.response.message || "未知错误",
details: error.response.data,
};
}
return {
code: "UNKNOWN_ERROR",
message: error.message || "发生未知错误",
details: error,
};
}
}
/**
* 封装错误处理逻辑
* @param action 当前执行的动作描述,用于日志输出
* @param callback 要执行的操作
* @returns 成功返回结果,失败返回 null
*/
export const withErrorHandling = async (action, callback) => {
try {
const result = await callback();
logger.success(action, result);
return result;
}
catch (error) {
const message = error.response?.data?.message || error.message;
logger.error(action, message);
return null;
}
};