UNPKG

@iot9x.com/nestjs-ucpaas-sms

Version:

nestjs 云之讯平台短信集成插件

43 lines (42 loc) 1.64 kB
"use strict"; 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;