koffi 1.1.0-beta.1 → 1.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +4 -0
- package/README.md +12 -11
- package/build/qemu/1.1.0-beta.2/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_linux_arm.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.2/koffi_win32_x64.tar.gz +0 -0
- package/package.json +1 -1
- package/qemu/qemu.js +1 -0
- package/src/abi_arm32.cc +27 -45
- package/src/abi_arm64.cc +58 -132
- package/src/abi_x64_sysv.cc +24 -7
- package/src/abi_x64_win.cc +3 -0
- package/src/abi_x86.cc +3 -0
- package/src/call.cc +540 -33
- package/src/call.hh +5 -3
- package/src/ffi.cc +66 -2
- package/src/ffi.hh +3 -1
- package/src/parser.cc +4 -0
- package/src/util.cc +72 -0
- package/src/util.hh +2 -0
- package/test/misc.c +14 -8
- package/vendor/node-addon-api/CODE_OF_CONDUCT.md +4 -0
- package/vendor/node-addon-api/CONTRIBUTING.md +93 -0
- package/vendor/node-addon-api/appveyor.yml +37 -0
- package/vendor/node-addon-api/benchmark/README.md +47 -0
- package/vendor/node-addon-api/benchmark/binding.gyp +25 -0
- package/vendor/node-addon-api/benchmark/function_args.cc +217 -0
- package/vendor/node-addon-api/benchmark/function_args.js +60 -0
- package/vendor/node-addon-api/benchmark/index.js +34 -0
- package/vendor/node-addon-api/benchmark/property_descriptor.cc +91 -0
- package/vendor/node-addon-api/benchmark/property_descriptor.js +37 -0
- package/vendor/node-addon-api/doc/addon.md +163 -0
- package/vendor/node-addon-api/doc/array.md +81 -0
- package/vendor/node-addon-api/doc/array_buffer.md +155 -0
- package/vendor/node-addon-api/doc/async_context.md +86 -0
- package/vendor/node-addon-api/doc/async_operations.md +31 -0
- package/vendor/node-addon-api/doc/async_worker.md +427 -0
- package/vendor/node-addon-api/doc/async_worker_variants.md +557 -0
- package/vendor/node-addon-api/doc/bigint.md +97 -0
- package/vendor/node-addon-api/doc/boolean.md +68 -0
- package/vendor/node-addon-api/doc/buffer.md +150 -0
- package/vendor/node-addon-api/doc/callback_scope.md +54 -0
- package/vendor/node-addon-api/doc/callbackinfo.md +97 -0
- package/vendor/node-addon-api/doc/checker-tool.md +32 -0
- package/vendor/node-addon-api/doc/class_property_descriptor.md +123 -0
- package/vendor/node-addon-api/doc/cmake-js.md +68 -0
- package/vendor/node-addon-api/doc/conversion-tool.md +28 -0
- package/vendor/node-addon-api/doc/creating_a_release.md +62 -0
- package/vendor/node-addon-api/doc/dataview.md +248 -0
- package/vendor/node-addon-api/doc/date.md +68 -0
- package/vendor/node-addon-api/doc/env.md +196 -0
- package/vendor/node-addon-api/doc/error.md +120 -0
- package/vendor/node-addon-api/doc/error_handling.md +254 -0
- package/vendor/node-addon-api/doc/escapable_handle_scope.md +80 -0
- package/vendor/node-addon-api/doc/external.md +63 -0
- package/vendor/node-addon-api/doc/function.md +402 -0
- package/vendor/node-addon-api/doc/function_reference.md +238 -0
- package/vendor/node-addon-api/doc/generator.md +13 -0
- package/vendor/node-addon-api/doc/handle_scope.md +63 -0
- package/vendor/node-addon-api/doc/hierarchy.md +91 -0
- package/vendor/node-addon-api/doc/instance_wrap.md +408 -0
- package/vendor/node-addon-api/doc/maybe.md +76 -0
- package/vendor/node-addon-api/doc/memory_management.md +27 -0
- package/vendor/node-addon-api/doc/name.md +29 -0
- package/vendor/node-addon-api/doc/node-gyp.md +82 -0
- package/vendor/node-addon-api/doc/number.md +163 -0
- package/vendor/node-addon-api/doc/object.md +411 -0
- package/vendor/node-addon-api/doc/object_lifetime_management.md +83 -0
- package/vendor/node-addon-api/doc/object_reference.md +117 -0
- package/vendor/node-addon-api/doc/object_wrap.md +588 -0
- package/vendor/node-addon-api/doc/prebuild_tools.md +16 -0
- package/vendor/node-addon-api/doc/promises.md +79 -0
- package/vendor/node-addon-api/doc/property_descriptor.md +286 -0
- package/vendor/node-addon-api/doc/propertylvalue.md +50 -0
- package/vendor/node-addon-api/doc/range_error.md +59 -0
- package/vendor/node-addon-api/doc/reference.md +113 -0
- package/vendor/node-addon-api/doc/setup.md +110 -0
- package/vendor/node-addon-api/doc/string.md +93 -0
- package/vendor/node-addon-api/doc/symbol.md +61 -0
- package/vendor/node-addon-api/doc/threadsafe.md +121 -0
- package/vendor/node-addon-api/doc/threadsafe_function.md +290 -0
- package/vendor/node-addon-api/doc/type_error.md +59 -0
- package/vendor/node-addon-api/doc/typed_array.md +78 -0
- package/vendor/node-addon-api/doc/typed_array_of.md +137 -0
- package/vendor/node-addon-api/doc/typed_threadsafe_function.md +306 -0
- package/vendor/node-addon-api/doc/value.md +340 -0
- package/vendor/node-addon-api/doc/version_management.md +43 -0
- package/vendor/node-addon-api/package.json +415 -0
- package/vendor/node-addon-api/test/README.md +91 -0
- package/vendor/node-addon-api/test/addon.cc +36 -0
- package/vendor/node-addon-api/test/addon.js +11 -0
- package/vendor/node-addon-api/test/addon_build/index.js +49 -0
- package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +17 -0
- package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +62 -0
- package/vendor/node-addon-api/test/addon_build/tpl/index.js +9 -0
- package/vendor/node-addon-api/test/addon_build/tpl/package.json +11 -0
- package/vendor/node-addon-api/test/addon_data.cc +99 -0
- package/vendor/node-addon-api/test/addon_data.js +46 -0
- package/vendor/node-addon-api/test/array_buffer.cc +243 -0
- package/vendor/node-addon-api/test/array_buffer.js +69 -0
- package/vendor/node-addon-api/test/async_context.cc +36 -0
- package/vendor/node-addon-api/test/async_context.js +122 -0
- package/vendor/node-addon-api/test/async_progress_queue_worker.cc +83 -0
- package/vendor/node-addon-api/test/async_progress_queue_worker.js +46 -0
- package/vendor/node-addon-api/test/async_progress_worker.cc +134 -0
- package/vendor/node-addon-api/test/async_progress_worker.js +61 -0
- package/vendor/node-addon-api/test/async_worker.cc +106 -0
- package/vendor/node-addon-api/test/async_worker.js +179 -0
- package/vendor/node-addon-api/test/async_worker_nocallback.js +13 -0
- package/vendor/node-addon-api/test/async_worker_persistent.cc +63 -0
- package/vendor/node-addon-api/test/async_worker_persistent.js +24 -0
- package/vendor/node-addon-api/test/basic_types/array.cc +40 -0
- package/vendor/node-addon-api/test/basic_types/array.js +35 -0
- package/vendor/node-addon-api/test/basic_types/boolean.cc +38 -0
- package/vendor/node-addon-api/test/basic_types/boolean.js +35 -0
- package/vendor/node-addon-api/test/basic_types/number.cc +99 -0
- package/vendor/node-addon-api/test/basic_types/number.js +114 -0
- package/vendor/node-addon-api/test/basic_types/value.cc +120 -0
- package/vendor/node-addon-api/test/basic_types/value.js +133 -0
- package/vendor/node-addon-api/test/bigint.cc +91 -0
- package/vendor/node-addon-api/test/bigint.js +53 -0
- package/vendor/node-addon-api/test/binding-swallowexcept.cc +12 -0
- package/vendor/node-addon-api/test/binding.cc +173 -0
- package/vendor/node-addon-api/test/binding.gyp +124 -0
- package/vendor/node-addon-api/test/buffer.cc +183 -0
- package/vendor/node-addon-api/test/buffer.js +69 -0
- package/vendor/node-addon-api/test/callbackscope.cc +22 -0
- package/vendor/node-addon-api/test/callbackscope.js +49 -0
- package/vendor/node-addon-api/test/common/index.js +114 -0
- package/vendor/node-addon-api/test/common/test_helper.h +71 -0
- package/vendor/node-addon-api/test/dataview/dataview.cc +48 -0
- package/vendor/node-addon-api/test/dataview/dataview.js +35 -0
- package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +115 -0
- package/vendor/node-addon-api/test/dataview/dataview_read_write.js +90 -0
- package/vendor/node-addon-api/test/date.cc +44 -0
- package/vendor/node-addon-api/test/date.js +18 -0
- package/vendor/node-addon-api/test/env_cleanup.cc +88 -0
- package/vendor/node-addon-api/test/env_cleanup.js +56 -0
- package/vendor/node-addon-api/test/error.cc +287 -0
- package/vendor/node-addon-api/test/error.js +81 -0
- package/vendor/node-addon-api/test/error_handling_for_primitives.cc +13 -0
- package/vendor/node-addon-api/test/error_handling_for_primitives.js +29 -0
- package/vendor/node-addon-api/test/error_terminating_environment.js +95 -0
- package/vendor/node-addon-api/test/external.cc +81 -0
- package/vendor/node-addon-api/test/external.js +88 -0
- package/vendor/node-addon-api/test/function.cc +324 -0
- package/vendor/node-addon-api/test/function.js +133 -0
- package/vendor/node-addon-api/test/function_reference.cc +202 -0
- package/vendor/node-addon-api/test/function_reference.js +157 -0
- package/vendor/node-addon-api/test/globalObject/global_object.cc +61 -0
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +31 -0
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +61 -0
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +40 -0
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +57 -0
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +28 -0
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +48 -0
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +31 -0
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +58 -0
- package/vendor/node-addon-api/test/handlescope.cc +60 -0
- package/vendor/node-addon-api/test/handlescope.js +14 -0
- package/vendor/node-addon-api/test/index.js +159 -0
- package/vendor/node-addon-api/test/maybe/check.cc +23 -0
- package/vendor/node-addon-api/test/maybe/index.js +38 -0
- package/vendor/node-addon-api/test/memory_management.cc +17 -0
- package/vendor/node-addon-api/test/memory_management.js +9 -0
- package/vendor/node-addon-api/test/movable_callbacks.cc +23 -0
- package/vendor/node-addon-api/test/movable_callbacks.js +21 -0
- package/vendor/node-addon-api/test/name.cc +108 -0
- package/vendor/node-addon-api/test/name.js +59 -0
- package/vendor/node-addon-api/test/napi_child.js +14 -0
- package/vendor/node-addon-api/test/object/delete_property.cc +38 -0
- package/vendor/node-addon-api/test/object/delete_property.js +41 -0
- package/vendor/node-addon-api/test/object/finalizer.cc +29 -0
- package/vendor/node-addon-api/test/object/finalizer.js +28 -0
- package/vendor/node-addon-api/test/object/get_property.cc +34 -0
- package/vendor/node-addon-api/test/object/get_property.js +40 -0
- package/vendor/node-addon-api/test/object/has_own_property.cc +34 -0
- package/vendor/node-addon-api/test/object/has_own_property.js +34 -0
- package/vendor/node-addon-api/test/object/has_property.cc +38 -0
- package/vendor/node-addon-api/test/object/has_property.js +37 -0
- package/vendor/node-addon-api/test/object/object.cc +350 -0
- package/vendor/node-addon-api/test/object/object.js +217 -0
- package/vendor/node-addon-api/test/object/object_deprecated.cc +66 -0
- package/vendor/node-addon-api/test/object/object_deprecated.js +47 -0
- package/vendor/node-addon-api/test/object/object_freeze_seal.cc +25 -0
- package/vendor/node-addon-api/test/object/object_freeze_seal.js +61 -0
- package/vendor/node-addon-api/test/object/set_property.cc +45 -0
- package/vendor/node-addon-api/test/object/set_property.js +30 -0
- package/vendor/node-addon-api/test/object/subscript_operator.cc +58 -0
- package/vendor/node-addon-api/test/object/subscript_operator.js +17 -0
- package/vendor/node-addon-api/test/object_reference.cc +219 -0
- package/vendor/node-addon-api/test/object_reference.js +259 -0
- package/vendor/node-addon-api/test/objectwrap.cc +268 -0
- package/vendor/node-addon-api/test/objectwrap.js +284 -0
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +26 -0
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +18 -0
- package/vendor/node-addon-api/test/objectwrap_function.cc +45 -0
- package/vendor/node-addon-api/test/objectwrap_function.js +22 -0
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +30 -0
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +13 -0
- package/vendor/node-addon-api/test/objectwrap_removewrap.cc +45 -0
- package/vendor/node-addon-api/test/objectwrap_removewrap.js +40 -0
- package/vendor/node-addon-api/test/objectwrap_worker_thread.js +19 -0
- package/vendor/node-addon-api/test/promise.cc +29 -0
- package/vendor/node-addon-api/test/promise.js +18 -0
- package/vendor/node-addon-api/test/reference.cc +24 -0
- package/vendor/node-addon-api/test/reference.js +14 -0
- package/vendor/node-addon-api/test/run_script.cc +56 -0
- package/vendor/node-addon-api/test/run_script.js +45 -0
- package/vendor/node-addon-api/test/symbol.cc +79 -0
- package/vendor/node-addon-api/test/symbol.js +73 -0
- package/vendor/node-addon-api/test/testUtil.js +54 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +195 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +188 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +63 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +12 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +115 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +14 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +26 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +7 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +225 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +59 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +42 -0
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +53 -0
- package/vendor/node-addon-api/test/thunking_manual.cc +140 -0
- package/vendor/node-addon-api/test/thunking_manual.js +17 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +215 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +188 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +68 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +12 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +127 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +14 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +28 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +7 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +237 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +59 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +53 -0
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +53 -0
- package/vendor/node-addon-api/test/typedarray-bigint.js +58 -0
- package/vendor/node-addon-api/test/typedarray.cc +216 -0
- package/vendor/node-addon-api/test/typedarray.js +69 -0
- package/vendor/node-addon-api/test/version_management.cc +27 -0
- package/vendor/node-addon-api/test/version_management.js +31 -0
- package/vendor/node-addon-api/unit-test/README.md +28 -0
- package/vendor/node-addon-api/unit-test/binding-file-template.js +39 -0
- package/vendor/node-addon-api/unit-test/binding.gyp +72 -0
- package/vendor/node-addon-api/unit-test/exceptions.js +32 -0
- package/vendor/node-addon-api/unit-test/generate-binding-cc.js +61 -0
- package/vendor/node-addon-api/unit-test/injectTestParams.js +101 -0
- package/vendor/node-addon-api/unit-test/listOfTestModules.js +88 -0
- package/vendor/node-addon-api/unit-test/matchModules.js +65 -0
- package/vendor/node-addon-api/unit-test/setup.js +13 -0
- package/vendor/node-addon-api/unit-test/spawnTask.js +26 -0
- package/vendor/node-addon-api/unit-test/test.js +30 -0
- package/build/qemu/1.1.0-beta.1/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_linux_arm.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/1.1.0-beta.1/koffi_win32_x64.tar.gz +0 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# DataView
|
|
2
|
+
|
|
3
|
+
Class `Napi::DataView` inherits from class [`Napi::Object`][].
|
|
4
|
+
|
|
5
|
+
The `Napi::DataView` class corresponds to the
|
|
6
|
+
[JavaScript `DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)
|
|
7
|
+
class.
|
|
8
|
+
|
|
9
|
+
## Methods
|
|
10
|
+
|
|
11
|
+
### New
|
|
12
|
+
|
|
13
|
+
Allocates a new `Napi::DataView` instance with a given `Napi::ArrayBuffer`.
|
|
14
|
+
|
|
15
|
+
```cpp
|
|
16
|
+
static Napi::DataView Napi::DataView::New(napi_env env, Napi::ArrayBuffer arrayBuffer);
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- `[in] env`: The environment in which to create the `Napi::DataView` instance.
|
|
20
|
+
- `[in] arrayBuffer` : `Napi::ArrayBuffer` underlying the `Napi::DataView`.
|
|
21
|
+
|
|
22
|
+
Returns a new `Napi::DataView` instance.
|
|
23
|
+
|
|
24
|
+
### New
|
|
25
|
+
|
|
26
|
+
Allocates a new `Napi::DataView` instance with a given `Napi::ArrayBuffer`.
|
|
27
|
+
|
|
28
|
+
```cpp
|
|
29
|
+
static Napi::DataView Napi::DataView::New(napi_env env, Napi::ArrayBuffer arrayBuffer, size_t byteOffset);
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- `[in] env`: The environment in which to create the `Napi::DataView` instance.
|
|
33
|
+
- `[in] arrayBuffer` : `Napi::ArrayBuffer` underlying the `Napi::DataView`.
|
|
34
|
+
- `[in] byteOffset` : The byte offset within the `Napi::ArrayBuffer` from which to start projecting the `Napi::DataView`.
|
|
35
|
+
|
|
36
|
+
Returns a new `Napi::DataView` instance.
|
|
37
|
+
|
|
38
|
+
### New
|
|
39
|
+
|
|
40
|
+
Allocates a new `Napi::DataView` instance with a given `Napi::ArrayBuffer`.
|
|
41
|
+
|
|
42
|
+
```cpp
|
|
43
|
+
static Napi::DataView Napi::DataView::New(napi_env env, Napi::ArrayBuffer arrayBuffer, size_t byteOffset, size_t byteLength);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- `[in] env`: The environment in which to create the `Napi::DataView` instance.
|
|
47
|
+
- `[in] arrayBuffer` : `Napi::ArrayBuffer` underlying the `Napi::DataView`.
|
|
48
|
+
- `[in] byteOffset` : The byte offset within the `Napi::ArrayBuffer` from which to start projecting the `Napi::DataView`.
|
|
49
|
+
- `[in] byteLength` : Number of elements in the `Napi::DataView`.
|
|
50
|
+
|
|
51
|
+
Returns a new `Napi::DataView` instance.
|
|
52
|
+
|
|
53
|
+
### Constructor
|
|
54
|
+
|
|
55
|
+
Initializes an empty instance of the `Napi::DataView` class.
|
|
56
|
+
|
|
57
|
+
```cpp
|
|
58
|
+
Napi::DataView();
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Constructor
|
|
62
|
+
|
|
63
|
+
Initializes a wrapper instance of an existing `Napi::DataView` instance.
|
|
64
|
+
|
|
65
|
+
```cpp
|
|
66
|
+
Napi::DataView(napi_env env, napi_value value);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- `[in] env`: The environment in which to create the `Napi::DataView` instance.
|
|
70
|
+
- `[in] value`: The `Napi::DataView` reference to wrap.
|
|
71
|
+
|
|
72
|
+
### ArrayBuffer
|
|
73
|
+
|
|
74
|
+
```cpp
|
|
75
|
+
Napi::ArrayBuffer Napi::DataView::ArrayBuffer() const;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Returns the backing array buffer.
|
|
79
|
+
|
|
80
|
+
### ByteOffset
|
|
81
|
+
|
|
82
|
+
```cpp
|
|
83
|
+
size_t Napi::DataView::ByteOffset() const;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Returns the offset into the `Napi::DataView` where the array starts, in bytes.
|
|
87
|
+
|
|
88
|
+
### ByteLength
|
|
89
|
+
|
|
90
|
+
```cpp
|
|
91
|
+
size_t Napi::DataView::ByteLength() const;
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Returns the length of the array, in bytes.
|
|
95
|
+
|
|
96
|
+
### GetFloat32
|
|
97
|
+
|
|
98
|
+
```cpp
|
|
99
|
+
float Napi::DataView::GetFloat32(size_t byteOffset) const;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
103
|
+
|
|
104
|
+
Returns a signed 32-bit float (float) at the specified byte offset from the start of the `Napi::DataView`.
|
|
105
|
+
|
|
106
|
+
### GetFloat64
|
|
107
|
+
|
|
108
|
+
```cpp
|
|
109
|
+
double Napi::DataView::GetFloat64(size_t byteOffset) const;
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
113
|
+
|
|
114
|
+
Returns a signed 64-bit float (double) at the specified byte offset from the start of the `Napi::DataView`.
|
|
115
|
+
|
|
116
|
+
### GetInt8
|
|
117
|
+
|
|
118
|
+
```cpp
|
|
119
|
+
int8_t Napi::DataView::GetInt8(size_t byteOffset) const;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
123
|
+
|
|
124
|
+
Returns a signed 8-bit integer (byte) at the specified byte offset from the start of the `Napi::DataView`.
|
|
125
|
+
|
|
126
|
+
### GetInt16
|
|
127
|
+
|
|
128
|
+
```cpp
|
|
129
|
+
int16_t Napi::DataView::GetInt16(size_t byteOffset) const;
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
133
|
+
|
|
134
|
+
Returns a signed 16-bit integer (short) at the specified byte offset from the start of the `Napi::DataView`.
|
|
135
|
+
|
|
136
|
+
### GetInt32
|
|
137
|
+
|
|
138
|
+
```cpp
|
|
139
|
+
int32_t Napi::DataView::GetInt32(size_t byteOffset) const;
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
143
|
+
|
|
144
|
+
Returns a signed 32-bit integer (long) at the specified byte offset from the start of the `Napi::DataView`.
|
|
145
|
+
|
|
146
|
+
### GetUint8
|
|
147
|
+
|
|
148
|
+
```cpp
|
|
149
|
+
uint8_t Napi::DataView::GetUint8(size_t byteOffset) const;
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
153
|
+
|
|
154
|
+
Returns a unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the `Napi::DataView`.
|
|
155
|
+
|
|
156
|
+
### GetUint16
|
|
157
|
+
|
|
158
|
+
```cpp
|
|
159
|
+
uint16_t Napi::DataView::GetUint16(size_t byteOffset) const;
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
163
|
+
|
|
164
|
+
Returns a unsigned 16-bit integer (unsigned short) at the specified byte offset from the start of the `Napi::DataView`.
|
|
165
|
+
|
|
166
|
+
### GetUint32
|
|
167
|
+
|
|
168
|
+
```cpp
|
|
169
|
+
uint32_t Napi::DataView::GetUint32(size_t byteOffset) const;
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
173
|
+
|
|
174
|
+
Returns a unsigned 32-bit integer (unsigned long) at the specified byte offset from the start of the `Napi::DataView`.
|
|
175
|
+
|
|
176
|
+
### SetFloat32
|
|
177
|
+
|
|
178
|
+
```cpp
|
|
179
|
+
void Napi::DataView::SetFloat32(size_t byteOffset, float value) const;
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
183
|
+
- `[in] value`: The value to set.
|
|
184
|
+
|
|
185
|
+
### SetFloat64
|
|
186
|
+
|
|
187
|
+
```cpp
|
|
188
|
+
void Napi::DataView::SetFloat64(size_t byteOffset, double value) const;
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
192
|
+
- `[in] value`: The value to set.
|
|
193
|
+
|
|
194
|
+
### SetInt8
|
|
195
|
+
|
|
196
|
+
```cpp
|
|
197
|
+
void Napi::DataView::SetInt8(size_t byteOffset, int8_t value) const;
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
201
|
+
- `[in] value`: The value to set.
|
|
202
|
+
|
|
203
|
+
### SetInt16
|
|
204
|
+
|
|
205
|
+
```cpp
|
|
206
|
+
void Napi::DataView::SetInt16(size_t byteOffset, int16_t value) const;
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
210
|
+
- `[in] value`: The value to set.
|
|
211
|
+
|
|
212
|
+
### SetInt32
|
|
213
|
+
|
|
214
|
+
```cpp
|
|
215
|
+
void Napi::DataView::SetInt32(size_t byteOffset, int32_t value) const;
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
219
|
+
- `[in] value`: The value to set.
|
|
220
|
+
|
|
221
|
+
### SetUint8
|
|
222
|
+
|
|
223
|
+
```cpp
|
|
224
|
+
void Napi::DataView::SetUint8(size_t byteOffset, uint8_t value) const;
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
228
|
+
- `[in] value`: The value to set.
|
|
229
|
+
|
|
230
|
+
### SetUint16
|
|
231
|
+
|
|
232
|
+
```cpp
|
|
233
|
+
void Napi::DataView::SetUint16(size_t byteOffset, uint16_t value) const;
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
237
|
+
- `[in] value`: The value to set.
|
|
238
|
+
|
|
239
|
+
### SetUint32
|
|
240
|
+
|
|
241
|
+
```cpp
|
|
242
|
+
void Napi::DataView::SetUint32(size_t byteOffset, uint32_t value) const;
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
- `[in] byteOffset`: The offset, in byte, from the start of the view where to read the data.
|
|
246
|
+
- `[in] value`: The value to set.
|
|
247
|
+
|
|
248
|
+
[`Napi::Object`]: ./object.md
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Date
|
|
2
|
+
|
|
3
|
+
`Napi::Date` class is a representation of the JavaScript `Date` object. The
|
|
4
|
+
`Napi::Date` class inherits its behavior from the `Napi::Value` class
|
|
5
|
+
(for more info see [`Napi::Value`](value.md)).
|
|
6
|
+
|
|
7
|
+
## Methods
|
|
8
|
+
|
|
9
|
+
### Constructor
|
|
10
|
+
|
|
11
|
+
Creates a new _empty_ instance of a `Napi::Date` object.
|
|
12
|
+
|
|
13
|
+
```cpp
|
|
14
|
+
Napi::Date::Date();
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Creates a new _non-empty_ instance of a `Napi::Date` object.
|
|
18
|
+
|
|
19
|
+
```cpp
|
|
20
|
+
Napi::Date::Date(napi_env env, napi_value value);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
- `[in] env`: The environment in which to construct the `Napi::Date` object.
|
|
24
|
+
- `[in] value`: The `napi_value` which is a handle for a JavaScript `Date`.
|
|
25
|
+
|
|
26
|
+
### New
|
|
27
|
+
|
|
28
|
+
Creates a new instance of a `Napi::Date` object.
|
|
29
|
+
|
|
30
|
+
```cpp
|
|
31
|
+
static Napi::Date Napi::Date::New(Napi::Env env, double value);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- `[in] env`: The environment in which to construct the `Napi::Date` object.
|
|
35
|
+
- `[in] value`: The time value the JavaScript `Date` will contain represented
|
|
36
|
+
as the number of milliseconds since 1 January 1970 00:00:00 UTC.
|
|
37
|
+
|
|
38
|
+
Returns a new instance of `Napi::Date` object.
|
|
39
|
+
|
|
40
|
+
### ValueOf
|
|
41
|
+
|
|
42
|
+
```cpp
|
|
43
|
+
double Napi::Date::ValueOf() const;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Returns the time value as `double` primitive represented as the number of
|
|
47
|
+
milliseconds since 1 January 1970 00:00:00 UTC.
|
|
48
|
+
|
|
49
|
+
## Operators
|
|
50
|
+
|
|
51
|
+
### operator double
|
|
52
|
+
|
|
53
|
+
Converts a `Napi::Date` value to a `double` primitive.
|
|
54
|
+
|
|
55
|
+
```cpp
|
|
56
|
+
Napi::Date::operator double() const;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Example
|
|
60
|
+
|
|
61
|
+
The following shows an example of casting a `Napi::Date` value to a `double`
|
|
62
|
+
primitive.
|
|
63
|
+
|
|
64
|
+
```cpp
|
|
65
|
+
double operatorVal = Napi::Date::New(Env(), 0); // Napi::Date to double
|
|
66
|
+
// or
|
|
67
|
+
auto instanceVal = info[0].As<Napi::Date>().ValueOf();
|
|
68
|
+
```
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Env
|
|
2
|
+
|
|
3
|
+
The opaque data structure containing the environment in which the request is being run.
|
|
4
|
+
|
|
5
|
+
The Env object is usually created and passed by the Node.js runtime or node-addon-api infrastructure.
|
|
6
|
+
|
|
7
|
+
## Methods
|
|
8
|
+
|
|
9
|
+
### Constructor
|
|
10
|
+
|
|
11
|
+
```cpp
|
|
12
|
+
Napi::Env::Env(napi_env env);
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- `[in] env`: The `napi_env` environment from which to construct the `Napi::Env` object.
|
|
16
|
+
|
|
17
|
+
### napi_env
|
|
18
|
+
|
|
19
|
+
```cpp
|
|
20
|
+
operator napi_env() const;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Returns the `napi_env` opaque data structure representing the environment.
|
|
24
|
+
|
|
25
|
+
### Global
|
|
26
|
+
|
|
27
|
+
```cpp
|
|
28
|
+
Napi::Object Napi::Env::Global() const;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Returns the `Napi::Object` representing the environment's JavaScript Global Object.
|
|
32
|
+
|
|
33
|
+
### Undefined
|
|
34
|
+
|
|
35
|
+
```cpp
|
|
36
|
+
Napi::Value Napi::Env::Undefined() const;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Returns the `Napi::Value` representing the environment's JavaScript Undefined Object.
|
|
40
|
+
|
|
41
|
+
### Null
|
|
42
|
+
|
|
43
|
+
```cpp
|
|
44
|
+
Napi::Value Napi::Env::Null() const;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Returns the `Napi::Value` representing the environment's JavaScript Null Object.
|
|
48
|
+
|
|
49
|
+
### IsExceptionPending
|
|
50
|
+
|
|
51
|
+
```cpp
|
|
52
|
+
bool Napi::Env::IsExceptionPending() const;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Returns a `bool` indicating if an exception is pending in the environment.
|
|
56
|
+
|
|
57
|
+
### GetAndClearPendingException
|
|
58
|
+
|
|
59
|
+
```cpp
|
|
60
|
+
Napi::Error Napi::Env::GetAndClearPendingException() const;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Returns an `Napi::Error` object representing the environment's pending exception, if any.
|
|
64
|
+
|
|
65
|
+
### RunScript
|
|
66
|
+
|
|
67
|
+
```cpp
|
|
68
|
+
Napi::Value Napi::Env::RunScript(____ script) const;
|
|
69
|
+
```
|
|
70
|
+
- `[in] script`: A string containing JavaScript code to execute.
|
|
71
|
+
|
|
72
|
+
Runs JavaScript code contained in a string and returns its result.
|
|
73
|
+
|
|
74
|
+
The `script` can be any of the following types:
|
|
75
|
+
- [`Napi::String`](string.md)
|
|
76
|
+
- `const char *`
|
|
77
|
+
- `const std::string &`
|
|
78
|
+
|
|
79
|
+
### GetInstanceData
|
|
80
|
+
```cpp
|
|
81
|
+
template <typename T> T* GetInstanceData() const;
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Returns the instance data that was previously associated with the environment,
|
|
85
|
+
or `nullptr` if none was associated.
|
|
86
|
+
|
|
87
|
+
### SetInstanceData
|
|
88
|
+
|
|
89
|
+
```cpp
|
|
90
|
+
template <typename T> using Finalizer = void (*)(Env, T*);
|
|
91
|
+
template <typename T, Finalizer<T> fini = Env::DefaultFini<T>>
|
|
92
|
+
void SetInstanceData(T* data) const;
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
- `[template] fini`: A function to call when the instance data is to be deleted.
|
|
96
|
+
Accepts a function of the form `void CleanupData(Napi::Env env, T* data)`. If
|
|
97
|
+
not given, the default finalizer will be used, which simply uses the `delete`
|
|
98
|
+
operator to destroy `T*` when the addon instance is unloaded.
|
|
99
|
+
- `[in] data`: A pointer to data that will be associated with the instance of
|
|
100
|
+
the addon for the duration of its lifecycle.
|
|
101
|
+
|
|
102
|
+
Associates a data item stored at `T* data` with the current instance of the
|
|
103
|
+
addon. The item will be passed to the function `fini` which gets called when an
|
|
104
|
+
instance of the addon is unloaded.
|
|
105
|
+
|
|
106
|
+
### SetInstanceData
|
|
107
|
+
|
|
108
|
+
```cpp
|
|
109
|
+
template <typename DataType, typename HintType>
|
|
110
|
+
using FinalizerWithHint = void (*)(Env, DataType*, HintType*);
|
|
111
|
+
template <typename DataType,
|
|
112
|
+
typename HintType,
|
|
113
|
+
FinalizerWithHint<DataType, HintType> fini =
|
|
114
|
+
Env::DefaultFiniWithHint<DataType, HintType>>
|
|
115
|
+
void SetInstanceData(DataType* data, HintType* hint) const;
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- `[template] fini`: A function to call when the instance data is to be deleted.
|
|
119
|
+
Accepts a function of the form
|
|
120
|
+
`void CleanupData(Napi::Env env, DataType* data, HintType* hint)`. If not given,
|
|
121
|
+
the default finalizer will be used, which simply uses the `delete` operator to
|
|
122
|
+
destroy `T*` when the addon instance is unloaded.
|
|
123
|
+
- `[in] data`: A pointer to data that will be associated with the instance of
|
|
124
|
+
the addon for the duration of its lifecycle.
|
|
125
|
+
- `[in] hint`: A pointer to data that will be associated with the instance of
|
|
126
|
+
the addon for the duration of its lifecycle and will be passed as a hint to
|
|
127
|
+
`fini` when the addon instance is unloaded.
|
|
128
|
+
|
|
129
|
+
Associates a data item stored at `T* data` with the current instance of the
|
|
130
|
+
addon. The item will be passed to the function `fini` which gets called when an
|
|
131
|
+
instance of the addon is unloaded. This overload accepts an additional hint to
|
|
132
|
+
be passed to `fini`.
|
|
133
|
+
|
|
134
|
+
### AddCleanupHook
|
|
135
|
+
|
|
136
|
+
```cpp
|
|
137
|
+
template <typename Hook>
|
|
138
|
+
CleanupHook<Hook> AddCleanupHook(Hook hook);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
- `[in] hook`: A function to call when the environment exists. Accepts a
|
|
142
|
+
function of the form `void ()`.
|
|
143
|
+
|
|
144
|
+
Registers `hook` as a function to be run once the current Node.js environment
|
|
145
|
+
exits. Unlike the underlying C-based Node-API, providing the same `hook`
|
|
146
|
+
multiple times **is** allowed. The hooks will be called in reverse order, i.e.
|
|
147
|
+
the most recently added one will be called first.
|
|
148
|
+
|
|
149
|
+
Returns an `Env::CleanupHook` object, which can be used to remove the hook via
|
|
150
|
+
its `Remove()` method.
|
|
151
|
+
|
|
152
|
+
### AddCleanupHook
|
|
153
|
+
|
|
154
|
+
```cpp
|
|
155
|
+
template <typename Hook, typename Arg>
|
|
156
|
+
CleanupHook<Hook, Arg> AddCleanupHook(Hook hook, Arg* arg);
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
- `[in] hook`: A function to call when the environment exists. Accepts a
|
|
160
|
+
function of the form `void (Arg* arg)`.
|
|
161
|
+
- `[in] arg`: A pointer to data that will be passed as the argument to `hook`.
|
|
162
|
+
|
|
163
|
+
Registers `hook` as a function to be run with the `arg` parameter once the
|
|
164
|
+
current Node.js environment exits. Unlike the underlying C-based Node-API,
|
|
165
|
+
providing the same `hook` and `arg` pair multiple times **is** allowed. The
|
|
166
|
+
hooks will be called in reverse order, i.e. the most recently added one will be
|
|
167
|
+
called first.
|
|
168
|
+
|
|
169
|
+
Returns an `Env::CleanupHook` object, which can be used to remove the hook via
|
|
170
|
+
its `Remove()` method.
|
|
171
|
+
|
|
172
|
+
# Env::CleanupHook
|
|
173
|
+
|
|
174
|
+
The `Env::CleanupHook` object allows removal of the hook added via
|
|
175
|
+
`Env::AddCleanupHook()`
|
|
176
|
+
|
|
177
|
+
## Methods
|
|
178
|
+
|
|
179
|
+
### IsEmpty
|
|
180
|
+
|
|
181
|
+
```cpp
|
|
182
|
+
bool IsEmpty();
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Returns `true` if the cleanup hook was **not** successfully registered.
|
|
186
|
+
|
|
187
|
+
### Remove
|
|
188
|
+
|
|
189
|
+
```cpp
|
|
190
|
+
bool Remove(Env env);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Unregisters the hook from running once the current Node.js environment exits.
|
|
194
|
+
|
|
195
|
+
Returns `true` if the hook was successfully removed from the Node.js
|
|
196
|
+
environment.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Error
|
|
2
|
+
|
|
3
|
+
Class `Napi::Error` inherits from class [`Napi::ObjectReference`][] and class [`std::exception`][].
|
|
4
|
+
|
|
5
|
+
The `Napi::Error` class is a representation of the JavaScript `Error` object that is thrown
|
|
6
|
+
when runtime errors occur. The Error object can also be used as a base object for
|
|
7
|
+
user-defined exceptions.
|
|
8
|
+
|
|
9
|
+
The `Napi::Error` class is a persistent reference to a JavaScript error object thus
|
|
10
|
+
inherits its behavior from the `Napi::ObjectReference` class (for more info see: [`Napi::ObjectReference`](object_reference.md)).
|
|
11
|
+
|
|
12
|
+
If C++ exceptions are enabled (for more info see: [Setup](setup.md)), then the
|
|
13
|
+
`Napi::Error` class extends `std::exception` and enables integrated
|
|
14
|
+
error-handling for C++ exceptions and JavaScript exceptions.
|
|
15
|
+
|
|
16
|
+
For more details about error handling refer to the section titled [Error handling](error_handling.md).
|
|
17
|
+
|
|
18
|
+
## Methods
|
|
19
|
+
|
|
20
|
+
### New
|
|
21
|
+
|
|
22
|
+
Creates empty instance of an `Napi::Error` object for the specified environment.
|
|
23
|
+
|
|
24
|
+
```cpp
|
|
25
|
+
Napi::Error::New(Napi::Env env);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
29
|
+
|
|
30
|
+
Returns an instance of `Napi::Error` object.
|
|
31
|
+
|
|
32
|
+
### New
|
|
33
|
+
|
|
34
|
+
Creates instance of an `Napi::Error` object.
|
|
35
|
+
|
|
36
|
+
```cpp
|
|
37
|
+
Napi::Error::New(Napi::Env env, const char* message);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
41
|
+
- `[in] message`: Null-terminated string to be used as the message for the `Napi::Error`.
|
|
42
|
+
|
|
43
|
+
Returns instance of an `Napi::Error` object.
|
|
44
|
+
|
|
45
|
+
### New
|
|
46
|
+
|
|
47
|
+
Creates instance of an `Napi::Error` object
|
|
48
|
+
|
|
49
|
+
```cpp
|
|
50
|
+
Napi::Error::New(Napi::Env env, const std::string& message);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- `[in] env`: The environment in which to construct the `Napi::Error` object.
|
|
54
|
+
- `[in] message`: Reference string to be used as the message for the `Napi::Error`.
|
|
55
|
+
|
|
56
|
+
Returns instance of an `Napi::Error` object.
|
|
57
|
+
|
|
58
|
+
### Fatal
|
|
59
|
+
|
|
60
|
+
In case of an unrecoverable error in a native module, a fatal error can be thrown
|
|
61
|
+
to immediately terminate the process.
|
|
62
|
+
|
|
63
|
+
```cpp
|
|
64
|
+
static NAPI_NO_RETURN void Napi::Error::Fatal(const char* location, const char* message);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The function call does not return, the process will be terminated.
|
|
68
|
+
|
|
69
|
+
### Constructor
|
|
70
|
+
|
|
71
|
+
Creates empty instance of an `Napi::Error`.
|
|
72
|
+
|
|
73
|
+
```cpp
|
|
74
|
+
Napi::Error::Error();
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Returns an instance of `Napi::Error` object.
|
|
78
|
+
|
|
79
|
+
### Constructor
|
|
80
|
+
|
|
81
|
+
Initializes an `Napi::Error` instance from an existing JavaScript error object.
|
|
82
|
+
|
|
83
|
+
```cpp
|
|
84
|
+
Napi::Error::Error(napi_env env, napi_value value);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- `[in] env`: The environment in which to construct the error object.
|
|
88
|
+
- `[in] value`: The `Napi::Error` reference to wrap.
|
|
89
|
+
|
|
90
|
+
Returns instance of an `Napi::Error` object.
|
|
91
|
+
|
|
92
|
+
### Message
|
|
93
|
+
|
|
94
|
+
```cpp
|
|
95
|
+
std::string& Napi::Error::Message() const NAPI_NOEXCEPT;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Returns the reference to the string that represent the message of the error.
|
|
99
|
+
|
|
100
|
+
### ThrowAsJavaScriptException
|
|
101
|
+
|
|
102
|
+
Throw the error as JavaScript exception.
|
|
103
|
+
|
|
104
|
+
```cpp
|
|
105
|
+
void Napi::Error::ThrowAsJavaScriptException() const;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Throws the error as a JavaScript exception.
|
|
109
|
+
|
|
110
|
+
### what
|
|
111
|
+
|
|
112
|
+
```cpp
|
|
113
|
+
const char* Napi::Error::what() const NAPI_NOEXCEPT override;
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Returns a pointer to a null-terminated string that is used to identify the
|
|
117
|
+
exception. This method can be used only if the exception mechanism is enabled.
|
|
118
|
+
|
|
119
|
+
[`Napi::ObjectReference`]: ./object_reference.md
|
|
120
|
+
[`std::exception`]: https://cplusplus.com/reference/exception/exception/
|