koffi 2.16.0-beta.2 → 2.16.1
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/CHANGELOG.md +66 -0
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_loong64/koffi.node +0 -0
- package/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_arm64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.exp +0 -0
- package/build/koffi/win32_arm64/koffi.lib +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.exp +0 -0
- package/build/koffi/win32_ia32/koffi.lib +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.exp +0 -0
- package/build/koffi/win32_x64/koffi.lib +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/index.d.ts +9 -11
- package/index.js +6 -9
- package/indirect.js +6 -9
- package/lib/native/base/base.cc +1 -6
- package/package.json +3 -3
- package/src/cnoke/assets/FindCNoke.cmake +27 -16
- package/src/cnoke/assets/toolchains.json +126 -0
- package/src/cnoke/cnoke.js +27 -33
- package/src/cnoke/src/builder.js +124 -63
- package/src/cnoke/src/tools.js +1 -5
- package/src/koffi/CMakeLists.txt +32 -21
- package/src/koffi/src/{abi/arm32.cc → abi_arm32.cc} +235 -246
- package/src/koffi/src/{abi/arm32_asm.S → abi_arm32_asm.S} +19 -15
- package/src/koffi/src/{abi/arm64.cc → abi_arm64.cc} +253 -300
- package/src/koffi/src/{abi/arm64_asm.S → abi_arm64_asm.S} +16 -10
- package/src/koffi/src/{abi/arm64_asm.asm → abi_arm64_asm.asm} +17 -10
- package/src/koffi/src/{abi/loong64_asm.S → abi_loong64_asm.S} +16 -10
- package/src/koffi/src/{abi/riscv64.cc → abi_riscv64.cc} +233 -244
- package/src/koffi/src/{abi/riscv64_asm.S → abi_riscv64_asm.S} +16 -10
- package/src/koffi/src/{abi/x64_sysv.cc → abi_x64_sysv.cc} +208 -220
- package/src/koffi/src/{abi/x64_sysv_asm.S → abi_x64_sysv_asm.S} +17 -10
- package/src/koffi/src/{abi/x64_win.cc → abi_x64_win.cc} +175 -230
- package/src/koffi/src/{abi/x64_win_asm.S → abi_x64_win_asm.S} +49 -27
- package/src/koffi/src/{abi/x64_win_asm.asm → abi_x64_win_asm.asm} +54 -27
- package/src/koffi/src/{abi/x86.cc → abi_x86.cc} +187 -252
- package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +38 -21
- package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +33 -16
- package/src/koffi/src/call.cc +475 -290
- package/src/koffi/src/call.hh +15 -18
- package/src/koffi/src/ffi.cc +195 -184
- package/src/koffi/src/ffi.hh +60 -16
- package/src/koffi/src/init.js +1 -0
- package/src/koffi/src/util.cc +113 -159
- package/src/koffi/src/util.hh +23 -74
- package/src/koffi/src/win32.cc +13 -0
- package/src/koffi/src/win32.hh +7 -0
- package/src/koffi/tools/write_trampolines.js +77 -0
- package/doc/README.md +0 -27
- package/doc/assets.ini +0 -24
- package/doc/build.sh +0 -9
- package/doc/develop.sh +0 -15
- package/doc/pages/404.md +0 -17
- package/doc/pages.ini +0 -86
- package/doc/static/highlight.js +0 -8
- package/doc/static/koffi.css +0 -11
- package/doc/static/koffi.png +0 -0
- package/doc/static/logo.webp +0 -0
- package/doc/static/perf_linux.png +0 -0
- package/doc/static/perf_windows.png +0 -0
- package/doc/static/print.css +0 -10
- package/doc/templates/code.html +0 -48
- package/doc/templates/page.html +0 -47
- package/src/koffi/cmake/raylib.cmake +0 -85
- package/src/koffi/cmake/sqlite3.cmake +0 -9
- package/src/koffi/examples/electron-builder/README.md +0 -11
- package/src/koffi/examples/electron-builder/package.json +0 -21
- package/src/koffi/examples/electron-builder/src/app.js +0 -20
- package/src/koffi/examples/electron-builder/src/index.html +0 -143
- package/src/koffi/examples/electron-builder/src/preload.js +0 -5
- package/src/koffi/examples/electron-forge/README.md +0 -25
- package/src/koffi/examples/electron-forge/forge.config.js +0 -63
- package/src/koffi/examples/electron-forge/package.json +0 -39
- package/src/koffi/examples/electron-forge/src/index.css +0 -7
- package/src/koffi/examples/electron-forge/src/index.html +0 -143
- package/src/koffi/examples/electron-forge/src/main.js +0 -52
- package/src/koffi/examples/electron-forge/src/preload.js +0 -5
- package/src/koffi/examples/electron-forge/src/renderer.js +0 -31
- package/src/koffi/examples/electron-forge/webpack.main.config.js +0 -11
- package/src/koffi/examples/electron-forge/webpack.renderer.config.js +0 -13
- package/src/koffi/examples/electron-forge/webpack.rules.js +0 -35
- package/src/koffi/examples/node-esbuild/README.md +0 -19
- package/src/koffi/examples/node-esbuild/index.js +0 -2
- package/src/koffi/examples/node-esbuild/package.json +0 -16
- package/src/koffi/examples/nwjs/README.md +0 -20
- package/src/koffi/examples/nwjs/package.json +0 -11
- package/src/koffi/examples/nwjs/src/index.html +0 -145
- package/src/koffi/examples/nwjs/src/package.json +0 -10
- package/src/koffi/examples/yao-pkg/README.md +0 -17
- package/src/koffi/examples/yao-pkg/index.js +0 -2
- package/src/koffi/examples/yao-pkg/package.json +0 -22
- package/src/koffi/src/primitives.inc +0 -39
- package/src/koffi/src/trampolines/armasm.inc +0 -32771
- package/src/koffi/src/trampolines/gnu.inc +0 -24577
- package/src/koffi/src/trampolines/masm32.inc +0 -32769
- package/src/koffi/src/trampolines/masm64.inc +0 -32769
- package/src/koffi/src/trampolines/prototypes.inc +0 -16388
- package/vendor/node-addon-api/CHANGELOG.md +0 -1272
- package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
- package/vendor/node-addon-api/CONTRIBUTING.md +0 -203
- package/vendor/node-addon-api/appveyor.yml +0 -37
- package/vendor/node-addon-api/benchmark/README.md +0 -47
- package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
- package/vendor/node-addon-api/benchmark/function_args.cc +0 -250
- package/vendor/node-addon-api/benchmark/function_args.js +0 -60
- package/vendor/node-addon-api/benchmark/index.js +0 -34
- package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -84
- package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -38
- package/vendor/node-addon-api/common.gypi +0 -21
- package/vendor/node-addon-api/doc/README.md +0 -145
- package/vendor/node-addon-api/doc/addon.md +0 -163
- package/vendor/node-addon-api/doc/array.md +0 -81
- package/vendor/node-addon-api/doc/array_buffer.md +0 -165
- package/vendor/node-addon-api/doc/async_context.md +0 -86
- package/vendor/node-addon-api/doc/async_operations.md +0 -31
- package/vendor/node-addon-api/doc/async_worker.md +0 -428
- package/vendor/node-addon-api/doc/async_worker_variants.md +0 -578
- package/vendor/node-addon-api/doc/basic_env.md +0 -200
- package/vendor/node-addon-api/doc/bigint.md +0 -97
- package/vendor/node-addon-api/doc/boolean.md +0 -68
- package/vendor/node-addon-api/doc/buffer.md +0 -245
- package/vendor/node-addon-api/doc/callback_scope.md +0 -54
- package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
- package/vendor/node-addon-api/doc/checker-tool.md +0 -32
- package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
- package/vendor/node-addon-api/doc/cmake-js.md +0 -87
- package/vendor/node-addon-api/doc/contributing/creating_a_release.md +0 -95
- package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
- package/vendor/node-addon-api/doc/dataview.md +0 -248
- package/vendor/node-addon-api/doc/date.md +0 -68
- package/vendor/node-addon-api/doc/env.md +0 -87
- package/vendor/node-addon-api/doc/error.md +0 -120
- package/vendor/node-addon-api/doc/error_handling.md +0 -266
- package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
- package/vendor/node-addon-api/doc/external.md +0 -79
- package/vendor/node-addon-api/doc/external_buffer.md +0 -18
- package/vendor/node-addon-api/doc/finalization.md +0 -153
- package/vendor/node-addon-api/doc/function.md +0 -402
- package/vendor/node-addon-api/doc/function_reference.md +0 -238
- package/vendor/node-addon-api/doc/generator.md +0 -13
- package/vendor/node-addon-api/doc/handle_scope.md +0 -77
- package/vendor/node-addon-api/doc/hierarchy.md +0 -95
- package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
- package/vendor/node-addon-api/doc/maybe.md +0 -76
- package/vendor/node-addon-api/doc/memory_management.md +0 -27
- package/vendor/node-addon-api/doc/name.md +0 -29
- package/vendor/node-addon-api/doc/node-gyp.md +0 -82
- package/vendor/node-addon-api/doc/number.md +0 -163
- package/vendor/node-addon-api/doc/object.md +0 -411
- package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
- package/vendor/node-addon-api/doc/object_reference.md +0 -117
- package/vendor/node-addon-api/doc/object_wrap.md +0 -604
- package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
- package/vendor/node-addon-api/doc/promises.md +0 -130
- package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
- package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
- package/vendor/node-addon-api/doc/range_error.md +0 -59
- package/vendor/node-addon-api/doc/reference.md +0 -113
- package/vendor/node-addon-api/doc/setup.md +0 -115
- package/vendor/node-addon-api/doc/string.md +0 -93
- package/vendor/node-addon-api/doc/symbol.md +0 -61
- package/vendor/node-addon-api/doc/syntax_error.md +0 -66
- package/vendor/node-addon-api/doc/threadsafe.md +0 -121
- package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
- package/vendor/node-addon-api/doc/type_error.md +0 -59
- package/vendor/node-addon-api/doc/type_taggable.md +0 -40
- package/vendor/node-addon-api/doc/typed_array.md +0 -78
- package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
- package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
- package/vendor/node-addon-api/doc/value.md +0 -368
- package/vendor/node-addon-api/doc/version_management.md +0 -43
- package/vendor/node-addon-api/eslint.config.js +0 -5
- package/vendor/node-addon-api/except.gypi +0 -25
- package/vendor/node-addon-api/index.js +0 -14
- package/vendor/node-addon-api/node_addon_api.gyp +0 -42
- package/vendor/node-addon-api/node_api.gyp +0 -9
- package/vendor/node-addon-api/noexcept.gypi +0 -26
- package/vendor/node-addon-api/nothing.c +0 -0
- package/vendor/node-addon-api/package-support.json +0 -21
- package/vendor/node-addon-api/package.json +0 -480
- package/vendor/node-addon-api/release-please-config.json +0 -15
- package/vendor/node-addon-api/test/README.md +0 -91
- package/vendor/node-addon-api/test/addon.cc +0 -44
- package/vendor/node-addon-api/test/addon.js +0 -7
- package/vendor/node-addon-api/test/addon_build/index.js +0 -49
- package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -18
- package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -63
- package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
- package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
- package/vendor/node-addon-api/test/addon_data.cc +0 -98
- package/vendor/node-addon-api/test/addon_data.js +0 -24
- package/vendor/node-addon-api/test/array_buffer.cc +0 -243
- package/vendor/node-addon-api/test/array_buffer.js +0 -70
- package/vendor/node-addon-api/test/async_context.cc +0 -36
- package/vendor/node-addon-api/test/async_context.js +0 -122
- package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -248
- package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -180
- package/vendor/node-addon-api/test/async_progress_worker.cc +0 -357
- package/vendor/node-addon-api/test/async_progress_worker.js +0 -200
- package/vendor/node-addon-api/test/async_worker.cc +0 -341
- package/vendor/node-addon-api/test/async_worker.js +0 -264
- package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -19
- package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
- package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
- package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
- package/vendor/node-addon-api/test/basic_types/array.js +0 -34
- package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -40
- package/vendor/node-addon-api/test/basic_types/boolean.js +0 -34
- package/vendor/node-addon-api/test/basic_types/number.cc +0 -105
- package/vendor/node-addon-api/test/basic_types/number.js +0 -115
- package/vendor/node-addon-api/test/basic_types/value.cc +0 -177
- package/vendor/node-addon-api/test/basic_types/value.js +0 -173
- package/vendor/node-addon-api/test/bigint.cc +0 -91
- package/vendor/node-addon-api/test/bigint.js +0 -53
- package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
- package/vendor/node-addon-api/test/binding.cc +0 -200
- package/vendor/node-addon-api/test/binding.gyp +0 -160
- package/vendor/node-addon-api/test/buffer.cc +0 -185
- package/vendor/node-addon-api/test/buffer.h +0 -26
- package/vendor/node-addon-api/test/buffer.js +0 -150
- package/vendor/node-addon-api/test/buffer_new_or_copy-inl.h +0 -68
- package/vendor/node-addon-api/test/buffer_no_external.cc +0 -24
- package/vendor/node-addon-api/test/callbackInfo.cc +0 -27
- package/vendor/node-addon-api/test/callbackInfo.js +0 -9
- package/vendor/node-addon-api/test/callbackscope.cc +0 -39
- package/vendor/node-addon-api/test/callbackscope.js +0 -49
- package/vendor/node-addon-api/test/child_processes/addon.js +0 -11
- package/vendor/node-addon-api/test/child_processes/addon_data.js +0 -24
- package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +0 -22
- package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +0 -33
- package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +0 -19
- package/vendor/node-addon-api/test/common/index.js +0 -246
- package/vendor/node-addon-api/test/common/test_helper.h +0 -71
- package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
- package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
- package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
- package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -92
- package/vendor/node-addon-api/test/date.cc +0 -45
- package/vendor/node-addon-api/test/date.js +0 -18
- package/vendor/node-addon-api/test/env_cleanup.cc +0 -100
- package/vendor/node-addon-api/test/env_cleanup.js +0 -55
- package/vendor/node-addon-api/test/env_misc.cc +0 -25
- package/vendor/node-addon-api/test/env_misc.js +0 -12
- package/vendor/node-addon-api/test/error.cc +0 -436
- package/vendor/node-addon-api/test/error.js +0 -111
- package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
- package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
- package/vendor/node-addon-api/test/error_terminating_environment.js +0 -99
- package/vendor/node-addon-api/test/except_all.cc +0 -22
- package/vendor/node-addon-api/test/except_all.js +0 -14
- package/vendor/node-addon-api/test/exports.js +0 -19
- package/vendor/node-addon-api/test/external.cc +0 -85
- package/vendor/node-addon-api/test/external.js +0 -85
- package/vendor/node-addon-api/test/finalizer_order.cc +0 -152
- package/vendor/node-addon-api/test/finalizer_order.js +0 -98
- package/vendor/node-addon-api/test/function.cc +0 -338
- package/vendor/node-addon-api/test/function.js +0 -137
- package/vendor/node-addon-api/test/function_reference.cc +0 -204
- package/vendor/node-addon-api/test/function_reference.js +0 -157
- package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -58
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -56
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -46
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -56
- package/vendor/node-addon-api/test/handlescope.cc +0 -86
- package/vendor/node-addon-api/test/handlescope.js +0 -16
- package/vendor/node-addon-api/test/index.js +0 -160
- package/vendor/node-addon-api/test/maybe/check.cc +0 -69
- package/vendor/node-addon-api/test/maybe/index.js +0 -50
- package/vendor/node-addon-api/test/memory_management.cc +0 -18
- package/vendor/node-addon-api/test/memory_management.js +0 -9
- package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
- package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
- package/vendor/node-addon-api/test/name.cc +0 -110
- package/vendor/node-addon-api/test/name.js +0 -59
- package/vendor/node-addon-api/test/napi_child.js +0 -14
- package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
- package/vendor/node-addon-api/test/object/delete_property.js +0 -41
- package/vendor/node-addon-api/test/object/finalizer.cc +0 -30
- package/vendor/node-addon-api/test/object/finalizer.js +0 -28
- package/vendor/node-addon-api/test/object/get_property.cc +0 -34
- package/vendor/node-addon-api/test/object/get_property.js +0 -40
- package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
- package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
- package/vendor/node-addon-api/test/object/has_property.cc +0 -38
- package/vendor/node-addon-api/test/object/has_property.js +0 -37
- package/vendor/node-addon-api/test/object/object.cc +0 -430
- package/vendor/node-addon-api/test/object/object.js +0 -218
- package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -70
- package/vendor/node-addon-api/test/object/object_deprecated.js +0 -42
- package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
- package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
- package/vendor/node-addon-api/test/object/set_property.cc +0 -45
- package/vendor/node-addon-api/test/object/set_property.js +0 -30
- package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
- package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
- package/vendor/node-addon-api/test/object_reference.cc +0 -417
- package/vendor/node-addon-api/test/object_reference.js +0 -262
- package/vendor/node-addon-api/test/objectwrap.cc +0 -295
- package/vendor/node-addon-api/test/objectwrap.js +0 -309
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
- package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
- package/vendor/node-addon-api/test/objectwrap_function.cc +0 -43
- package/vendor/node-addon-api/test/objectwrap_function.js +0 -6
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
- package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
- package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
- package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -32
- package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -20
- package/vendor/node-addon-api/test/promise.cc +0 -111
- package/vendor/node-addon-api/test/promise.js +0 -43
- package/vendor/node-addon-api/test/reference.cc +0 -78
- package/vendor/node-addon-api/test/reference.js +0 -20
- package/vendor/node-addon-api/test/require_basic_finalizers/index.js +0 -38
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +0 -12
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +0 -48
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +0 -3
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +0 -11
- package/vendor/node-addon-api/test/run_script.cc +0 -56
- package/vendor/node-addon-api/test/run_script.js +0 -45
- package/vendor/node-addon-api/test/symbol.cc +0 -79
- package/vendor/node-addon-api/test/symbol.js +0 -66
- package/vendor/node-addon-api/test/testUtil.js +0 -54
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -230
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -225
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -155
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -13
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +0 -50
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +0 -20
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -125
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -27
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -240
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -55
- package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -98
- package/vendor/node-addon-api/test/thunking_manual.cc +0 -127
- package/vendor/node-addon-api/test/thunking_manual.js +0 -16
- package/vendor/node-addon-api/test/type_taggable.cc +0 -66
- package/vendor/node-addon-api/test/type_taggable.js +0 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -120
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +0 -39
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +0 -13
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -32
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -8
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -67
- package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -98
- package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
- package/vendor/node-addon-api/test/typedarray.cc +0 -413
- package/vendor/node-addon-api/test/typedarray.js +0 -103
- package/vendor/node-addon-api/test/value_type_cast.cc +0 -60
- package/vendor/node-addon-api/test/value_type_cast.js +0 -106
- package/vendor/node-addon-api/test/version_management.cc +0 -28
- package/vendor/node-addon-api/test/version_management.js +0 -29
- package/vendor/node-addon-api/tools/README.md +0 -73
- package/vendor/node-addon-api/tools/check-napi.js +0 -99
- package/vendor/node-addon-api/tools/clang-format.js +0 -71
- package/vendor/node-addon-api/tools/conversion.js +0 -301
- package/vendor/node-addon-api/unit-test/README.md +0 -28
- package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
- package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
- package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
- package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
- package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
- package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
- package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
- package/vendor/node-addon-api/unit-test/setup.js +0 -13
- package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
- package/vendor/node-addon-api/unit-test/test.js +0 -30
- package/vendor/node-api-headers/CHANGELOG.md +0 -130
- package/vendor/node-api-headers/CODE_OF_CONDUCT.md +0 -4
- package/vendor/node-api-headers/CONTRIBUTING.md +0 -32
- package/vendor/node-api-headers/CREATING_A_RELEASE.md +0 -68
- package/vendor/node-api-headers/index.js +0 -17
- package/vendor/node-api-headers/lib/clang-utils.js +0 -50
- package/vendor/node-api-headers/lib/parse-utils.js +0 -92
- package/vendor/node-api-headers/package.json +0 -59
- package/vendor/node-api-headers/release-please-config.json +0 -12
- package/vendor/node-api-headers/scripts/update-headers.js +0 -246
- package/vendor/node-api-headers/scripts/write-symbols.js +0 -154
- package/vendor/node-api-headers/scripts/write-win32-def.js +0 -52
- package/vendor/node-api-headers/symbols.js +0 -257
- package/vendor/node-api-headers/test/parse-utils.js +0 -21
- /package/doc/{pages/benchmarks.md → benchmarks.md} +0 -0
- /package/doc/{pages/callbacks.md → callbacks.md} +0 -0
- /package/doc/{pages/contribute.md → contribute.md} +0 -0
- /package/doc/{pages/functions.md → functions.md} +0 -0
- /package/doc/{pages/index.md → index.md} +0 -0
- /package/doc/{pages/input.md → input.md} +0 -0
- /package/doc/{pages/migration.md → migration.md} +0 -0
- /package/doc/{pages/misc.md → misc.md} +0 -0
- /package/doc/{pages/output.md → output.md} +0 -0
- /package/doc/{pages/packaging.md → packaging.md} +0 -0
- /package/doc/{pages/platforms.md → platforms.md} +0 -0
- /package/doc/{pages/pointers.md → pointers.md} +0 -0
- /package/doc/{pages/start.md → start.md} +0 -0
- /package/doc/{pages/unions.md → unions.md} +0 -0
- /package/doc/{pages/variables.md → variables.md} +0 -0
- /package/src/koffi/src/{abi/loong64.cc → abi_loong64.cc} +0 -0
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# Promise
|
|
2
|
-
|
|
3
|
-
Class `Napi::Promise` inherits from class [`Napi::Object`][].
|
|
4
|
-
|
|
5
|
-
The `Napi::Promise` class, along with its `Napi::Promise::Deferred` class, implement the ability to create, resolve, and reject Promise objects.
|
|
6
|
-
|
|
7
|
-
The basic approach is to create a `Napi::Promise::Deferred` object and return to your caller the value returned by the `Napi::Promise::Deferred::Promise` method. For example:
|
|
8
|
-
|
|
9
|
-
```cpp
|
|
10
|
-
Napi::Value YourFunction(const Napi::CallbackInfo& info) {
|
|
11
|
-
// your code goes here...
|
|
12
|
-
Napi::Promise::Deferred deferred = Napi::Promise::Deferred::New(info.Env());
|
|
13
|
-
// deferred needs to survive this call...
|
|
14
|
-
return deferred.Promise();
|
|
15
|
-
}
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Later, when the asynchronous process completes, call either the `Resolve` or `Reject` method on the `Napi::Promise::Deferred` object created earlier:
|
|
19
|
-
|
|
20
|
-
```cpp
|
|
21
|
-
deferred.Resolve(String::New(info.Env(), "OK"));
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Promise::Deferred Methods
|
|
25
|
-
|
|
26
|
-
### Factory Method
|
|
27
|
-
|
|
28
|
-
```cpp
|
|
29
|
-
static Napi::Promise::Deferred Napi::Promise::Deferred::New(napi_env env);
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
* `[in] env`: The `napi_env` environment in which to create the `Napi::Promise::Deferred` object.
|
|
33
|
-
|
|
34
|
-
### Constructor
|
|
35
|
-
|
|
36
|
-
```cpp
|
|
37
|
-
Napi::Promise::Deferred(napi_env env);
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
* `[in] env`: The `napi_env` environment in which to construct the `Napi::Promise::Deferred` object.
|
|
41
|
-
|
|
42
|
-
### Env
|
|
43
|
-
|
|
44
|
-
```cpp
|
|
45
|
-
Napi::Env Napi::Promise::Deferred::Env() const;
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Returns the Env environment this `Napi::Promise::Deferred` object is associated with.
|
|
49
|
-
|
|
50
|
-
### Promise
|
|
51
|
-
|
|
52
|
-
```cpp
|
|
53
|
-
Napi::Promise Napi::Promise::Deferred::Promise() const;
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Returns the `Napi::Promise` object held by the `Napi::Promise::Deferred` object.
|
|
57
|
-
|
|
58
|
-
### Resolve
|
|
59
|
-
|
|
60
|
-
```cpp
|
|
61
|
-
void Napi::Promise::Deferred::Resolve(napi_value value) const;
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Resolves the `Napi::Promise` object held by the `Napi::Promise::Deferred` object.
|
|
65
|
-
|
|
66
|
-
* `[in] value`: The Node-API primitive value with which to resolve the `Napi::Promise`.
|
|
67
|
-
|
|
68
|
-
### Reject
|
|
69
|
-
|
|
70
|
-
```cpp
|
|
71
|
-
void Napi::Promise::Deferred::Reject(napi_value value) const;
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Rejects the Promise object held by the `Napi::Promise::Deferred` object.
|
|
75
|
-
|
|
76
|
-
* `[in] value`: The Node-API primitive value with which to reject the `Napi::Promise`.
|
|
77
|
-
|
|
78
|
-
## Promise Methods
|
|
79
|
-
|
|
80
|
-
### Then
|
|
81
|
-
|
|
82
|
-
```cpp
|
|
83
|
-
Napi::Promise Napi::Promise::Then(napi_value onFulfilled) const;
|
|
84
|
-
Napi::Promise Napi::Promise::Then(const Function& onFulfilled) const;
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Attaches a fulfillment handler to the promise and returns a new promise.
|
|
88
|
-
|
|
89
|
-
**Parameters:**
|
|
90
|
-
* `[in] onFulfilled`: The fulfillment handler for the promise. May be any of:
|
|
91
|
-
- `napi_value` – a JavaScript function to be called when the promise is fulfilled.
|
|
92
|
-
- `const Function&` – the [`Napi::Function`](function.md) to be called when the promise is fulfilled.
|
|
93
|
-
|
|
94
|
-
**Returns:** A new `Napi::Promise` that resolves or rejects based on the handler's result.
|
|
95
|
-
|
|
96
|
-
### Then
|
|
97
|
-
|
|
98
|
-
```cpp
|
|
99
|
-
Napi::Promise Napi::Promise::Then(napi_value onFulfilled, napi_value onRejected) const;
|
|
100
|
-
Napi::Promise Napi::Promise::Then(const Function& onFulfilled,
|
|
101
|
-
const Function& onRejected) const;
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Attaches a fulfillment and rejection handlers to the promise and returns a new promise.
|
|
105
|
-
|
|
106
|
-
**Parameters:**
|
|
107
|
-
* `[in] onFulfilled`: The fulfillment handler for the promise. May be any of:
|
|
108
|
-
- `napi_value` – a JavaScript function to be called when the promise is fulfilled.
|
|
109
|
-
- `const Function&` – the [`Napi::Function`](function.md) to be called when the promise is fulfilled.
|
|
110
|
-
* `[in] onRejected` (optional): The rejection handler for the promise. May be any of:
|
|
111
|
-
- `napi_value` – a JavaScript function to be called when the promise is rejected.
|
|
112
|
-
- `const Function&` – the [`Napi::Function`](function.md) to be called when the promise is rejected.
|
|
113
|
-
|
|
114
|
-
### Catch
|
|
115
|
-
```cpp
|
|
116
|
-
Napi::Promise Napi::Promise::Catch(napi_value onRejected) const;
|
|
117
|
-
Napi::Promise Napi::Promise::Catch(const Function& onRejected) const;
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Attaches a rejection handler to the promise and returns a new promise.
|
|
121
|
-
|
|
122
|
-
**Parameters:**
|
|
123
|
-
* `[in] onRejected`: The rejection handler for the promise. May be any of:
|
|
124
|
-
- `napi_value` – a JavaScript function to be called when the promise is rejected.
|
|
125
|
-
- `const Function&` – the [`Napi::Function`](function.md) to be called when the promise is rejected.
|
|
126
|
-
|
|
127
|
-
**Returns:** A new `Napi::Promise` that handles rejection cases.
|
|
128
|
-
|
|
129
|
-
[`Napi::Object`]: ./object.md
|
|
130
|
-
[`Napi::Function`]: ./function.md
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
# Property Descriptor
|
|
2
|
-
|
|
3
|
-
A [`Napi::Object`](object.md) can be assigned properties via its [`DefineProperty`](object.md#defineproperty) and [`DefineProperties`](object.md#defineproperties) functions, which take PropertyDescriptor(s) as their parameters. The `Napi::PropertyDescriptor` can contain either values or functions, which are then assigned to the `Napi::Object`. Note that a single instance of a `Napi::PropertyDescriptor` class can only contain either one value, or at most two functions. PropertyDescriptors can only be created through the class methods [`Accessor`](#accessor), [`Function`](#function), or [`Value`](#value), each of which return a new static instance of a `Napi::PropertyDescriptor`.
|
|
4
|
-
|
|
5
|
-
## Example
|
|
6
|
-
|
|
7
|
-
```cpp
|
|
8
|
-
#include <napi.h>
|
|
9
|
-
|
|
10
|
-
using namespace Napi;
|
|
11
|
-
|
|
12
|
-
Value TestGetter(const CallbackInfo& info) {
|
|
13
|
-
return Boolean::New(info.Env(), testValue);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
void TestSetter(const CallbackInfo& info) {
|
|
17
|
-
testValue = info[0].As<Boolean>();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
Value TestFunction(const CallbackInfo& info) {
|
|
21
|
-
return Boolean::New(info.Env(), true);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
Void Init(Env env) {
|
|
25
|
-
// Create an object.
|
|
26
|
-
Object obj = Object::New(env);
|
|
27
|
-
|
|
28
|
-
// Accessor
|
|
29
|
-
PropertyDescriptor pd1 = PropertyDescriptor::Accessor<TestGetter>("pd1");
|
|
30
|
-
PropertyDescriptor pd2 =
|
|
31
|
-
PropertyDescriptor::Accessor<TestGetter, TestSetter>("pd2");
|
|
32
|
-
// Function
|
|
33
|
-
PropertyDescriptor pd3 = PropertyDescriptor::Function(env,
|
|
34
|
-
"function",
|
|
35
|
-
TestFunction);
|
|
36
|
-
// Value
|
|
37
|
-
Boolean true_bool = Boolean::New(env, true);
|
|
38
|
-
PropertyDescriptor pd4 =
|
|
39
|
-
PropertyDescriptor::Value("boolean value",
|
|
40
|
-
Napi::Boolean::New(env, true),
|
|
41
|
-
napi_writable);
|
|
42
|
-
|
|
43
|
-
// Assign properties to the object.
|
|
44
|
-
obj.DefineProperties({pd1, pd2, pd3, pd4});
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Types
|
|
49
|
-
|
|
50
|
-
### PropertyDescriptor::GetterCallback
|
|
51
|
-
|
|
52
|
-
```cpp
|
|
53
|
-
using GetterCallback = Napi::Value (*)(const Napi::CallbackInfo& info);
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
This is the signature of a getter function to be passed as a template parameter
|
|
57
|
-
to `PropertyDescriptor::Accessor`.
|
|
58
|
-
|
|
59
|
-
### PropertyDescriptor::SetterCallback
|
|
60
|
-
|
|
61
|
-
```cpp
|
|
62
|
-
using SetterCallback = void (*)(const Napi::CallbackInfo& info);
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
This is the signature of a setter function to be passed as a template parameter
|
|
66
|
-
to `PropertyDescriptor::Accessor`.
|
|
67
|
-
|
|
68
|
-
## Methods
|
|
69
|
-
|
|
70
|
-
### Constructor
|
|
71
|
-
|
|
72
|
-
```cpp
|
|
73
|
-
Napi::PropertyDescriptor::PropertyDescriptor (napi_property_descriptor desc);
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
* `[in] desc`: A PropertyDescriptor that is needed in order to create another PropertyDescriptor.
|
|
77
|
-
|
|
78
|
-
### Accessor
|
|
79
|
-
|
|
80
|
-
```cpp
|
|
81
|
-
template <Napi::PropertyDescriptor::GetterCallback Getter>
|
|
82
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
|
|
83
|
-
napi_property_attributes attributes = napi_default,
|
|
84
|
-
void* data = nullptr);
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
* `[template] Getter`: A getter function.
|
|
88
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
89
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
90
|
-
|
|
91
|
-
Returns a PropertyDescriptor that contains a read-only property.
|
|
92
|
-
|
|
93
|
-
The name of the property can be any of the following types:
|
|
94
|
-
- `const char*`
|
|
95
|
-
- `const std::string &`
|
|
96
|
-
- `napi_value value`
|
|
97
|
-
- `Napi::Name`
|
|
98
|
-
|
|
99
|
-
```cpp
|
|
100
|
-
template <
|
|
101
|
-
Napi::PropertyDescriptor::GetterCallback Getter,
|
|
102
|
-
Napi::PropertyDescriptor::SetterCallback Setter>
|
|
103
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
|
|
104
|
-
napi_property_attributes attributes = napi_default,
|
|
105
|
-
void* data = nullptr);
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
* `[template] Getter`: A getter function.
|
|
109
|
-
* `[template] Setter`: A setter function.
|
|
110
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
111
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
112
|
-
|
|
113
|
-
Returns a PropertyDescriptor that contains a read-write property.
|
|
114
|
-
|
|
115
|
-
The name of the property can be any of the following types:
|
|
116
|
-
- `const char*`
|
|
117
|
-
- `const std::string &`
|
|
118
|
-
- `napi_value value`
|
|
119
|
-
- `Napi::Name`
|
|
120
|
-
|
|
121
|
-
```cpp
|
|
122
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
|
|
123
|
-
Getter getter,
|
|
124
|
-
napi_property_attributes attributes = napi_default,
|
|
125
|
-
void *data = nullptr);
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
* `[in] name`: The name used for the getter function.
|
|
129
|
-
* `[in] getter`: A getter function.
|
|
130
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
131
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
132
|
-
|
|
133
|
-
Returns a PropertyDescriptor that contains a function.
|
|
134
|
-
|
|
135
|
-
The name of the property can be any of the following types:
|
|
136
|
-
- `const char*`
|
|
137
|
-
- `const std::string &`
|
|
138
|
-
- `napi_value value`
|
|
139
|
-
- `Napi::Name`
|
|
140
|
-
|
|
141
|
-
**The above signature is deprecated. It will result in a memory leak if used.**
|
|
142
|
-
|
|
143
|
-
```cpp
|
|
144
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
|
|
145
|
-
Napi::Env env,
|
|
146
|
-
Napi::Object object,
|
|
147
|
-
___ name,
|
|
148
|
-
Getter getter,
|
|
149
|
-
napi_property_attributes attributes = napi_default,
|
|
150
|
-
void *data = nullptr);
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
* `[in] env`: The environment in which to create this accessor.
|
|
154
|
-
* `[in] object`: The object on which the accessor will be defined.
|
|
155
|
-
* `[in] name`: The name used for the getter function.
|
|
156
|
-
* `[in] getter`: A getter function.
|
|
157
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
158
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
159
|
-
|
|
160
|
-
Returns a `Napi::PropertyDescriptor` that contains a `Getter` accessor.
|
|
161
|
-
|
|
162
|
-
The name of the property can be any of the following types:
|
|
163
|
-
- `const char*`
|
|
164
|
-
- `const std::string &`
|
|
165
|
-
- `Napi::Name`
|
|
166
|
-
|
|
167
|
-
```cpp
|
|
168
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (___ name,
|
|
169
|
-
Getter getter,
|
|
170
|
-
Setter setter,
|
|
171
|
-
napi_property_attributes attributes = napi_default,
|
|
172
|
-
void *data = nullptr);
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
* `[in] name`: The name of the getter and setter function.
|
|
176
|
-
* `[in] getter`: The getter function.
|
|
177
|
-
* `[in] setter`: The setter function.
|
|
178
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
179
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
180
|
-
|
|
181
|
-
Returns a `Napi::PropertyDescriptor` that contains a `Getter` and `Setter` function.
|
|
182
|
-
|
|
183
|
-
The name of the property can be any of the following types:
|
|
184
|
-
- `const char*`
|
|
185
|
-
- `const std::string &`
|
|
186
|
-
- `napi_value value`
|
|
187
|
-
- `Napi::Name`
|
|
188
|
-
|
|
189
|
-
**The above signature is deprecated. It will result in a memory leak if used.**
|
|
190
|
-
|
|
191
|
-
```cpp
|
|
192
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Accessor (
|
|
193
|
-
Napi::Env env,
|
|
194
|
-
Napi::Object object,
|
|
195
|
-
___ name,
|
|
196
|
-
Getter getter,
|
|
197
|
-
Setter setter,
|
|
198
|
-
napi_property_attributes attributes = napi_default,
|
|
199
|
-
void *data = nullptr);
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
* `[in] env`: The environment in which to create this accessor.
|
|
203
|
-
* `[in] object`: The object on which the accessor will be defined.
|
|
204
|
-
* `[in] name`: The name of the getter and setter function.
|
|
205
|
-
* `[in] getter`: The getter function.
|
|
206
|
-
* `[in] setter`: The setter function.
|
|
207
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
208
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
209
|
-
|
|
210
|
-
Returns a `Napi::PropertyDescriptor` that contains a `Getter` and `Setter` function.
|
|
211
|
-
|
|
212
|
-
The name of the property can be any of the following types:
|
|
213
|
-
- `const char*`
|
|
214
|
-
- `const std::string &`
|
|
215
|
-
- `Napi::Name`
|
|
216
|
-
|
|
217
|
-
### Function
|
|
218
|
-
|
|
219
|
-
```cpp
|
|
220
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (___ name,
|
|
221
|
-
Callable cb,
|
|
222
|
-
napi_property_attributes attributes = napi_default,
|
|
223
|
-
void *data = nullptr);
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
* `[in] name`: The name of the Callable function.
|
|
227
|
-
* `[in] cb`: The function
|
|
228
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
229
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
230
|
-
|
|
231
|
-
Returns a `Napi::PropertyDescriptor` that contains a callable `Napi::Function`.
|
|
232
|
-
|
|
233
|
-
The name of the property can be any of the following types:
|
|
234
|
-
- `const char*`
|
|
235
|
-
- `const std::string &`
|
|
236
|
-
- `napi_value value`
|
|
237
|
-
- `Napi::Name`
|
|
238
|
-
|
|
239
|
-
**The above signature is deprecated. It will result in a memory leak if used.**
|
|
240
|
-
|
|
241
|
-
```cpp
|
|
242
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Function (
|
|
243
|
-
Napi::Env env,
|
|
244
|
-
___ name,
|
|
245
|
-
Callable cb,
|
|
246
|
-
napi_property_attributes attributes = napi_default,
|
|
247
|
-
void *data = nullptr);
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
* `[in] env`: The environment in which to create this accessor.
|
|
251
|
-
* `[in] name`: The name of the Callable function.
|
|
252
|
-
* `[in] cb`: The function
|
|
253
|
-
* `[in] attributes`: Potential attributes for the getter function.
|
|
254
|
-
* `[in] data`: A pointer to data of any type, default is a null pointer.
|
|
255
|
-
|
|
256
|
-
Returns a `Napi::PropertyDescriptor` that contains a callable `Napi::Function`.
|
|
257
|
-
|
|
258
|
-
The name of the property can be any of the following types:
|
|
259
|
-
- `const char*`
|
|
260
|
-
- `const std::string &`
|
|
261
|
-
- `Napi::Name`
|
|
262
|
-
|
|
263
|
-
### Value
|
|
264
|
-
|
|
265
|
-
```cpp
|
|
266
|
-
static Napi::PropertyDescriptor Napi::PropertyDescriptor::Value (___ name,
|
|
267
|
-
napi_value value,
|
|
268
|
-
napi_property_attributes attributes = napi_default);
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
The name of the property can be any of the following types:
|
|
272
|
-
- `const char*`
|
|
273
|
-
- `const std::string &`
|
|
274
|
-
- `napi_value value`
|
|
275
|
-
- `Napi::Name`
|
|
276
|
-
|
|
277
|
-
## Related Information
|
|
278
|
-
|
|
279
|
-
### napi\_property\_attributes
|
|
280
|
-
`napi_property_attributes` are flags used to indicate to JavaScript certain permissions that the property is meant to have. The following are the flag options:
|
|
281
|
-
- napi\_default,
|
|
282
|
-
- napi\_writable,
|
|
283
|
-
- napi\_enumerable,
|
|
284
|
-
- napi\_configurable
|
|
285
|
-
For more information on the flags and on napi\_property\_attributes, please read the documentation [here](https://github.com/nodejs/node/blob/HEAD/doc/api/n-api.md#napi_property_attributes).
|
|
286
|
-
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# PropertyLValue
|
|
2
|
-
|
|
3
|
-
The `Napi::Object::PropertyLValue` class is a helper class provided by
|
|
4
|
-
`Napi::Object` to allow more intuitive assignment of properties.
|
|
5
|
-
|
|
6
|
-
## Example
|
|
7
|
-
```cpp
|
|
8
|
-
#include <napi.h>
|
|
9
|
-
|
|
10
|
-
using namespace Napi;
|
|
11
|
-
|
|
12
|
-
Void Init(Env env) {
|
|
13
|
-
// Create a new instance
|
|
14
|
-
Object obj = Object::New(env);
|
|
15
|
-
|
|
16
|
-
// Assign a value to a property.
|
|
17
|
-
obj["hello"] = "world";
|
|
18
|
-
}
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
In the above example, `obj["hello"]` returns a `Napi::Object::PropertyLValue`
|
|
22
|
-
whose `operator=()` method accepts a string which will become the value of the
|
|
23
|
-
"hello" property of the newly created object.
|
|
24
|
-
|
|
25
|
-
In general, `obj[key] = value` is the equivalent of `obj.Set(key, value)`, where
|
|
26
|
-
the types of `key` and `value` are all those supported by
|
|
27
|
-
[`Napi::Object::Set()`](object.md#set).
|
|
28
|
-
|
|
29
|
-
## Methods
|
|
30
|
-
|
|
31
|
-
### operator Value()
|
|
32
|
-
|
|
33
|
-
```cpp
|
|
34
|
-
operator Value() const;
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Implicitly casts this `Napi::Object::PropertyLValue` to a `Napi::Value`.
|
|
38
|
-
|
|
39
|
-
### operator =()
|
|
40
|
-
|
|
41
|
-
```cpp
|
|
42
|
-
template <typename ValueType>
|
|
43
|
-
PropertyLValue& operator =(ValueType value);
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
* `[in] value` a value to assign to the property referred to by the
|
|
47
|
-
`Napi::Object::PropertyLValue`. The type of the value is one of the types
|
|
48
|
-
supported by the second parameter of [`Napi::Object::Set()`](object.md#set).
|
|
49
|
-
|
|
50
|
-
Returns a self-reference.
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# RangeError
|
|
2
|
-
|
|
3
|
-
The `Napi::RangeError` class is a representation of the JavaScript `RangeError` that is
|
|
4
|
-
thrown when trying to pass a value as an argument to a function that does not allow
|
|
5
|
-
a range that includes the value.
|
|
6
|
-
|
|
7
|
-
The `Napi::RangeError` class inherits its behaviors from the `Napi::Error` class (for
|
|
8
|
-
more info see: [`Napi::Error`](error.md)).
|
|
9
|
-
|
|
10
|
-
For more details about error handling refer to the section titled [Error handling](error_handling.md).
|
|
11
|
-
|
|
12
|
-
## Methods
|
|
13
|
-
|
|
14
|
-
### New
|
|
15
|
-
|
|
16
|
-
Creates a new instance of a `Napi::RangeError` object.
|
|
17
|
-
|
|
18
|
-
```cpp
|
|
19
|
-
Napi::RangeError::New(Napi::Env env, const char* message);
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
- `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
|
|
23
|
-
- `[in] message`: Null-terminated string to be used as the message for the `Napi::RangeError`.
|
|
24
|
-
|
|
25
|
-
Returns an instance of a `Napi::RangeError` object.
|
|
26
|
-
|
|
27
|
-
### New
|
|
28
|
-
|
|
29
|
-
Creates a new instance of a `Napi::RangeError` object.
|
|
30
|
-
|
|
31
|
-
```cpp
|
|
32
|
-
Napi::RangeError::New(Napi::Env env, const std::string& message);
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
- `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
|
|
36
|
-
- `[in] message`: Reference string to be used as the message for the `Napi::RangeError`.
|
|
37
|
-
|
|
38
|
-
Returns an instance of a `Napi::RangeError` object.
|
|
39
|
-
|
|
40
|
-
### Constructor
|
|
41
|
-
|
|
42
|
-
Creates a new empty instance of a `Napi::RangeError`.
|
|
43
|
-
|
|
44
|
-
```cpp
|
|
45
|
-
Napi::RangeError::RangeError();
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Constructor
|
|
49
|
-
|
|
50
|
-
Initializes a `Napi::RangeError` instance from an existing Javascript error object.
|
|
51
|
-
|
|
52
|
-
```cpp
|
|
53
|
-
Napi::RangeError::RangeError(napi_env env, napi_value value);
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
- `[in] Env`: The environment in which to construct the `Napi::RangeError` object.
|
|
57
|
-
- `[in] value`: The `Napi::Error` reference to wrap.
|
|
58
|
-
|
|
59
|
-
Returns an instance of a `Napi::RangeError` object.
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# Reference (template)
|
|
2
|
-
|
|
3
|
-
Holds a counted reference to a [`Napi::Value`](value.md) object; initially a weak reference unless otherwise specified, may be changed to/from a strong reference by adjusting the refcount.
|
|
4
|
-
|
|
5
|
-
The referenced `Napi::Value` is not immediately destroyed when the reference count is zero; it is merely then eligible for garbage-collection if there are no other references to the `Napi::Value`.
|
|
6
|
-
|
|
7
|
-
`Napi::Reference` objects allocated in static space, such as a global static instance, must call the `SuppressDestruct` method to prevent its destructor, running at program shutdown time, from attempting to reset the reference when the environment is no longer valid. Avoid using this if at all possible.
|
|
8
|
-
|
|
9
|
-
The following classes inherit, either directly or indirectly, from `Napi::Reference`:
|
|
10
|
-
|
|
11
|
-
* [`Napi::ObjectWrap`](object_wrap.md)
|
|
12
|
-
* [`Napi::ObjectReference`](object_reference.md)
|
|
13
|
-
* [`Napi::FunctionReference`](function_reference.md)
|
|
14
|
-
|
|
15
|
-
## Methods
|
|
16
|
-
|
|
17
|
-
### Factory Method
|
|
18
|
-
|
|
19
|
-
```cpp
|
|
20
|
-
static Napi::Reference<T> Napi::Reference::New(const T& value, uint32_t initialRefcount = 0);
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
* `[in] value`: The value which is to be referenced.
|
|
24
|
-
|
|
25
|
-
* `[in] initialRefcount`: The initial reference count.
|
|
26
|
-
|
|
27
|
-
### Empty Constructor
|
|
28
|
-
|
|
29
|
-
```cpp
|
|
30
|
-
Napi::Reference::Reference();
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Creates a new _empty_ `Napi::Reference` instance.
|
|
34
|
-
|
|
35
|
-
### Constructor
|
|
36
|
-
|
|
37
|
-
```cpp
|
|
38
|
-
Napi::Reference::Reference(napi_env env, napi_value value);
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
* `[in] env`: The `napi_env` environment in which to construct the `Napi::Reference` object.
|
|
42
|
-
|
|
43
|
-
* `[in] value`: The Node-API primitive value to be held by the `Napi::Reference`.
|
|
44
|
-
|
|
45
|
-
### Env
|
|
46
|
-
|
|
47
|
-
```cpp
|
|
48
|
-
Napi::Env Napi::Reference::Env() const;
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Returns the `Napi::Env` value in which the `Napi::Reference` was instantiated.
|
|
52
|
-
|
|
53
|
-
### IsEmpty
|
|
54
|
-
|
|
55
|
-
```cpp
|
|
56
|
-
bool Napi::Reference::IsEmpty() const;
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Determines whether the value held by the `Napi::Reference` is empty.
|
|
60
|
-
|
|
61
|
-
### Value
|
|
62
|
-
|
|
63
|
-
```cpp
|
|
64
|
-
T Napi::Reference::Value() const;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Returns the value held by the `Napi::Reference`.
|
|
68
|
-
|
|
69
|
-
### Ref
|
|
70
|
-
|
|
71
|
-
```cpp
|
|
72
|
-
uint32_t Napi::Reference::Ref() const;
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Increments the reference count for the `Napi::Reference` and returns the resulting reference count. Throws an error if the increment fails.
|
|
76
|
-
|
|
77
|
-
### Unref
|
|
78
|
-
|
|
79
|
-
```cpp
|
|
80
|
-
uint32_t Napi::Reference::Unref() const;
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Decrements the reference count for the `Napi::Reference` and returns the resulting reference count. Throws an error if the decrement fails.
|
|
84
|
-
|
|
85
|
-
### Reset (Empty)
|
|
86
|
-
|
|
87
|
-
```cpp
|
|
88
|
-
void Napi::Reference::Reset();
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Sets the value held by the `Napi::Reference` to be empty.
|
|
92
|
-
|
|
93
|
-
### Reset
|
|
94
|
-
|
|
95
|
-
```cpp
|
|
96
|
-
void Napi::Reference::Reset(const T& value, uint32_t refcount = 0);
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
* `[in] value`: The value which is to be referenced.
|
|
100
|
-
|
|
101
|
-
* `[in] initialRefcount`: The initial reference count.
|
|
102
|
-
|
|
103
|
-
Sets the value held by the `Napi::Reference`.
|
|
104
|
-
|
|
105
|
-
### SuppressDestruct
|
|
106
|
-
|
|
107
|
-
```cpp
|
|
108
|
-
void Napi::Reference::SuppressDestruct();
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Call this method on a `Napi::Reference` that is declared as static data to prevent its destructor, running at program shutdown time, from attempting to reset the reference when the environment is no longer valid.
|
|
112
|
-
|
|
113
|
-
Avoid using this if at all possible. If you do need to use static data, **MAKE SURE** to warn your users that your addon is **NOT** threadsafe.
|