@lantsang/nestjs-ucpaas-sms
Version:
nestjs 云之讯平台短信集成插件
43 lines (42 loc) • 1.6 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" /* Async */; // 默认方法为异步方法
switch (type) {
case "async" /* Async */:
descriptor.value = async function () {
try {
return await original.apply(this, arguments);
}
catch (error) {
if (error instanceof ucpaas_error_1.UcpaasError)
return { success: false, error: error.message };
return { success: false, error: error };
}
};
break;
case "sync" /* Sync */:
descriptor.value = function () {
try {
return original.apply(this, arguments);
}
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;