• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <js_native_api.h>
2 #include "../common.h"
3 #include "../entry_point.h"
4 
createDate(napi_env env,napi_callback_info info)5 static napi_value createDate(napi_env env, napi_callback_info info) {
6   size_t argc = 1;
7   napi_value args[1];
8   NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL));
9 
10   NODE_API_ASSERT(env, argc >= 1, "Wrong number of arguments");
11 
12   napi_valuetype valuetype0;
13   NODE_API_CALL(env, napi_typeof(env, args[0], &valuetype0));
14 
15   NODE_API_ASSERT(env, valuetype0 == napi_number,
16       "Wrong type of arguments. Expects a number as first argument.");
17 
18   double time;
19   NODE_API_CALL(env, napi_get_value_double(env, args[0], &time));
20 
21   napi_value date;
22   NODE_API_CALL(env, napi_create_date(env, time, &date));
23 
24   return date;
25 }
26 
isDate(napi_env env,napi_callback_info info)27 static napi_value isDate(napi_env env, napi_callback_info info) {
28   napi_value date, result;
29   size_t argc = 1;
30   bool is_date;
31 
32   NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, &date, NULL, NULL));
33   NODE_API_CALL(env, napi_is_date(env, date, &is_date));
34   NODE_API_CALL(env, napi_get_boolean(env, is_date, &result));
35 
36   return result;
37 }
38 
getDateValue(napi_env env,napi_callback_info info)39 static napi_value getDateValue(napi_env env, napi_callback_info info) {
40   napi_value date, result;
41   size_t argc = 1;
42   double value;
43 
44   NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, &date, NULL, NULL));
45   NODE_API_CALL(env, napi_get_date_value(env, date, &value));
46   NODE_API_CALL(env, napi_create_double(env, value, &result));
47 
48   return result;
49 }
50 
51 EXTERN_C_START
Init(napi_env env,napi_value exports)52 napi_value Init(napi_env env, napi_value exports) {
53   napi_property_descriptor descriptors[] = {
54     DECLARE_NODE_API_PROPERTY("createDate", createDate),
55     DECLARE_NODE_API_PROPERTY("isDate", isDate),
56     DECLARE_NODE_API_PROPERTY("getDateValue", getDateValue),
57   };
58 
59   NODE_API_CALL(env, napi_define_properties(
60       env, exports, sizeof(descriptors) / sizeof(*descriptors), descriptors));
61 
62   return exports;
63 }
64 EXTERN_C_END
65