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;
48 napi_value result = nullptr;
49 size_t argc = 1;
50 bool is_date = false;
51
52 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &date, nullptr, nullptr));
53 NAPI_CALL(env, napi_is_date(env, date, &is_date));
54 NAPI_CALL(env, napi_get_boolean(env, is_date, &result));
55
56 return result;
57 }
58
GetDateValueFun(napi_env env,napi_callback_info info)59 static napi_value GetDateValueFun(napi_env env, napi_callback_info info)
60 {
61 HILOG_INFO("%{public}s,called", __func__);
62 napi_value date = nullptr;
63 napi_value result = nullptr;
64 size_t argc = 1;
65 double value = 0;
66 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &date, nullptr, nullptr));
67 NAPI_CALL(env, napi_get_date_value(env, date, &value));
68 NAPI_CALL(env, napi_create_double(env, value, &result));
69
70 return result;
71 }
72
JsDateInit(napi_env env,napi_value exports)73 napi_value JsDateInit(napi_env env, napi_value exports)
74 {
75 HILOG_INFO("%{public}s,called", __func__);
76
77 napi_property_descriptor descriptors[] = {
78 DECLARE_NAPI_FUNCTION("testCreateDateFun", CreateDateFun),
79 DECLARE_NAPI_FUNCTION("testIsDateFun", IsDateFun),
80 DECLARE_NAPI_FUNCTION("testGetDateValueFun", GetDateValueFun),
81 };
82
83 NAPI_CALL(env, napi_define_properties(env, exports, sizeof(descriptors) / sizeof(descriptors[0]), descriptors));
84 return exports;
85 }
86 } // namespace SYSTEM_TEST_NAPI
87 } // namespace NAPI
88 } // namespace ACE
89