Node.js  v8.x
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine
node_api.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Experimental prototype for demonstrating VM agnostic and ABI stable API
3  * for native modules to use instead of using Nan and V8 APIs directly.
4  *
5  * The current status is "Experimental" and should not be used for
6  * production applications. The API is still subject to change
7  * and as an experimental feature is NOT subject to semver.
8  *
9  ******************************************************************************/
10 #ifndef SRC_NODE_API_H_
11 #define SRC_NODE_API_H_
12 
13 #include <stddef.h>
14 #include <stdbool.h>
15 #include "node_api_types.h"
16 
17 #ifdef _WIN32
18  #ifdef BUILDING_NODE_EXTENSION
19  #ifdef EXTERNAL_NAPI
20  // Building external N-API, or native module against external N-API
21  #define NAPI_EXTERN /* nothing */
22  #else
23  // Building native module against node with built-in N-API
24  #define NAPI_EXTERN __declspec(dllimport)
25  #endif
26  #else
27  // Building node with built-in N-API
28  #define NAPI_EXTERN __declspec(dllexport)
29  #endif
30 #else
31  #define NAPI_EXTERN /* nothing */
32 #endif
33 
34 #ifdef _WIN32
35 # define NAPI_MODULE_EXPORT __declspec(dllexport)
36 #else
37 # define NAPI_MODULE_EXPORT __attribute__((visibility("default")))
38 #endif
39 
40 #ifdef __GNUC__
41 #define NAPI_NO_RETURN __attribute__((noreturn))
42 #else
43 #define NAPI_NO_RETURN
44 #endif
45 
46 
47 typedef void (*napi_addon_register_func)(napi_env env,
48  napi_value exports,
49  napi_value module,
50  void* priv);
51 
52 typedef struct {
54  unsigned int nm_flags;
55  const char* nm_filename;
57  const char* nm_modname;
58  void* nm_priv;
59  void* reserved[4];
60 } napi_module;
61 
62 #define NAPI_MODULE_VERSION 1
63 
64 #if defined(_MSC_VER)
65 #pragma section(".CRT$XCU", read)
66 #define NAPI_C_CTOR(fn) \
67  static void __cdecl fn(void); \
68  __declspec(dllexport, allocate(".CRT$XCU")) void(__cdecl * fn##_)(void) = \
69  fn; \
70  static void __cdecl fn(void)
71 #else
72 #define NAPI_C_CTOR(fn) \
73  static void fn(void) __attribute__((constructor)); \
74  static void fn(void)
75 #endif
76 
77 #ifdef __cplusplus
78 #define EXTERN_C_START extern "C" {
79 #define EXTERN_C_END }
80 #else
81 #define EXTERN_C_START
82 #define EXTERN_C_END
83 #endif
84 
85 #define NAPI_MODULE_X(modname, regfunc, priv, flags) \
86  EXTERN_C_START \
87  static napi_module _module = \
88  { \
89  NAPI_MODULE_VERSION, \
90  flags, \
91  __FILE__, \
92  regfunc, \
93  #modname, \
94  priv, \
95  {0}, \
96  }; \
97  NAPI_C_CTOR(_register_ ## modname) { \
98  napi_module_register(&_module); \
99  } \
100  EXTERN_C_END
101 
102 #define NAPI_MODULE(modname, regfunc) \
103  NAPI_MODULE_X(modname, regfunc, NULL, 0)
104 
106 
108 
111  const napi_extended_error_info** result);
112 
113 NAPI_EXTERN NAPI_NO_RETURN void napi_fatal_error(const char* location,
114  const char* message);
115 
116 // Getters for defined singletons
121  bool value,
122  napi_value* result);
123 
124 // Methods to create Primitive types/Objects
128  size_t length,
129  napi_value* result);
131  double value,
132  napi_value* result);
134  int32_t value,
135  napi_value* result);
137  uint32_t value,
138  napi_value* result);
140  int64_t value,
141  napi_value* result);
143  const char* str,
144  size_t length,
145  napi_value* result);
147  const char* str,
148  size_t length,
149  napi_value* result);
151  const char16_t* str,
152  size_t length,
153  napi_value* result);
155  napi_value description,
156  napi_value* result);
158  const char* utf8name,
159  napi_callback cb,
160  void* data,
161  napi_value* result);
163  napi_value code,
164  napi_value msg,
165  napi_value* result);
167  napi_value code,
168  napi_value msg,
169  napi_value* result);
171  napi_value code,
172  napi_value msg,
173  napi_value* result);
174 
175 // Methods to get the the native napi_value from Primitive type
177  napi_value value,
178  napi_valuetype* result);
180  napi_value value,
181  double* result);
183  napi_value value,
184  int32_t* result);
186  napi_value value,
187  uint32_t* result);
189  napi_value value,
190  int64_t* result);
192  napi_value value,
193  bool* result);
194 
195 // Copies LATIN-1 encoded bytes from a string into a buffer.
197  napi_value value,
198  char* buf,
199  size_t bufsize,
200  size_t* result);
201 
202 // Copies UTF-8 encoded bytes from a string into a buffer.
204  napi_value value,
205  char* buf,
206  size_t bufsize,
207  size_t* result);
208 
209 // Copies UTF-16 encoded bytes from a string into a buffer.
211  napi_value value,
212  char16_t* buf,
213  size_t bufsize,
214  size_t* result);
215 
216 // Methods to coerce values
217 // These APIs may execute user scripts
219  napi_value value,
220  napi_value* result);
222  napi_value value,
223  napi_value* result);
225  napi_value value,
226  napi_value* result);
228  napi_value value,
229  napi_value* result);
230 
231 // Methods to work with Objects
233  napi_value object,
234  napi_value* result);
236  napi_value object,
237  napi_value* result);
239  napi_value object,
240  napi_value key,
241  napi_value value);
243  napi_value object,
244  napi_value key,
245  bool* result);
247  napi_value object,
248  napi_value key,
249  napi_value* result);
251  napi_value object,
252  napi_value key,
253  bool* result);
255  napi_value object,
256  napi_value key,
257  bool* result);
259  napi_value object,
260  const char* utf8name,
261  napi_value value);
263  napi_value object,
264  const char* utf8name,
265  bool* result);
267  napi_value object,
268  const char* utf8name,
269  napi_value* result);
271  napi_value object,
272  uint32_t index,
273  napi_value value);
275  napi_value object,
276  uint32_t index,
277  bool* result);
279  napi_value object,
280  uint32_t index,
281  napi_value* result);
283  napi_value object,
284  uint32_t index,
285  bool* result);
288  napi_value object,
289  size_t property_count,
290  const napi_property_descriptor* properties);
291 
292 // Methods to work with Arrays
294  napi_value value,
295  bool* result);
297  napi_value value,
298  uint32_t* result);
299 
300 // Methods to compare values
302  napi_value lhs,
303  napi_value rhs,
304  bool* result);
305 
306 // Methods to work with Functions
308  napi_value recv,
310  size_t argc,
311  const napi_value* argv,
312  napi_value* result);
314  napi_value constructor,
315  size_t argc,
316  const napi_value* argv,
317  napi_value* result);
319  napi_value object,
320  napi_value constructor,
321  bool* result);
322 
323 // Napi version of node::MakeCallback(...)
325  napi_value recv,
327  size_t argc,
328  const napi_value* argv,
329  napi_value* result);
330 
331 // Methods to work with napi_callbacks
332 
333 // Gets all callback info in a single call. (Ugly, but faster.)
335  napi_env env, // [in] NAPI environment handle
336  napi_callback_info cbinfo, // [in] Opaque callback-info handle
337  size_t* argc, // [in-out] Specifies the size of the provided argv array
338  // and receives the actual count of args.
339  napi_value* argv, // [out] Array of values
340  napi_value* this_arg, // [out] Receives the JS 'this' arg for the call
341  void** data); // [out] Receives the data pointer for the callback.
342 
344  napi_callback_info cbinfo,
345  bool* result);
348  const char* utf8name,
349  napi_callback constructor,
350  void* data,
351  size_t property_count,
352  const napi_property_descriptor* properties,
353  napi_value* result);
354 
355 // Methods to work with external data objects
357  napi_value js_object,
358  void* native_object,
359  napi_finalize finalize_cb,
360  void* finalize_hint,
361  napi_ref* result);
363  napi_value js_object,
364  void** result);
366  napi_value js_object,
367  void** result);
369  void* data,
370  napi_finalize finalize_cb,
371  void* finalize_hint,
372  napi_value* result);
374  napi_value value,
375  void** result);
376 
377 // Methods to control object lifespan
378 
379 // Set initial_refcount to 0 for a weak reference, >0 for a strong reference.
381  napi_value value,
382  uint32_t initial_refcount,
383  napi_ref* result);
384 
385 // Deletes a reference. The referenced value is released, and may
386 // be GC'd unless there are other references to it.
388 
389 // Increments the reference count, optionally returning the resulting count.
390 // After this call the reference will be a strong reference because its
391 // refcount is >0, and the referenced object is effectively "pinned".
392 // Calling this when the refcount is 0 and the object is unavailable
393 // results in an error.
395  napi_ref ref,
396  uint32_t* result);
397 
398 // Decrements the reference count, optionally returning the resulting count.
399 // If the result is 0 the reference is now weak and the object may be GC'd
400 // at any time if there are no other references. Calling this when the
401 // refcount is already 0 results in an error.
403  napi_ref ref,
404  uint32_t* result);
405 
406 // Attempts to get a referenced value. If the reference is weak,
407 // the value might no longer be available, in that case the call
408 // is still successful but the result is NULL.
410  napi_ref ref,
411  napi_value* result);
412 
414  napi_handle_scope* result);
416  napi_handle_scope scope);
423 
426  napi_value escapee,
427  napi_value* result);
428 
429 // Methods to support error handling
432  const char* code,
433  const char* msg);
435  const char* code,
436  const char* msg);
438  const char* code,
439  const char* msg);
441  napi_value value,
442  bool* result);
443 
444 // Methods to support catching exceptions
447  napi_value* result);
448 
449 // Methods to provide node::Buffer functionality with napi types
451  size_t length,
452  void** data,
453  napi_value* result);
455  size_t length,
456  void* data,
457  napi_finalize finalize_cb,
458  void* finalize_hint,
459  napi_value* result);
461  size_t length,
462  const void* data,
463  void** result_data,
464  napi_value* result);
466  napi_value value,
467  bool* result);
469  napi_value value,
470  void** data,
471  size_t* length);
472 
473 // Methods to work with array buffers and typed arrays
475  napi_value value,
476  bool* result);
478  size_t byte_length,
479  void** data,
480  napi_value* result);
483  void* external_data,
484  size_t byte_length,
485  napi_finalize finalize_cb,
486  void* finalize_hint,
487  napi_value* result);
489  napi_value arraybuffer,
490  void** data,
491  size_t* byte_length);
493  napi_value value,
494  bool* result);
497  size_t length,
498  napi_value arraybuffer,
499  size_t byte_offset,
500  napi_value* result);
502  napi_value typedarray,
503  napi_typedarray_type* type,
504  size_t* length,
505  void** data,
506  napi_value* arraybuffer,
507  size_t* byte_offset);
508 
510  size_t length,
511  napi_value arraybuffer,
512  size_t byte_offset,
513  napi_value* result);
515  napi_value value,
516  bool* result);
518  napi_value dataview,
519  size_t* bytelength,
520  void** data,
521  napi_value* arraybuffer,
522  size_t* byte_offset);
523 
524 // Methods to manage simple async operations
529  void* data,
530  napi_async_work* result);
532  napi_async_work work);
534  napi_async_work work);
536  napi_async_work work);
537 
538 
539 // version management
540 NAPI_EXTERN napi_status napi_get_version(napi_env env, uint32_t* result);
541 
544  const napi_node_version** version);
545 
546 // Promises
548  napi_deferred* deferred,
549  napi_value* promise);
551  napi_deferred deferred,
552  napi_value resolution);
554  napi_deferred deferred,
555  napi_value rejection);
557  napi_value promise,
558  bool* is_promise);
559 
560 // Memory management
562  int64_t change_in_bytes,
563  int64_t* adjusted_value);
564 
565 // Runnig a script
568  napi_value* result);
569 
571 
572 #endif // SRC_NODE_API_H_
NAPI_EXTERN NAPI_NO_RETURN void napi_fatal_error(const char *location, const char *message)
Definition: node_api.cc:927
NAPI_EXTERN napi_status napi_get_value_bool(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:2120
this func
Definition: v8ustack.d:371
struct napi_ref__ * napi_ref
NAPI_EXTERN napi_status napi_typeof(napi_env env, napi_value value, napi_valuetype *result)
Definition: node_api.cc:1784
NAPI_EXTERN napi_status napi_has_named_property(napi_env env, napi_value object, const char *utf8name, bool *result)
Definition: node_api.cc:1229
NAPI_EXTERN napi_status napi_create_double(napi_env env, double value, napi_value *result)
Definition: node_api.cc:1584
NAPI_EXTERN napi_status napi_coerce_to_number(napi_env env, napi_value value, napi_value *result)
Definition: node_api.cc:2277
NAPI_EXTERN napi_status napi_is_array(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:1440
NAPI_EXTERN napi_status napi_is_construct_call(napi_env env, napi_callback_info cbinfo, bool *result)
Definition: node_api.cc:1877
NAPI_EXTERN napi_status napi_get_value_uint32(napi_env env, napi_value value, uint32_t *result)
Definition: node_api.cc:2063
NAPI_EXTERN napi_status napi_create_range_error(napi_env env, napi_value code, napi_value msg, napi_value *result)
Definition: node_api.cc:1763
NAPI_EXTERN napi_status napi_get_value_int32(napi_env env, napi_value value, int32_t *result)
Definition: node_api.cc:2039
NAPI_EXTERN napi_status napi_get_buffer_info(napi_env env, napi_value value, void **data, size_t *length)
Definition: node_api.cc:2904
NAPI_EXTERN napi_status napi_get_last_error_info(napi_env env, const napi_extended_error_info **result)
Definition: node_api.cc:904
NAPI_EXTERN napi_status napi_delete_async_work(napi_env env, napi_async_work work)
Definition: node_api.cc:3344
NAPI_EXTERN napi_status napi_create_array_with_length(napi_env env, size_t length, napi_value *result)
Definition: node_api.cc:1520
unsigned char * buf
Definition: cares_wrap.cc:483
#define EXTERN_C_END
Definition: node_api.h:82
const char * nm_modname
Definition: node_api.h:57
NAPI_EXTERN napi_status napi_open_escapable_handle_scope(napi_env env, napi_escapable_handle_scope *result)
Definition: node_api.cc:2566
NAPI_EXTERN napi_status napi_get_array_length(napi_env env, napi_value value, uint32_t *result)
Definition: node_api.cc:1451
struct napi_deferred__ * napi_deferred
NAPI_EXTERN napi_status napi_get_value_int64(napi_env env, napi_value value, int64_t *result)
Definition: node_api.cc:2087
NAPI_EXTERN napi_status napi_get_value_double(napi_env env, napi_value value, double *result)
Definition: node_api.cc:2022
NAPI_EXTERN napi_status napi_set_property(napi_env env, napi_value object, napi_value key, napi_value value)
Definition: node_api.cc:1092
void * nm_priv
Definition: node_api.h:58
NAPI_EXTERN napi_status napi_create_function(napi_env env, const char *utf8name, napi_callback cb, void *data, napi_value *result)
Definition: node_api.cc:932
NAPI_EXTERN napi_status napi_get_property_names(napi_env env, napi_value object, napi_value *result)
Definition: node_api.cc:1072
NAPI_EXTERN napi_status napi_create_string_utf16(napi_env env, const char16_t *str, size_t length, napi_value *result)
Definition: node_api.cc:1565
NAPI_EXTERN napi_status napi_get_boolean(napi_env env, bool value, napi_value *result)
Definition: node_api.cc:1632
NAPI_EXTERN napi_status napi_adjust_external_memory(napi_env env, int64_t change_in_bytes, int64_t *adjusted_value)
Definition: node_api.cc:3216
NAPI_EXTERN napi_status napi_unwrap(napi_env env, napi_value js_object, void **result)
Definition: node_api.cc:2372
NAPI_EXTERN napi_status napi_get_null(napi_env env, napi_value *result)
Definition: node_api.cc:1835
struct napi_async_work__ * napi_async_work
NAPI_EXTERN napi_status napi_set_element(napi_env env, napi_value object, uint32_t index, napi_value value)
Definition: node_api.cc:1279
const char * nm_filename
Definition: node_api.h:55
NAPI_EXTERN napi_status napi_throw(napi_env env, napi_value error)
Definition: node_api.cc:1940
NAPI_EXTERN napi_status napi_create_external_arraybuffer(napi_env env, void *external_data, size_t byte_length, napi_finalize finalize_cb, void *finalize_hint, napi_value *result)
Definition: node_api.cc:2955
NAPI_EXTERN napi_status napi_delete_element(napi_env env, napi_value object, uint32_t index, bool *result)
Definition: node_api.cc:1342
NAPI_EXTERN napi_status napi_cancel_async_work(napi_env env, napi_async_work work)
Definition: node_api.cc:3373
EXTERN_C_START NAPI_EXTERN void napi_module_register(napi_module *mod)
Definition: node_api.cc:844
NAPI_EXTERN napi_status napi_delete_property(napi_env env, napi_value object, napi_value key, bool *result)
Definition: node_api.cc:1162
NAPI_EXTERN napi_status napi_create_string_utf8(napi_env env, const char *str, size_t length, napi_value *result)
Definition: node_api.cc:1551
this script
Definition: v8ustack.d:378
union node::cares_wrap::@8::CaresAsyncData::@0 data
NAPI_EXTERN napi_status napi_escape_handle(napi_env env, napi_escapable_handle_scope scope, napi_value escapee, napi_value *result)
Definition: node_api.cc:2591
struct napi_handle_scope__ * napi_handle_scope
NAPI_EXTERN napi_status napi_remove_wrap(napi_env env, napi_value js_object, void **result)
Definition: node_api.cc:2380
NAPI_EXTERN napi_status napi_resolve_deferred(napi_env env, napi_deferred deferred, napi_value resolution)
Definition: node_api.cc:3403
NAPI_EXTERN napi_status napi_get_property(napi_env env, napi_value object, napi_value key, napi_value *result)
Definition: node_api.cc:1138
struct napi_value__ * napi_value
unsigned int nm_flags
Definition: node_api.h:54
NAPI_EXTERN napi_status napi_run_script(napi_env env, napi_value script, napi_value *result)
Definition: node_api.cc:3427
#define EXTERN_C_START
Definition: node_api.h:81
NAPI_EXTERN napi_status napi_reject_deferred(napi_env env, napi_deferred deferred, napi_value rejection)
Definition: node_api.cc:3409
void(* napi_finalize)(napi_env env, void *finalize_data, void *finalize_hint)
void(* napi_async_execute_callback)(napi_env env, void *data)
NAPI_EXTERN napi_status napi_call_function(napi_env env, napi_value recv, napi_value func, size_t argc, const napi_value *argv, napi_value *result)
Definition: node_api.cc:1892
NAPI_EXTERN napi_status napi_get_reference_value(napi_env env, napi_ref ref, napi_value *result)
Definition: node_api.cc:2530
NAPI_EXTERN napi_status napi_open_handle_scope(napi_env env, napi_handle_scope *result)
Definition: node_api.cc:2545
NAPI_EXTERN napi_status napi_strict_equals(napi_env env, napi_value lhs, napi_value rhs, bool *result)
Definition: node_api.cc:1467
NAPI_EXTERN napi_status napi_create_external(napi_env env, void *data, napi_finalize finalize_cb, void *finalize_hint, napi_value *result)
Definition: node_api.cc:2407
NAPI_EXTERN napi_status napi_is_arraybuffer(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:2923
NAPI_EXTERN napi_status napi_create_dataview(napi_env env, size_t length, napi_value arraybuffer, size_t byte_offset, napi_value *result)
Definition: node_api.cc:3129
int nm_version
Definition: node_api.h:53
NAPI_EXTERN napi_status napi_create_object(napi_env env, napi_value *result)
Definition: node_api.cc:1500
NAPI_EXTERN napi_status napi_create_int32(napi_env env, int32_t value, napi_value *result)
Definition: node_api.cc:1596
NAPI_EXTERN napi_status napi_coerce_to_object(napi_env env, napi_value value, napi_value *result)
Definition: node_api.cc:2244
NAPI_EXTERN napi_status napi_wrap(napi_env env, napi_value js_object, void *native_object, napi_finalize finalize_cb, void *finalize_hint, napi_ref *result)
Definition: node_api.cc:2311
NAPI_EXTERN napi_status napi_define_properties(napi_env env, napi_value object, size_t property_count, const napi_property_descriptor *properties)
Definition: node_api.cc:1362
NAPI_EXTERN napi_status napi_get_named_property(napi_env env, napi_value object, const char *utf8name, napi_value *result)
Definition: node_api.cc:1253
NAPI_EXTERN napi_status napi_is_promise(napi_env env, napi_value promise, bool *is_promise)
Definition: node_api.cc:3415
void(* napi_addon_register_func)(napi_env env, napi_value exports, napi_value module, void *priv)
Definition: node_api.h:47
NAPI_EXTERN napi_status napi_throw_error(napi_env env, const char *code, const char *msg)
Definition: node_api.cc:1952
NAPI_EXTERN napi_status napi_throw_range_error(napi_env env, const char *code, const char *msg)
Definition: node_api.cc:1990
NAPI_EXTERN napi_status napi_create_error(napi_env env, napi_value code, napi_value msg, napi_value *result)
Definition: node_api.cc:1721
NAPI_EXTERN napi_status napi_is_exception_pending(napi_env env, bool *result)
Definition: node_api.cc:2791
NAPI_EXTERN napi_status napi_create_arraybuffer(napi_env env, size_t byte_length, void **data, napi_value *result)
Definition: node_api.cc:2934
NAPI_EXTERN napi_status napi_get_global(napi_env env, napi_value *result)
Definition: node_api.cc:1926
napi_addon_register_func nm_register_func
Definition: node_api.h:56
NAPI_EXTERN napi_status napi_close_escapable_handle_scope(napi_env env, napi_escapable_handle_scope scope)
Definition: node_api.cc:2579
NAPI_EXTERN napi_status napi_get_cb_info(napi_env env, napi_callback_info cbinfo, size_t *argc, napi_value *argv, napi_value *this_arg, void **data)
Definition: node_api.cc:1846
NAPI_EXTERN napi_status napi_create_typedarray(napi_env env, napi_typedarray_type type, size_t length, napi_value arraybuffer, size_t byte_offset, napi_value *result)
Definition: node_api.cc:3019
NAPI_EXTERN napi_status napi_has_property(napi_env env, napi_value object, napi_value key, bool *result)
Definition: node_api.cc:1115
struct napi_callback_info__ * napi_callback_info
NAPI_EXTERN napi_status napi_create_array(napi_env env, napi_value *result)
Definition: node_api.cc:1510
NAPI_EXTERN napi_status napi_get_prototype(napi_env env, napi_value object, napi_value *result)
Definition: node_api.cc:1483
napi_typedarray_type
#define NAPI_EXTERN
Definition: node_api.h:31
NAPI_EXTERN napi_status napi_make_callback(napi_env env, napi_value recv, napi_value func, size_t argc, const napi_value *argv, napi_value *result)
Definition: node_api.cc:2758
NAPI_EXTERN napi_status napi_coerce_to_bool(napi_env env, napi_value value, napi_value *result)
Definition: node_api.cc:2260
NAPI_EXTERN napi_status napi_throw_type_error(napi_env env, const char *code, const char *msg)
Definition: node_api.cc:1971
NAPI_EXTERN napi_status napi_has_own_property(napi_env env, napi_value object, napi_value key, bool *result)
Definition: node_api.cc:1184
NAPI_EXTERN napi_status napi_create_external_buffer(napi_env env, size_t length, void *data, napi_finalize finalize_cb, void *finalize_hint, napi_value *result)
Definition: node_api.cc:2841
NAPI_EXTERN napi_status napi_create_uint32(napi_env env, uint32_t value, napi_value *result)
Definition: node_api.cc:1608
NAPI_EXTERN napi_status napi_reference_ref(napi_env env, napi_ref ref, uint32_t *result)
Definition: node_api.cc:2486
NAPI_EXTERN napi_status napi_create_buffer(napi_env env, size_t length, void **data, napi_value *result)
Definition: node_api.cc:2819
NAPI_EXTERN napi_status napi_get_typedarray_info(napi_env env, napi_value typedarray, napi_typedarray_type *type, size_t *length, void **data, napi_value *arraybuffer, size_t *byte_offset)
Definition: node_api.cc:3071
NAPI_EXTERN napi_status napi_create_promise(napi_env env, napi_deferred *deferred, napi_value *promise)
Definition: node_api.cc:3384
struct napi_escapable_handle_scope__ * napi_escapable_handle_scope
NAPI_EXTERN napi_status napi_get_and_clear_last_exception(napi_env env, napi_value *result)
Definition: node_api.cc:2801
NAPI_EXTERN napi_status napi_set_named_property(napi_env env, napi_value object, const char *utf8name, napi_value value)
Definition: node_api.cc:1205
NAPI_EXTERN napi_status napi_reference_unref(napi_env env, napi_ref ref, uint32_t *result)
Definition: node_api.cc:2506
NAPI_EXTERN napi_status napi_close_handle_scope(napi_env env, napi_handle_scope scope)
Definition: node_api.cc:2556
napi_status
NAPI_EXTERN napi_status napi_create_int64(napi_env env, int64_t value, napi_value *result)
Definition: node_api.cc:1620
NAPI_EXTERN napi_status napi_delete_reference(napi_env env, napi_ref ref)
Definition: node_api.cc:2470
NAPI_EXTERN napi_status napi_get_dataview_info(napi_env env, napi_value dataview, size_t *bytelength, void **data, napi_value *arraybuffer, size_t *byte_offset)
Definition: node_api.cc:3160
void(* napi_async_complete_callback)(napi_env env, napi_status status, void *data)
NAPI_EXTERN napi_status napi_get_node_version(napi_env env, const napi_node_version **version)
Definition: node_api.cc:3202
NAPI_EXTERN napi_status napi_get_value_external(napi_env env, napi_value value, void **result)
Definition: node_api.cc:2434
NAPI_EXTERN napi_status napi_get_undefined(napi_env env, napi_value *result)
Definition: node_api.cc:1825
NAPI_EXTERN napi_status napi_coerce_to_string(napi_env env, napi_value value, napi_value *result)
Definition: node_api.cc:2294
NAPI_EXTERN napi_status napi_create_buffer_copy(napi_env env, size_t length, const void *data, void **result_data, napi_value *result)
Definition: node_api.cc:2872
NAPI_EXTERN napi_status napi_has_element(napi_env env, napi_value object, uint32_t index, bool *result)
Definition: node_api.cc:1300
NAPI_EXTERN napi_status napi_queue_async_work(napi_env env, napi_async_work work)
Definition: node_api.cc:3353
NAPI_EXTERN napi_status napi_get_arraybuffer_info(napi_env env, napi_value arraybuffer, void **data, size_t *byte_length)
Definition: node_api.cc:2984
NAPI_EXTERN napi_status napi_create_reference(napi_env env, napi_value value, uint32_t initial_refcount, napi_ref *result)
Definition: node_api.cc:2451
NAPI_EXTERN napi_status napi_instanceof(napi_env env, napi_value object, napi_value constructor, bool *result)
Definition: node_api.cc:2639
NAPI_EXTERN napi_status napi_create_string_latin1(napi_env env, const char *str, size_t length, napi_value *result)
Definition: node_api.cc:1532
NAPI_EXTERN napi_status napi_create_type_error(napi_env env, napi_value code, napi_value msg, napi_value *result)
Definition: node_api.cc:1742
napi_value(* napi_callback)(napi_env env, napi_callback_info info)
NAPI_EXTERN napi_status napi_get_version(napi_env env, uint32_t *result)
Definition: node_api.cc:3195
NAPI_EXTERN napi_status napi_get_element(napi_env env, napi_value object, uint32_t index, napi_value *result)
Definition: node_api.cc:1321
uint16_t char16_t
Definition: node_api_types.h:8
NAPI_EXTERN napi_status napi_is_buffer(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:2895
NAPI_EXTERN napi_status napi_is_dataview(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:3149
napi_valuetype
NAPI_EXTERN napi_status napi_new_instance(napi_env env, napi_value constructor, size_t argc, const napi_value *argv, napi_value *result)
Definition: node_api.cc:2612
NAPI_EXTERN napi_status napi_get_value_string_latin1(napi_env env, napi_value value, char *buf, size_t bufsize, size_t *result)
Definition: node_api.cc:2143
NAPI_EXTERN napi_status napi_get_value_string_utf16(napi_env env, napi_value value, char16_t *buf, size_t bufsize, size_t *result)
Definition: node_api.cc:2215
NAPI_EXTERN napi_status napi_is_typedarray(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:3008
#define NAPI_NO_RETURN
Definition: node_api.h:43
NAPI_EXTERN napi_status napi_create_async_work(napi_env env, napi_async_execute_callback execute, napi_async_complete_callback complete, void *data, napi_async_work *result)
Definition: node_api.cc:3328
NAPI_EXTERN napi_status napi_is_error(napi_env env, napi_value value, bool *result)
Definition: node_api.cc:2009
NAPI_EXTERN napi_status napi_get_value_string_utf8(napi_env env, napi_value value, char *buf, size_t bufsize, size_t *result)
Definition: node_api.cc:2179
NAPI_EXTERN napi_status napi_define_class(napi_env env, const char *utf8name, napi_callback constructor, void *data, size_t property_count, const napi_property_descriptor *properties, napi_value *result)
Definition: node_api.cc:969
NAPI_EXTERN napi_status napi_create_symbol(napi_env env, napi_value description, napi_value *result)
Definition: node_api.cc:1647