1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef INTERFACES_KITS_COMMON_INCLUDE_NAPI_EDM_ERROR_ADDON_H
17 #define INTERFACES_KITS_COMMON_INCLUDE_NAPI_EDM_ERROR_ADDON_H
18 
19 #include <string>
20 #include "edm_errors.h"
21 #include "napi/native_api.h"
22 #include "napi/native_common.h"
23 
24 namespace OHOS {
25 namespace EDM {
26     napi_value CreateError(napi_env env, ErrCode errorCode);
27     napi_value CreateError(napi_env env, int32_t errorCode, const std::string &errMessage);
28     napi_value CreateErrorWithInnerCode(napi_env env, ErrCode errorCode, std::string &errMessage);
29     std::pair<int32_t, std::string> GetMessageFromReturncode(ErrCode returnCode);
30     #define ASSERT_AND_THROW_PARAM_ERROR(env, assertion, message)               \
31     do {                                                                       \
32         if (!(assertion)) {                                                    \
33             napi_throw((env), CreateError((env), (EdmReturnErrCode::PARAM_ERROR), (message)));          \
34             napi_value ret = nullptr;                                      \
35             return ret;                                                    \
36         }                                                                    \
37     } while (0)
38 } // namespace EDM
39 } // namespace OHOS
40 
41 #endif // INTERFACES_KITS_COMMON_INCLUDE_NAPI_EDM_ERROR_ADDON_H
42