Where Online Learning is simpler!
The C and C++ Include Header Files
cat -n /usr/include/nodejs/src/node_api_types.h
1 #ifndef SRC_NODE_API_TYPES_H_ 2 #define SRC_NODE_API_TYPES_H_ 3 4 #include "js_native_api_types.h" 5 6 typedef napi_value(NAPI_CDECL* napi_addon_register_func)(napi_env env, 7 napi_value exports); 8 typedef int32_t(NAPI_CDECL* node_api_addon_get_api_version_func)(void); 9 10 typedef struct napi_callback_scope__* napi_callback_scope; 11 typedef struct napi_async_context__* napi_async_context; 12 typedef struct napi_async_work__* napi_async_work; 13 14 #if NAPI_VERSION >= 3 15 typedef void(NAPI_CDECL* napi_cleanup_hook)(void* arg); 16 #endif // NAPI_VERSION >= 3 17 18 #if NAPI_VERSION >= 4 19 typedef struct napi_threadsafe_function__* napi_threadsafe_function; 20 #endif // NAPI_VERSION >= 4 21 22 #if NAPI_VERSION >= 4 23 typedef enum { 24 napi_tsfn_release, 25 napi_tsfn_abort 26 } napi_threadsafe_function_release_mode; 27 28 typedef enum { 29 napi_tsfn_nonblocking, 30 napi_tsfn_blocking 31 } napi_threadsafe_function_call_mode; 32 #endif // NAPI_VERSION >= 4 33 34 typedef void(NAPI_CDECL* napi_async_execute_callback)(napi_env env, void* data); 35 typedef void(NAPI_CDECL* napi_async_complete_callback)(napi_env env, 36 napi_status status, 37 void* data); 38 #if NAPI_VERSION >= 4 39 typedef void(NAPI_CDECL* napi_threadsafe_function_call_js)( 40 napi_env env, napi_value js_callback, void* context, void* data); 41 #endif // NAPI_VERSION >= 4 42 43 typedef struct { 44 uint32_t major; 45 uint32_t minor; 46 uint32_t patch; 47 const char* release; 48 } napi_node_version; 49 50 #if NAPI_VERSION >= 8 51 typedef struct napi_async_cleanup_hook_handle__* napi_async_cleanup_hook_handle; 52 typedef void(NAPI_CDECL* napi_async_cleanup_hook)( 53 napi_async_cleanup_hook_handle handle, void* data); 54 #endif // NAPI_VERSION >= 8 55 56 #endif // SRC_NODE_API_TYPES_H_