@lantsang/nestjs-tdengine
Version:
NestJS TDengine 驱动
48 lines (47 loc) • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TDengineErrorWrapper = void 0;
/**
* 错误捕获装饰器
* @param params 错误捕获参数
* @returns 包装好的错误格式或正常的方法调用
*/
const TDengineErrorWrapper = (params) => (_target, _propertyKey, descriptor) => {
const original = descriptor.value;
const type = params?.type || "async" /* Async */; // 默认方法为异步方法
switch (type) {
case "async" /* Async */:
descriptor.value = async function () {
try {
return await original.apply(this, arguments);
}
catch (error) {
if (error.isAxiosError) {
const { response } = error;
const { data } = response;
return { success: false, error: data.desc };
}
throw error;
}
};
break;
case "sync" /* Sync */:
descriptor.value = function () {
try {
return original.apply(this, arguments);
}
catch (error) {
if (error.isAxiosError) {
const { response } = error;
const { data } = response;
return { success: false, error: data.desc };
}
throw error;
}
};
break;
default:
throw new Error('Invalid Function Type');
}
};
exports.TDengineErrorWrapper = TDengineErrorWrapper;