@iot9x.com/nestjs-ucpaas-sms
Version:
nestjs 云之讯平台短信集成插件
43 lines (42 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UcpaasErrorWrapper = void 0;
const ucpaas_error_1 = require("../errors/ucpaas.error");
/**
* 错误捕获装饰器
* @param params 错误捕获参数
* @returns 包装好的错误格式或正常的方法调用
*/
const UcpaasErrorWrapper = (params) => (_target, _propertyKey, descriptor) => {
const original = descriptor.value;
const type = params?.type || "async" /* FunctionType.Async */; // 默认方法为异步方法
switch (type) {
case "async" /* FunctionType.Async */:
descriptor.value = async function (...args) {
try {
return await original.apply(this, args);
}
catch (error) {
if (error instanceof ucpaas_error_1.UcpaasError)
return { success: false, error: error.message };
return { success: false, error: error };
}
};
break;
case "sync" /* FunctionType.Sync */:
descriptor.value = function (...args) {
try {
return original.apply(this, args);
}
catch (error) {
if (error instanceof ucpaas_error_1.UcpaasError)
return { success: false, error: error.message };
return { success: false, error: error };
}
};
break;
default:
throw new Error('Invalid Function Type');
}
};
exports.UcpaasErrorWrapper = UcpaasErrorWrapper;