1 /*
2 * Copyright (c) 2021 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 #include "js_napi_common.h"
16 #include "napi/native_api.h"
17 #include "napi/native_common.h"
18 #include "napi/native_node_api.h"
19 namespace ACE {
20 namespace NAPI {
21 namespace SYSTEM_TEST_NAPI {
CreateDateFun(napi_env env,napi_callback_info info)22 static napi_value CreateDateFun(napi_env env, napi_callback_info info)
23 {
24 HILOG_INFO("%{public}s,called", __func__);
25 size_t argc = 1;
26 napi_value args[1] = { nullptr };
27 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, nullptr, nullptr));
28
29 NAPI_ASSERT(env, argc >= 1, "Wrong number of arguments");
30
31 napi_valuetype valuetype;
32 NAPI_CALL(env, napi_typeof(env, args[0], &valuetype));
33 NAPI_ASSERT(env, valuetype == napi_number, "Wrong type of arguments. Expects a number as first argument.");
34
35 double time = 0;
36 NAPI_CALL(env, napi_get_value_double(env, args[0], &time));
37
38 napi_value date = nullptr;
39 NAPI_CALL(env, napi_create_date(env, time, &date));
40
41 return date;
42 }
43
IsDateFun(napi_env env,napi_callback_info info)44 static napi_value IsDateFun(napi_env env, napi_callback_info info)
45 {
46 HILOG_INFO("%{public}s,called", __func__);
47 napi_value date = nullptr, result = nullptr;
48 size_t argc = 1;
49 bool is_date = false;
50
51 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &date, nullptr, nullptr));
52 NAPI_CALL(env, napi_is_date(env, date, &is_date));
53 NAPI_CALL(env, napi_get_boolean(env, is_date, &result));
54
55 return result;
56 }
57
GetDateValueFun(napi_env env,napi_callback_info info)58 static napi_value GetDateValueFun(napi_env env, napi_callback_info info)
59 {
60 HILOG_INFO("%{public}s,called", __func__);
61 napi_value date = nullptr, result = nullptr;
62 size_t argc = 1;
63 double value = 0;
64 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &date, nullptr, nullptr));
65 NAPI_CALL(env, napi_get_date_value(env, date, &value));
66 NAPI_CALL(env, napi_create_double(env, value, &result));
67
68 return result;
69 }
70
JsDateInit(napi_env env,napi_value exports)71 napi_value JsDateInit(napi_env env, napi_value exports)
72 {
73 HILOG_INFO("%{public}s,called", __func__);
74
75 napi_property_descriptor descriptors[] = {
76 DECLARE_NAPI_FUNCTION("testCreateDateFun", CreateDateFun),
77 DECLARE_NAPI_FUNCTION("testIsDateFun", IsDateFun),
78 DECLARE_NAPI_FUNCTION("testGetDateValueFun", GetDateValueFun),
79 };
80
81 NAPI_CALL(env, napi_define_properties(env, exports, sizeof(descriptors) / sizeof(descriptors[0]), descriptors));
82 return exports;
83 }
84 } // namespace SYSTEM_TEST_NAPI
85 } // namespace NAPI
86 } // namespace ACE
87