From 4c3b9d0c06baf9366c8ba57473c63b02b5d6c57b Mon Sep 17 00:00:00 2001 From: lutao Date: Wed, 16 Mar 2022 11:12:16 +0800 Subject: [PATCH] change js return Signed-off-by: lutao --- README_zh.md | 35 +++++++++---------- .../js/kits/napi/include/napi_hichecker.h | 1 - .../js/kits/napi/src/napi_hichecker.cpp | 25 ++++--------- 3 files changed, 23 insertions(+), 38 deletions(-) diff --git a/README_zh.md b/README_zh.md index f1635c6..b00f969 100644 --- a/README_zh.md +++ b/README_zh.md @@ -17,14 +17,12 @@ HiChecker,可以作为应用开发阶段使用的检测工具,用于检测 | 依赖部件 | 依赖描述 | | ----------------------------------------------------------- | ------------------------------------------------------------ | | 媒体子系统/【image部件】图片基础框架 ImagePacker | 在比较耗时的函数中调用HiChecker接口,通知有耗时调用,同时传入对应的告警提示字符串 | -| 事件通知子系统/common_event部件 EventRunner | 提供时间分发阈值设置接口,提供超时检测功能 | | 元能力子系统/ability_runtime/运行管理支持DFX FeatureAbility | 提供注册泄露检测逻辑,通知检测模式相关结果 | 支持特性: - 提供耗时调用检测功能 - 提供注册(ability) 泄露检测功能 -- 提供耗时消息检测功能 - 支持应用增加、删除不同的检测规则 - 支持应用增加、删除不同的告警通知规则,目前支持记录流水日志(默认),应用崩溃两种规则 - 相关检测条件满足时,支持Native回栈到关键触发点,暂不支持JS回栈 @@ -51,23 +49,22 @@ HiChecker,可以作为应用开发阶段使用的检测工具,用于检测 主要接口说明 -| 类 | 方法 | 描述 | -| --------- | :-------------------------------------------------- | -------------------------------- | -| HiChecker | BigInt RULE_CAUTION_PRINT_LOG = 1<<63; | 告警规则,仅记录日志 | -| | BigInt RULE_CAUTION_TRIGGER_CRASH = 1<<62; | 告警规则,让应用退出 | -| | BigInt RULE_THREAD_CHECK_SLOW_PROCESS = 1; | 检测规则,检测耗时函数调用 | -| | BigInt RULE_CHECK_SLOW_EVENT = 1<<32; | 检测规则,检测耗时事件分发与处理 | -| | BigInt RULE_CHECK_ABILITY_CONNECTION_LEAK = 1<<33; | 检测规则,检测ability泄露 | -| | addRule(BigInt rule) : void | 增加一个或多个检测项 | -| | removeRule(BigInt rule) : void | 删除一个或多个检测项 | -| | getRule() : BigInt | 获取所有检测项 | -| | contains(BigInt rule) : boolean | 当前是否有某一个检测项 | -| | NotifySlowProcess(std::string) : void | 通知有耗时调用 | -| | NotifySlowEvent(std::string) : void | 通知有耗时事件 | -| | NotifyAbilityConnectionLeak(Caution caution) : void | 通知有ability泄露 | -| Caution | GetTriggerRule() : BigInt | 获取触发当前告警的检测规则 | -| | GetCustomMessage() : String | 获取更多辅助信息 | -| | GetStackTrace() :String | 获取堆栈信息 | +| 类 | 方法 | 描述 | +| --------- | :-------------------------------------------------- | -------------------------- | +| HiChecker | BigInt RULE_CAUTION_PRINT_LOG = 1<<63; | 告警规则,仅记录日志 | +| | BigInt RULE_CAUTION_TRIGGER_CRASH = 1<<62; | 告警规则,让应用退出 | +| | BigInt RULE_THREAD_CHECK_SLOW_PROCESS = 1; | 检测规则,检测耗时函数调用 | +| | BigInt RULE_CHECK_ABILITY_CONNECTION_LEAK = 1<<33; | 检测规则,检测ability泄露 | +| | addRule(BigInt rule) : void | 增加一个或多个检测项 | +| | removeRule(BigInt rule) : void | 删除一个或多个检测项 | +| | getRule() : BigInt | 获取所有检测项 | +| | contains(BigInt rule) : boolean | 当前是否有某一个检测项 | +| | NotifySlowProcess(std::string) : void | 通知有耗时调用 | +| | NotifySlowEvent(std::string) : void | 通知有耗时事件 | +| | NotifyAbilityConnectionLeak(Caution caution) : void | 通知有ability泄露 | +| Caution | GetTriggerRule() : BigInt | 获取触发当前告警的检测规则 | +| | GetCustomMessage() : String | 获取更多辅助信息 | +| | GetStackTrace() :String | 获取堆栈信息 | ## 涉及仓 diff --git a/interfaces/js/kits/napi/include/napi_hichecker.h b/interfaces/js/kits/napi/include/napi_hichecker.h index 1536508..3e6e294 100644 --- a/interfaces/js/kits/napi/include/napi_hichecker.h +++ b/interfaces/js/kits/napi/include/napi_hichecker.h @@ -28,7 +28,6 @@ static napi_value Contains(napi_env env, napi_callback_info info); static napi_value DeclareHiCheckerInterface(napi_env env, napi_value exports); static napi_value DeclareHiCheckerRuleEnum(napi_env env, napi_value exports); -static napi_value CreateErrorMessage(napi_env env, std::string msg); static napi_value CreateUndefined(napi_env env); static napi_value ToUInt64Value(napi_env env, uint64_t value); static bool MatchValueType(napi_env env, napi_value value, napi_valuetype targetType); diff --git a/interfaces/js/kits/napi/src/napi_hichecker.cpp b/interfaces/js/kits/napi/src/napi_hichecker.cpp index 7c4433f..5edbce2 100644 --- a/interfaces/js/kits/napi/src/napi_hichecker.cpp +++ b/interfaces/js/kits/napi/src/napi_hichecker.cpp @@ -30,20 +30,18 @@ constexpr uint64_t GET_RULE_PARAM_FAIL = 0; napi_value AddRule(napi_env env, napi_callback_info info) { uint64_t rule = GetRuleParam(env, info); - if (rule == GET_RULE_PARAM_FAIL) { - return CreateErrorMessage(env, "invalid input, please check!"); + if (rule != GET_RULE_PARAM_FAIL) { + HiChecker::AddRule(rule); } - HiChecker::AddRule(rule); return CreateUndefined(env); } napi_value RemoveRule(napi_env env, napi_callback_info info) { uint64_t rule = GetRuleParam(env, info); - if (rule == GET_RULE_PARAM_FAIL) { - return CreateErrorMessage(env, "invalid input, please check!"); + if (rule != GET_RULE_PARAM_FAIL) { + HiChecker::RemoveRule(rule); } - HiChecker::RemoveRule(rule); return CreateUndefined(env); } @@ -56,9 +54,6 @@ napi_value GetRule(napi_env env, napi_callback_info info) napi_value Contains(napi_env env, napi_callback_info info) { uint64_t rule = GetRuleParam(env, info); - if (rule == GET_RULE_PARAM_FAIL) { - return CreateErrorMessage(env, "invalid input, please check!"); - } napi_value result = nullptr; napi_get_boolean(env, HiChecker::Contains(rule), &result); return result; @@ -107,15 +102,6 @@ napi_value CreateUndefined(napi_env env) return result; } -napi_value CreateErrorMessage(napi_env env, std::string msg) -{ - napi_value result = nullptr; - napi_value message = nullptr; - napi_create_string_utf8(env, (char *)msg.data(), msg.size(), &message); - napi_create_error(env, nullptr, message, &result); - return result; -} - uint64_t GetRuleParam(napi_env env, napi_callback_info info) { size_t argc = ONE_VALUE_LIMIT; @@ -138,6 +124,9 @@ uint64_t GetRuleParam(napi_env env, napi_callback_info info) HiLog::Error(LABEL, "Type error, bigint should be 64!"); return GET_RULE_PARAM_FAIL; } + if (rule == GET_RULE_PARAM_FAIL) { + HiLog::Error(LABEL, "invalid input, please check!"); + } return rule; } -- Gitee