|
1 |
| -#include "napi.h" |
| 1 | +#include "napi/native_api.h" |
2 | 2 |
|
3 |
| -using namespace Napi; |
| 3 | +static napi_value Add(napi_env env, napi_callback_info info) |
| 4 | +{ |
| 5 | + size_t argc = 2; |
| 6 | + napi_value args[2] = {nullptr}; |
4 | 7 |
|
| 8 | + napi_get_cb_info(env, info, &argc, args , nullptr, nullptr); |
5 | 9 |
|
6 |
| -#if (NAPI_VERSION > 5) |
7 |
| -Object InitAddon(Env env); |
8 |
| -Object InitAddonData(Env env); |
9 |
| -#endif |
10 |
| -Object InitArrayBuffer(Env env); |
11 |
| -Object InitAsyncContext(Env env); |
12 |
| -#if (NAPI_VERSION > 3) |
13 |
| -Object InitAsyncProgressQueueWorker(Env env); |
14 |
| -Object InitAsyncProgressWorker(Env env); |
15 |
| -#endif |
16 |
| -Object InitAsyncWorker(Env env); |
17 |
| -Object InitPersistentAsyncWorker(Env env); |
18 |
| -Object InitBasicTypesArray(Env env); |
19 |
| -Object InitBasicTypesBoolean(Env env); |
20 |
| -Object InitBasicTypesNumber(Env env); |
21 |
| -Object InitBasicTypesValue(Env env); |
22 |
| -#if (NAPI_VERSION > 5) |
23 |
| -Object InitBigInt(Env env); |
24 |
| -#endif |
25 |
| -Object InitBuffer(Env env); |
26 |
| -Object InitBufferNoExternal(Env env); |
27 |
| -#if (NAPI_VERSION > 2) |
28 |
| -Object InitCallbackScope(Env env); |
29 |
| -#endif |
30 |
| -#if (NAPI_VERSION > 4) |
31 |
| -Object InitDate(Env env); |
32 |
| -#endif |
33 |
| -Object InitCallbackInfo(Env env); |
34 |
| -Object InitDataView(Env env); |
35 |
| -Object InitDataViewReadWrite(Env env); |
36 |
| -Object InitEnvCleanup(Env env); |
37 |
| -Object InitErrorHandlingPrim(Env env); |
38 |
| -Object InitError(Env env); |
39 |
| -Object InitExternal(Env env); |
40 |
| -Object InitFunction(Env env); |
41 |
| -Object InitFunctionReference(Env env); |
42 |
| -Object InitHandleScope(Env env); |
43 |
| -Object InitMovableCallbacks(Env env); |
44 |
| -//Object InitMemoryManagement(Env env); |
45 |
| -Object InitName(Env env); |
46 |
| -Object InitObject(Env env); |
47 |
| -#ifndef NODE_ADDON_API_DISABLE_DEPRECATED |
48 |
| -Object InitObjectDeprecated(Env env); |
49 |
| -#endif // !NODE_ADDON_API_DISABLE_DEPRECATED |
50 |
| -Object InitPromise(Env env); |
51 |
| -//Object InitRunScript(Env env); |
52 |
| -#if (NAPI_VERSION > 3) |
53 |
| -Object InitThreadSafeFunctionCtx(Env env); |
54 |
| -Object InitThreadSafeFunctionException(Env env); |
55 |
| -Object InitThreadSafeFunctionExistingTsfn(Env env); |
56 |
| -Object InitThreadSafeFunctionPtr(Env env); |
57 |
| -Object InitThreadSafeFunctionSum(Env env); |
58 |
| -Object InitThreadSafeFunctionUnref(Env env); |
59 |
| -Object InitThreadSafeFunction(Env env); |
60 |
| -Object InitTypedThreadSafeFunctionCtx(Env env); |
61 |
| -Object InitTypedThreadSafeFunctionException(Env env); |
62 |
| -Object InitTypedThreadSafeFunctionExistingTsfn(Env env); |
63 |
| -Object InitTypedThreadSafeFunctionPtr(Env env); |
64 |
| -Object InitTypedThreadSafeFunctionSum(Env env); |
65 |
| -Object InitTypedThreadSafeFunctionUnref(Env env); |
66 |
| -Object InitTypedThreadSafeFunction(Env env); |
67 |
| -#endif |
68 |
| -//Object InitSymbol(Env env); |
69 |
| -Object InitTypedArray(Env env); |
70 |
| -//Object InitGlobalObject(Env env); |
71 |
| -Object InitObjectWrap(Env env); |
72 |
| -Object InitObjectWrapConstructorException(Env env); |
73 |
| -Object InitObjectWrapFunction(Env env); |
74 |
| -Object InitObjectWrapRemoveWrap(Env env); |
75 |
| -Object InitObjectWrapMultipleInheritance(Env env); |
76 |
| -Object InitObjectReference(Env env); |
77 |
| -Object InitReference(Env env); |
78 |
| -Object InitVersionManagement(Env env); |
79 |
| -Object InitThunkingManual(Env env); |
80 |
| -#if (NAPI_VERSION > 7) |
81 |
| -Object InitObjectFreezeSeal(Env env); |
82 |
| -Object InitTypeTaggable(Env env); |
83 |
| -#endif |
84 |
| -#if (NAPI_VERSION > 8) |
85 |
| -Object InitEnvMiscellaneous(Env env); |
86 |
| -#endif |
87 |
| -#if defined(NODE_ADDON_API_ENABLE_MAYBE) |
88 |
| -Object InitMaybeCheck(Env env); |
89 |
| -#endif |
| 10 | + napi_valuetype valuetype0; |
| 11 | + napi_typeof(env, args[0], &valuetype0); |
90 | 12 |
|
91 |
| -Object EntryInit(Env env, Object exports) { |
92 |
| -#if (NAPI_VERSION > 5) |
93 |
| - exports.Set("addon", InitAddon(env)); |
94 |
| - exports.Set("addon_data", InitAddonData(env)); |
95 |
| -#endif |
96 |
| - exports.Set("arraybuffer", InitArrayBuffer(env)); |
97 |
| - exports.Set("asynccontext", InitAsyncContext(env)); |
98 |
| -#if (NAPI_VERSION > 3) |
99 |
| - exports.Set("asyncprogressqueueworker", InitAsyncProgressQueueWorker(env)); |
100 |
| - exports.Set("asyncprogressworker", InitAsyncProgressWorker(env)); |
101 |
| -#endif |
102 |
| -// exports.Set("globalObject", InitGlobalObject(env)); |
103 |
| - exports.Set("asyncworker", InitAsyncWorker(env)); |
104 |
| - exports.Set("persistentasyncworker", InitPersistentAsyncWorker(env)); |
105 |
| - exports.Set("basic_types_array", InitBasicTypesArray(env)); |
106 |
| - exports.Set("basic_types_boolean", InitBasicTypesBoolean(env)); |
107 |
| - exports.Set("basic_types_number", InitBasicTypesNumber(env)); |
108 |
| - exports.Set("basic_types_value", InitBasicTypesValue(env)); |
109 |
| -#if (NAPI_VERSION > 5) |
110 |
| - exports.Set("bigint", InitBigInt(env)); |
111 |
| -#endif |
112 |
| -#if (NAPI_VERSION > 4) |
113 |
| - exports.Set("date", InitDate(env)); |
114 |
| -#endif |
115 |
| - exports.Set("buffer", InitBuffer(env)); |
116 |
| - exports.Set("bufferNoExternal", InitBufferNoExternal(env)); |
117 |
| -#if (NAPI_VERSION > 2) |
118 |
| - exports.Set("callbackscope", InitCallbackScope(env)); |
119 |
| -#endif |
120 |
| - exports.Set("callbackInfo", InitCallbackInfo(env)); |
121 |
| - exports.Set("dataview", InitDataView(env)); |
122 |
| - exports.Set("dataview_read_write", InitDataView(env)); |
123 |
| - exports.Set("dataview_read_write", InitDataViewReadWrite(env)); |
124 |
| -#if (NAPI_VERSION > 2) |
125 |
| - exports.Set("env_cleanup", InitEnvCleanup(env)); |
126 |
| -#endif |
127 |
| - exports.Set("error", InitError(env)); |
128 |
| - exports.Set("errorHandlingPrim", InitErrorHandlingPrim(env)); |
129 |
| - exports.Set("external", InitExternal(env)); |
130 |
| - exports.Set("function", InitFunction(env)); |
131 |
| - exports.Set("functionreference", InitFunctionReference(env)); |
132 |
| - exports.Set("name", InitName(env)); |
133 |
| - exports.Set("handlescope", InitHandleScope(env)); |
134 |
| - exports.Set("movable_callbacks", InitMovableCallbacks(env)); |
135 |
| -// exports.Set("memory_management", InitMemoryManagement(env)); |
136 |
| - exports.Set("object", InitObject(env)); |
137 |
| -#ifndef NODE_ADDON_API_DISABLE_DEPRECATED |
138 |
| - exports.Set("object_deprecated", InitObjectDeprecated(env)); |
139 |
| -#endif // !NODE_ADDON_API_DISABLE_DEPRECATED |
140 |
| - exports.Set("promise", InitPromise(env)); |
141 |
| -// exports.Set("symbol", InitSymbol(env)); |
142 |
| -#if (NAPI_VERSION > 3) |
143 |
| - exports.Set("threadsafe_function_ctx", InitThreadSafeFunctionCtx(env)); |
144 |
| - exports.Set("threadsafe_function_exception", |
145 |
| - InitThreadSafeFunctionException(env)); |
146 |
| - exports.Set("threadsafe_function_existing_tsfn", |
147 |
| - InitThreadSafeFunctionExistingTsfn(env)); |
148 |
| - exports.Set("threadsafe_function_ptr", InitThreadSafeFunctionPtr(env)); |
149 |
| - exports.Set("threadsafe_function_sum", InitThreadSafeFunctionSum(env)); |
150 |
| - exports.Set("threadsafe_function_unref", InitThreadSafeFunctionUnref(env)); |
151 |
| - exports.Set("threadsafe_function", InitThreadSafeFunction(env)); |
152 |
| - exports.Set("typed_threadsafe_function_ctx", |
153 |
| - InitTypedThreadSafeFunctionCtx(env)); |
154 |
| - exports.Set("typed_threadsafe_function_exception", |
155 |
| - InitTypedThreadSafeFunctionException(env)); |
156 |
| - exports.Set("typed_threadsafe_function_existing_tsfn", |
157 |
| - InitTypedThreadSafeFunctionExistingTsfn(env)); |
158 |
| - exports.Set("typed_threadsafe_function_ptr", |
159 |
| - InitTypedThreadSafeFunctionPtr(env)); |
160 |
| - exports.Set("typed_threadsafe_function_sum", |
161 |
| - InitTypedThreadSafeFunctionSum(env)); |
162 |
| - exports.Set("typed_threadsafe_function_unref", |
163 |
| - InitTypedThreadSafeFunctionUnref(env)); |
164 |
| - exports.Set("typed_threadsafe_function", InitTypedThreadSafeFunction(env)); |
165 |
| -#endif |
166 |
| - exports.Set("typedarray", InitTypedArray(env)); |
167 |
| - exports.Set("objectwrap", InitObjectWrap(env)); |
168 |
| - exports.Set("objectwrapConstructorException", |
169 |
| - InitObjectWrapConstructorException(env)); |
170 |
| - exports.Set("objectwrap_function", InitObjectWrapFunction(env)); |
171 |
| - exports.Set("objectwrap_removewrap", InitObjectWrapRemoveWrap(env)); |
172 |
| - exports.Set("objectwrap_multiple_inheritance", |
173 |
| - InitObjectWrapMultipleInheritance(env)); |
174 |
| - exports.Set("objectreference", InitObjectReference(env)); |
175 |
| - exports.Set("reference", InitReference(env)); |
176 |
| - exports.Set("version_management", InitVersionManagement(env)); |
177 |
| - exports.Set("thunking_manual", InitThunkingManual(env)); |
178 |
| -#if (NAPI_VERSION > 7) |
179 |
| - exports.Set("object_freeze_seal", InitObjectFreezeSeal(env)); |
180 |
| - exports.Set("type_taggable", InitTypeTaggable(env)); |
181 |
| -#endif |
182 |
| -#if (NAPI_VERSION > 8) |
183 |
| - exports.Set("env_misc", InitEnvMiscellaneous(env)); |
184 |
| -#endif |
| 13 | + napi_valuetype valuetype1; |
| 14 | + napi_typeof(env, args[1], &valuetype1); |
185 | 15 |
|
186 |
| -#if defined(NODE_ADDON_API_ENABLE_MAYBE) |
187 |
| - exports.Set("maybe_check", InitMaybeCheck(env)); |
188 |
| -#endif |
| 16 | + double value0; |
| 17 | + napi_get_value_double(env, args[0], &value0); |
| 18 | + |
| 19 | + double value1; |
| 20 | + napi_get_value_double(env, args[1], &value1); |
| 21 | + |
| 22 | + napi_value sum; |
| 23 | + napi_create_double(env, value0 + value1, &sum); |
| 24 | + |
| 25 | + return sum; |
| 26 | + |
| 27 | +} |
| 28 | + |
| 29 | +EXTERN_C_START |
| 30 | +static napi_value Init(napi_env env, napi_value exports) |
| 31 | +{ |
| 32 | + napi_property_descriptor desc[] = { |
| 33 | + { "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr } |
| 34 | + }; |
| 35 | + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); |
189 | 36 | return exports;
|
190 | 37 | }
|
| 38 | +EXTERN_C_END |
191 | 39 |
|
192 |
| -NODE_API_MODULE(entry, EntryInit) |
| 40 | +static napi_module demoModule = { |
| 41 | + .nm_version = 1, |
| 42 | + .nm_flags = 0, |
| 43 | + .nm_filename = nullptr, |
| 44 | + .nm_register_func = Init, |
| 45 | + .nm_modname = "entry", |
| 46 | + .nm_priv = ((void*)0), |
| 47 | + .reserved = { 0 }, |
| 48 | +}; |
| 49 | + |
| 50 | +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) |
| 51 | +{ |
| 52 | + napi_module_register(&demoModule); |
| 53 | +} |
0 commit comments