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.
Files changed (425) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/build/koffi/darwin_arm64/koffi.node +0 -0
  3. package/build/koffi/darwin_x64/koffi.node +0 -0
  4. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  5. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  6. package/build/koffi/freebsd_x64/koffi.node +0 -0
  7. package/build/koffi/linux_arm64/koffi.node +0 -0
  8. package/build/koffi/linux_armhf/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_loong64/koffi.node +0 -0
  11. package/build/koffi/linux_riscv64d/koffi.node +0 -0
  12. package/build/koffi/linux_x64/koffi.node +0 -0
  13. package/build/koffi/musl_arm64/koffi.node +0 -0
  14. package/build/koffi/musl_x64/koffi.node +0 -0
  15. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  16. package/build/koffi/openbsd_x64/koffi.node +0 -0
  17. package/build/koffi/win32_arm64/koffi.exp +0 -0
  18. package/build/koffi/win32_arm64/koffi.lib +0 -0
  19. package/build/koffi/win32_arm64/koffi.node +0 -0
  20. package/build/koffi/win32_ia32/koffi.exp +0 -0
  21. package/build/koffi/win32_ia32/koffi.lib +0 -0
  22. package/build/koffi/win32_ia32/koffi.node +0 -0
  23. package/build/koffi/win32_x64/koffi.exp +0 -0
  24. package/build/koffi/win32_x64/koffi.lib +0 -0
  25. package/build/koffi/win32_x64/koffi.node +0 -0
  26. package/index.d.ts +9 -11
  27. package/index.js +6 -9
  28. package/indirect.js +6 -9
  29. package/lib/native/base/base.cc +1 -6
  30. package/package.json +3 -3
  31. package/src/cnoke/assets/FindCNoke.cmake +27 -16
  32. package/src/cnoke/assets/toolchains.json +126 -0
  33. package/src/cnoke/cnoke.js +27 -33
  34. package/src/cnoke/src/builder.js +124 -63
  35. package/src/cnoke/src/tools.js +1 -5
  36. package/src/koffi/CMakeLists.txt +32 -21
  37. package/src/koffi/src/{abi/arm32.cc → abi_arm32.cc} +235 -246
  38. package/src/koffi/src/{abi/arm32_asm.S → abi_arm32_asm.S} +19 -15
  39. package/src/koffi/src/{abi/arm64.cc → abi_arm64.cc} +253 -300
  40. package/src/koffi/src/{abi/arm64_asm.S → abi_arm64_asm.S} +16 -10
  41. package/src/koffi/src/{abi/arm64_asm.asm → abi_arm64_asm.asm} +17 -10
  42. package/src/koffi/src/{abi/loong64_asm.S → abi_loong64_asm.S} +16 -10
  43. package/src/koffi/src/{abi/riscv64.cc → abi_riscv64.cc} +233 -244
  44. package/src/koffi/src/{abi/riscv64_asm.S → abi_riscv64_asm.S} +16 -10
  45. package/src/koffi/src/{abi/x64_sysv.cc → abi_x64_sysv.cc} +208 -220
  46. package/src/koffi/src/{abi/x64_sysv_asm.S → abi_x64_sysv_asm.S} +17 -10
  47. package/src/koffi/src/{abi/x64_win.cc → abi_x64_win.cc} +175 -230
  48. package/src/koffi/src/{abi/x64_win_asm.S → abi_x64_win_asm.S} +49 -27
  49. package/src/koffi/src/{abi/x64_win_asm.asm → abi_x64_win_asm.asm} +54 -27
  50. package/src/koffi/src/{abi/x86.cc → abi_x86.cc} +187 -252
  51. package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +38 -21
  52. package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +33 -16
  53. package/src/koffi/src/call.cc +475 -290
  54. package/src/koffi/src/call.hh +15 -18
  55. package/src/koffi/src/ffi.cc +195 -184
  56. package/src/koffi/src/ffi.hh +60 -16
  57. package/src/koffi/src/init.js +1 -0
  58. package/src/koffi/src/util.cc +113 -159
  59. package/src/koffi/src/util.hh +23 -74
  60. package/src/koffi/src/win32.cc +13 -0
  61. package/src/koffi/src/win32.hh +7 -0
  62. package/src/koffi/tools/write_trampolines.js +77 -0
  63. package/doc/README.md +0 -27
  64. package/doc/assets.ini +0 -24
  65. package/doc/build.sh +0 -9
  66. package/doc/develop.sh +0 -15
  67. package/doc/pages/404.md +0 -17
  68. package/doc/pages.ini +0 -86
  69. package/doc/static/highlight.js +0 -8
  70. package/doc/static/koffi.css +0 -11
  71. package/doc/static/koffi.png +0 -0
  72. package/doc/static/logo.webp +0 -0
  73. package/doc/static/perf_linux.png +0 -0
  74. package/doc/static/perf_windows.png +0 -0
  75. package/doc/static/print.css +0 -10
  76. package/doc/templates/code.html +0 -48
  77. package/doc/templates/page.html +0 -47
  78. package/src/koffi/cmake/raylib.cmake +0 -85
  79. package/src/koffi/cmake/sqlite3.cmake +0 -9
  80. package/src/koffi/examples/electron-builder/README.md +0 -11
  81. package/src/koffi/examples/electron-builder/package.json +0 -21
  82. package/src/koffi/examples/electron-builder/src/app.js +0 -20
  83. package/src/koffi/examples/electron-builder/src/index.html +0 -143
  84. package/src/koffi/examples/electron-builder/src/preload.js +0 -5
  85. package/src/koffi/examples/electron-forge/README.md +0 -25
  86. package/src/koffi/examples/electron-forge/forge.config.js +0 -63
  87. package/src/koffi/examples/electron-forge/package.json +0 -39
  88. package/src/koffi/examples/electron-forge/src/index.css +0 -7
  89. package/src/koffi/examples/electron-forge/src/index.html +0 -143
  90. package/src/koffi/examples/electron-forge/src/main.js +0 -52
  91. package/src/koffi/examples/electron-forge/src/preload.js +0 -5
  92. package/src/koffi/examples/electron-forge/src/renderer.js +0 -31
  93. package/src/koffi/examples/electron-forge/webpack.main.config.js +0 -11
  94. package/src/koffi/examples/electron-forge/webpack.renderer.config.js +0 -13
  95. package/src/koffi/examples/electron-forge/webpack.rules.js +0 -35
  96. package/src/koffi/examples/node-esbuild/README.md +0 -19
  97. package/src/koffi/examples/node-esbuild/index.js +0 -2
  98. package/src/koffi/examples/node-esbuild/package.json +0 -16
  99. package/src/koffi/examples/nwjs/README.md +0 -20
  100. package/src/koffi/examples/nwjs/package.json +0 -11
  101. package/src/koffi/examples/nwjs/src/index.html +0 -145
  102. package/src/koffi/examples/nwjs/src/package.json +0 -10
  103. package/src/koffi/examples/yao-pkg/README.md +0 -17
  104. package/src/koffi/examples/yao-pkg/index.js +0 -2
  105. package/src/koffi/examples/yao-pkg/package.json +0 -22
  106. package/src/koffi/src/primitives.inc +0 -39
  107. package/src/koffi/src/trampolines/armasm.inc +0 -32771
  108. package/src/koffi/src/trampolines/gnu.inc +0 -24577
  109. package/src/koffi/src/trampolines/masm32.inc +0 -32769
  110. package/src/koffi/src/trampolines/masm64.inc +0 -32769
  111. package/src/koffi/src/trampolines/prototypes.inc +0 -16388
  112. package/vendor/node-addon-api/CHANGELOG.md +0 -1272
  113. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +0 -4
  114. package/vendor/node-addon-api/CONTRIBUTING.md +0 -203
  115. package/vendor/node-addon-api/appveyor.yml +0 -37
  116. package/vendor/node-addon-api/benchmark/README.md +0 -47
  117. package/vendor/node-addon-api/benchmark/binding.gyp +0 -25
  118. package/vendor/node-addon-api/benchmark/function_args.cc +0 -250
  119. package/vendor/node-addon-api/benchmark/function_args.js +0 -60
  120. package/vendor/node-addon-api/benchmark/index.js +0 -34
  121. package/vendor/node-addon-api/benchmark/property_descriptor.cc +0 -84
  122. package/vendor/node-addon-api/benchmark/property_descriptor.js +0 -38
  123. package/vendor/node-addon-api/common.gypi +0 -21
  124. package/vendor/node-addon-api/doc/README.md +0 -145
  125. package/vendor/node-addon-api/doc/addon.md +0 -163
  126. package/vendor/node-addon-api/doc/array.md +0 -81
  127. package/vendor/node-addon-api/doc/array_buffer.md +0 -165
  128. package/vendor/node-addon-api/doc/async_context.md +0 -86
  129. package/vendor/node-addon-api/doc/async_operations.md +0 -31
  130. package/vendor/node-addon-api/doc/async_worker.md +0 -428
  131. package/vendor/node-addon-api/doc/async_worker_variants.md +0 -578
  132. package/vendor/node-addon-api/doc/basic_env.md +0 -200
  133. package/vendor/node-addon-api/doc/bigint.md +0 -97
  134. package/vendor/node-addon-api/doc/boolean.md +0 -68
  135. package/vendor/node-addon-api/doc/buffer.md +0 -245
  136. package/vendor/node-addon-api/doc/callback_scope.md +0 -54
  137. package/vendor/node-addon-api/doc/callbackinfo.md +0 -97
  138. package/vendor/node-addon-api/doc/checker-tool.md +0 -32
  139. package/vendor/node-addon-api/doc/class_property_descriptor.md +0 -123
  140. package/vendor/node-addon-api/doc/cmake-js.md +0 -87
  141. package/vendor/node-addon-api/doc/contributing/creating_a_release.md +0 -95
  142. package/vendor/node-addon-api/doc/conversion-tool.md +0 -28
  143. package/vendor/node-addon-api/doc/dataview.md +0 -248
  144. package/vendor/node-addon-api/doc/date.md +0 -68
  145. package/vendor/node-addon-api/doc/env.md +0 -87
  146. package/vendor/node-addon-api/doc/error.md +0 -120
  147. package/vendor/node-addon-api/doc/error_handling.md +0 -266
  148. package/vendor/node-addon-api/doc/escapable_handle_scope.md +0 -80
  149. package/vendor/node-addon-api/doc/external.md +0 -79
  150. package/vendor/node-addon-api/doc/external_buffer.md +0 -18
  151. package/vendor/node-addon-api/doc/finalization.md +0 -153
  152. package/vendor/node-addon-api/doc/function.md +0 -402
  153. package/vendor/node-addon-api/doc/function_reference.md +0 -238
  154. package/vendor/node-addon-api/doc/generator.md +0 -13
  155. package/vendor/node-addon-api/doc/handle_scope.md +0 -77
  156. package/vendor/node-addon-api/doc/hierarchy.md +0 -95
  157. package/vendor/node-addon-api/doc/instance_wrap.md +0 -408
  158. package/vendor/node-addon-api/doc/maybe.md +0 -76
  159. package/vendor/node-addon-api/doc/memory_management.md +0 -27
  160. package/vendor/node-addon-api/doc/name.md +0 -29
  161. package/vendor/node-addon-api/doc/node-gyp.md +0 -82
  162. package/vendor/node-addon-api/doc/number.md +0 -163
  163. package/vendor/node-addon-api/doc/object.md +0 -411
  164. package/vendor/node-addon-api/doc/object_lifetime_management.md +0 -83
  165. package/vendor/node-addon-api/doc/object_reference.md +0 -117
  166. package/vendor/node-addon-api/doc/object_wrap.md +0 -604
  167. package/vendor/node-addon-api/doc/prebuild_tools.md +0 -16
  168. package/vendor/node-addon-api/doc/promises.md +0 -130
  169. package/vendor/node-addon-api/doc/property_descriptor.md +0 -286
  170. package/vendor/node-addon-api/doc/propertylvalue.md +0 -50
  171. package/vendor/node-addon-api/doc/range_error.md +0 -59
  172. package/vendor/node-addon-api/doc/reference.md +0 -113
  173. package/vendor/node-addon-api/doc/setup.md +0 -115
  174. package/vendor/node-addon-api/doc/string.md +0 -93
  175. package/vendor/node-addon-api/doc/symbol.md +0 -61
  176. package/vendor/node-addon-api/doc/syntax_error.md +0 -66
  177. package/vendor/node-addon-api/doc/threadsafe.md +0 -121
  178. package/vendor/node-addon-api/doc/threadsafe_function.md +0 -290
  179. package/vendor/node-addon-api/doc/type_error.md +0 -59
  180. package/vendor/node-addon-api/doc/type_taggable.md +0 -40
  181. package/vendor/node-addon-api/doc/typed_array.md +0 -78
  182. package/vendor/node-addon-api/doc/typed_array_of.md +0 -137
  183. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +0 -306
  184. package/vendor/node-addon-api/doc/value.md +0 -368
  185. package/vendor/node-addon-api/doc/version_management.md +0 -43
  186. package/vendor/node-addon-api/eslint.config.js +0 -5
  187. package/vendor/node-addon-api/except.gypi +0 -25
  188. package/vendor/node-addon-api/index.js +0 -14
  189. package/vendor/node-addon-api/node_addon_api.gyp +0 -42
  190. package/vendor/node-addon-api/node_api.gyp +0 -9
  191. package/vendor/node-addon-api/noexcept.gypi +0 -26
  192. package/vendor/node-addon-api/nothing.c +0 -0
  193. package/vendor/node-addon-api/package-support.json +0 -21
  194. package/vendor/node-addon-api/package.json +0 -480
  195. package/vendor/node-addon-api/release-please-config.json +0 -15
  196. package/vendor/node-addon-api/test/README.md +0 -91
  197. package/vendor/node-addon-api/test/addon.cc +0 -44
  198. package/vendor/node-addon-api/test/addon.js +0 -7
  199. package/vendor/node-addon-api/test/addon_build/index.js +0 -49
  200. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +0 -18
  201. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +0 -63
  202. package/vendor/node-addon-api/test/addon_build/tpl/index.js +0 -9
  203. package/vendor/node-addon-api/test/addon_build/tpl/package.json +0 -11
  204. package/vendor/node-addon-api/test/addon_data.cc +0 -98
  205. package/vendor/node-addon-api/test/addon_data.js +0 -24
  206. package/vendor/node-addon-api/test/array_buffer.cc +0 -243
  207. package/vendor/node-addon-api/test/array_buffer.js +0 -70
  208. package/vendor/node-addon-api/test/async_context.cc +0 -36
  209. package/vendor/node-addon-api/test/async_context.js +0 -122
  210. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +0 -248
  211. package/vendor/node-addon-api/test/async_progress_queue_worker.js +0 -180
  212. package/vendor/node-addon-api/test/async_progress_worker.cc +0 -357
  213. package/vendor/node-addon-api/test/async_progress_worker.js +0 -200
  214. package/vendor/node-addon-api/test/async_worker.cc +0 -341
  215. package/vendor/node-addon-api/test/async_worker.js +0 -264
  216. package/vendor/node-addon-api/test/async_worker_nocallback.js +0 -19
  217. package/vendor/node-addon-api/test/async_worker_persistent.cc +0 -63
  218. package/vendor/node-addon-api/test/async_worker_persistent.js +0 -24
  219. package/vendor/node-addon-api/test/basic_types/array.cc +0 -40
  220. package/vendor/node-addon-api/test/basic_types/array.js +0 -34
  221. package/vendor/node-addon-api/test/basic_types/boolean.cc +0 -40
  222. package/vendor/node-addon-api/test/basic_types/boolean.js +0 -34
  223. package/vendor/node-addon-api/test/basic_types/number.cc +0 -105
  224. package/vendor/node-addon-api/test/basic_types/number.js +0 -115
  225. package/vendor/node-addon-api/test/basic_types/value.cc +0 -177
  226. package/vendor/node-addon-api/test/basic_types/value.js +0 -173
  227. package/vendor/node-addon-api/test/bigint.cc +0 -91
  228. package/vendor/node-addon-api/test/bigint.js +0 -53
  229. package/vendor/node-addon-api/test/binding-swallowexcept.cc +0 -12
  230. package/vendor/node-addon-api/test/binding.cc +0 -200
  231. package/vendor/node-addon-api/test/binding.gyp +0 -160
  232. package/vendor/node-addon-api/test/buffer.cc +0 -185
  233. package/vendor/node-addon-api/test/buffer.h +0 -26
  234. package/vendor/node-addon-api/test/buffer.js +0 -150
  235. package/vendor/node-addon-api/test/buffer_new_or_copy-inl.h +0 -68
  236. package/vendor/node-addon-api/test/buffer_no_external.cc +0 -24
  237. package/vendor/node-addon-api/test/callbackInfo.cc +0 -27
  238. package/vendor/node-addon-api/test/callbackInfo.js +0 -9
  239. package/vendor/node-addon-api/test/callbackscope.cc +0 -39
  240. package/vendor/node-addon-api/test/callbackscope.js +0 -49
  241. package/vendor/node-addon-api/test/child_processes/addon.js +0 -11
  242. package/vendor/node-addon-api/test/child_processes/addon_data.js +0 -24
  243. package/vendor/node-addon-api/test/child_processes/objectwrap_function.js +0 -22
  244. package/vendor/node-addon-api/test/child_processes/threadsafe_function_exception.js +0 -33
  245. package/vendor/node-addon-api/test/child_processes/typed_threadsafe_function_exception.js +0 -19
  246. package/vendor/node-addon-api/test/common/index.js +0 -246
  247. package/vendor/node-addon-api/test/common/test_helper.h +0 -71
  248. package/vendor/node-addon-api/test/dataview/dataview.cc +0 -48
  249. package/vendor/node-addon-api/test/dataview/dataview.js +0 -35
  250. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +0 -115
  251. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +0 -92
  252. package/vendor/node-addon-api/test/date.cc +0 -45
  253. package/vendor/node-addon-api/test/date.js +0 -18
  254. package/vendor/node-addon-api/test/env_cleanup.cc +0 -100
  255. package/vendor/node-addon-api/test/env_cleanup.js +0 -55
  256. package/vendor/node-addon-api/test/env_misc.cc +0 -25
  257. package/vendor/node-addon-api/test/env_misc.js +0 -12
  258. package/vendor/node-addon-api/test/error.cc +0 -436
  259. package/vendor/node-addon-api/test/error.js +0 -111
  260. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +0 -13
  261. package/vendor/node-addon-api/test/error_handling_for_primitives.js +0 -29
  262. package/vendor/node-addon-api/test/error_terminating_environment.js +0 -99
  263. package/vendor/node-addon-api/test/except_all.cc +0 -22
  264. package/vendor/node-addon-api/test/except_all.js +0 -14
  265. package/vendor/node-addon-api/test/exports.js +0 -19
  266. package/vendor/node-addon-api/test/external.cc +0 -85
  267. package/vendor/node-addon-api/test/external.js +0 -85
  268. package/vendor/node-addon-api/test/finalizer_order.cc +0 -152
  269. package/vendor/node-addon-api/test/finalizer_order.js +0 -98
  270. package/vendor/node-addon-api/test/function.cc +0 -338
  271. package/vendor/node-addon-api/test/function.js +0 -137
  272. package/vendor/node-addon-api/test/function_reference.cc +0 -204
  273. package/vendor/node-addon-api/test/function_reference.js +0 -157
  274. package/vendor/node-addon-api/test/globalObject/global_object.cc +0 -61
  275. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +0 -31
  276. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +0 -58
  277. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +0 -40
  278. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +0 -56
  279. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +0 -28
  280. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +0 -46
  281. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +0 -31
  282. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +0 -56
  283. package/vendor/node-addon-api/test/handlescope.cc +0 -86
  284. package/vendor/node-addon-api/test/handlescope.js +0 -16
  285. package/vendor/node-addon-api/test/index.js +0 -160
  286. package/vendor/node-addon-api/test/maybe/check.cc +0 -69
  287. package/vendor/node-addon-api/test/maybe/index.js +0 -50
  288. package/vendor/node-addon-api/test/memory_management.cc +0 -18
  289. package/vendor/node-addon-api/test/memory_management.js +0 -9
  290. package/vendor/node-addon-api/test/movable_callbacks.cc +0 -23
  291. package/vendor/node-addon-api/test/movable_callbacks.js +0 -21
  292. package/vendor/node-addon-api/test/name.cc +0 -110
  293. package/vendor/node-addon-api/test/name.js +0 -59
  294. package/vendor/node-addon-api/test/napi_child.js +0 -14
  295. package/vendor/node-addon-api/test/object/delete_property.cc +0 -38
  296. package/vendor/node-addon-api/test/object/delete_property.js +0 -41
  297. package/vendor/node-addon-api/test/object/finalizer.cc +0 -30
  298. package/vendor/node-addon-api/test/object/finalizer.js +0 -28
  299. package/vendor/node-addon-api/test/object/get_property.cc +0 -34
  300. package/vendor/node-addon-api/test/object/get_property.js +0 -40
  301. package/vendor/node-addon-api/test/object/has_own_property.cc +0 -34
  302. package/vendor/node-addon-api/test/object/has_own_property.js +0 -34
  303. package/vendor/node-addon-api/test/object/has_property.cc +0 -38
  304. package/vendor/node-addon-api/test/object/has_property.js +0 -37
  305. package/vendor/node-addon-api/test/object/object.cc +0 -430
  306. package/vendor/node-addon-api/test/object/object.js +0 -218
  307. package/vendor/node-addon-api/test/object/object_deprecated.cc +0 -70
  308. package/vendor/node-addon-api/test/object/object_deprecated.js +0 -42
  309. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +0 -25
  310. package/vendor/node-addon-api/test/object/object_freeze_seal.js +0 -61
  311. package/vendor/node-addon-api/test/object/set_property.cc +0 -45
  312. package/vendor/node-addon-api/test/object/set_property.js +0 -30
  313. package/vendor/node-addon-api/test/object/subscript_operator.cc +0 -58
  314. package/vendor/node-addon-api/test/object/subscript_operator.js +0 -17
  315. package/vendor/node-addon-api/test/object_reference.cc +0 -417
  316. package/vendor/node-addon-api/test/object_reference.js +0 -262
  317. package/vendor/node-addon-api/test/objectwrap.cc +0 -295
  318. package/vendor/node-addon-api/test/objectwrap.js +0 -309
  319. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +0 -26
  320. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +0 -18
  321. package/vendor/node-addon-api/test/objectwrap_function.cc +0 -43
  322. package/vendor/node-addon-api/test/objectwrap_function.js +0 -6
  323. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +0 -30
  324. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +0 -13
  325. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +0 -45
  326. package/vendor/node-addon-api/test/objectwrap_removewrap.js +0 -32
  327. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +0 -20
  328. package/vendor/node-addon-api/test/promise.cc +0 -111
  329. package/vendor/node-addon-api/test/promise.js +0 -43
  330. package/vendor/node-addon-api/test/reference.cc +0 -78
  331. package/vendor/node-addon-api/test/reference.js +0 -20
  332. package/vendor/node-addon-api/test/require_basic_finalizers/index.js +0 -38
  333. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +0 -12
  334. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +0 -48
  335. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +0 -3
  336. package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +0 -11
  337. package/vendor/node-addon-api/test/run_script.cc +0 -56
  338. package/vendor/node-addon-api/test/run_script.js +0 -45
  339. package/vendor/node-addon-api/test/symbol.cc +0 -79
  340. package/vendor/node-addon-api/test/symbol.js +0 -66
  341. package/vendor/node-addon-api/test/testUtil.js +0 -54
  342. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +0 -230
  343. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +0 -225
  344. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +0 -155
  345. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +0 -13
  346. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.cc +0 -50
  347. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_exception.js +0 -20
  348. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +0 -125
  349. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +0 -14
  350. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +0 -27
  351. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +0 -7
  352. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +0 -240
  353. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +0 -59
  354. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +0 -55
  355. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +0 -98
  356. package/vendor/node-addon-api/test/thunking_manual.cc +0 -127
  357. package/vendor/node-addon-api/test/thunking_manual.js +0 -16
  358. package/vendor/node-addon-api/test/type_taggable.cc +0 -66
  359. package/vendor/node-addon-api/test/type_taggable.js +0 -59
  360. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +0 -215
  361. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +0 -188
  362. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +0 -120
  363. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +0 -14
  364. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.cc +0 -39
  365. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_exception.js +0 -13
  366. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +0 -127
  367. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +0 -14
  368. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +0 -32
  369. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +0 -8
  370. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +0 -237
  371. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +0 -59
  372. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +0 -67
  373. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +0 -98
  374. package/vendor/node-addon-api/test/typedarray-bigint.js +0 -58
  375. package/vendor/node-addon-api/test/typedarray.cc +0 -413
  376. package/vendor/node-addon-api/test/typedarray.js +0 -103
  377. package/vendor/node-addon-api/test/value_type_cast.cc +0 -60
  378. package/vendor/node-addon-api/test/value_type_cast.js +0 -106
  379. package/vendor/node-addon-api/test/version_management.cc +0 -28
  380. package/vendor/node-addon-api/test/version_management.js +0 -29
  381. package/vendor/node-addon-api/tools/README.md +0 -73
  382. package/vendor/node-addon-api/tools/check-napi.js +0 -99
  383. package/vendor/node-addon-api/tools/clang-format.js +0 -71
  384. package/vendor/node-addon-api/tools/conversion.js +0 -301
  385. package/vendor/node-addon-api/unit-test/README.md +0 -28
  386. package/vendor/node-addon-api/unit-test/binding-file-template.js +0 -39
  387. package/vendor/node-addon-api/unit-test/binding.gyp +0 -72
  388. package/vendor/node-addon-api/unit-test/exceptions.js +0 -32
  389. package/vendor/node-addon-api/unit-test/generate-binding-cc.js +0 -61
  390. package/vendor/node-addon-api/unit-test/injectTestParams.js +0 -101
  391. package/vendor/node-addon-api/unit-test/listOfTestModules.js +0 -88
  392. package/vendor/node-addon-api/unit-test/matchModules.js +0 -65
  393. package/vendor/node-addon-api/unit-test/setup.js +0 -13
  394. package/vendor/node-addon-api/unit-test/spawnTask.js +0 -26
  395. package/vendor/node-addon-api/unit-test/test.js +0 -30
  396. package/vendor/node-api-headers/CHANGELOG.md +0 -130
  397. package/vendor/node-api-headers/CODE_OF_CONDUCT.md +0 -4
  398. package/vendor/node-api-headers/CONTRIBUTING.md +0 -32
  399. package/vendor/node-api-headers/CREATING_A_RELEASE.md +0 -68
  400. package/vendor/node-api-headers/index.js +0 -17
  401. package/vendor/node-api-headers/lib/clang-utils.js +0 -50
  402. package/vendor/node-api-headers/lib/parse-utils.js +0 -92
  403. package/vendor/node-api-headers/package.json +0 -59
  404. package/vendor/node-api-headers/release-please-config.json +0 -12
  405. package/vendor/node-api-headers/scripts/update-headers.js +0 -246
  406. package/vendor/node-api-headers/scripts/write-symbols.js +0 -154
  407. package/vendor/node-api-headers/scripts/write-win32-def.js +0 -52
  408. package/vendor/node-api-headers/symbols.js +0 -257
  409. package/vendor/node-api-headers/test/parse-utils.js +0 -21
  410. /package/doc/{pages/benchmarks.md → benchmarks.md} +0 -0
  411. /package/doc/{pages/callbacks.md → callbacks.md} +0 -0
  412. /package/doc/{pages/contribute.md → contribute.md} +0 -0
  413. /package/doc/{pages/functions.md → functions.md} +0 -0
  414. /package/doc/{pages/index.md → index.md} +0 -0
  415. /package/doc/{pages/input.md → input.md} +0 -0
  416. /package/doc/{pages/migration.md → migration.md} +0 -0
  417. /package/doc/{pages/misc.md → misc.md} +0 -0
  418. /package/doc/{pages/output.md → output.md} +0 -0
  419. /package/doc/{pages/packaging.md → packaging.md} +0 -0
  420. /package/doc/{pages/platforms.md → platforms.md} +0 -0
  421. /package/doc/{pages/pointers.md → pointers.md} +0 -0
  422. /package/doc/{pages/start.md → start.md} +0 -0
  423. /package/doc/{pages/unions.md → unions.md} +0 -0
  424. /package/doc/{pages/variables.md → variables.md} +0 -0
  425. /package/src/koffi/src/{abi/loong64.cc → abi_loong64.cc} +0 -0
@@ -1,290 +0,0 @@
1
- # ThreadSafeFunction
2
-
3
- The `Napi::ThreadSafeFunction` type provides APIs for threads to communicate
4
- with the addon's main thread to invoke JavaScript functions on their behalf.
5
- Documentation can be found for an [overview of the API](threadsafe.md), as well
6
- as [differences between the two thread-safe function
7
- APIs](threadsafe.md#implementation-differences).
8
-
9
- ## Methods
10
-
11
- ### Constructor
12
-
13
- Creates a new empty instance of `Napi::ThreadSafeFunction`.
14
-
15
- ```cpp
16
- Napi::Function::ThreadSafeFunction();
17
- ```
18
-
19
- ### Constructor
20
-
21
- Creates a new instance of the `Napi::ThreadSafeFunction` object.
22
-
23
- ```cpp
24
- Napi::ThreadSafeFunction::ThreadSafeFunction(napi_threadsafe_function tsfn);
25
- ```
26
-
27
- - `tsfn`: The `napi_threadsafe_function` which is a handle for an existing
28
- thread-safe function.
29
-
30
- Returns a non-empty `Napi::ThreadSafeFunction` instance. When using this
31
- constructor, only use the `Blocking(void*)` / `NonBlocking(void*)` overloads;
32
- the `Callback` and templated `data*` overloads should _not_ be used. See below
33
- for additional details.
34
-
35
- ### New
36
-
37
- Creates a new instance of the `Napi::ThreadSafeFunction` object. The `New`
38
- function has several overloads for the various optional parameters: skip the
39
- optional parameter for that specific overload.
40
-
41
- ```cpp
42
- New(napi_env env,
43
- const Function& callback,
44
- const Object& resource,
45
- ResourceString resourceName,
46
- size_t maxQueueSize,
47
- size_t initialThreadCount,
48
- ContextType* context,
49
- Finalizer finalizeCallback,
50
- FinalizerDataType* data);
51
- ```
52
-
53
- - `env`: The `napi_env` environment in which to construct the
54
- `Napi::ThreadSafeFunction` object.
55
- - `callback`: The `Function` to call from another thread.
56
- - `[optional] resource`: An object associated with the async work that will be
57
- passed to possible async_hooks init hooks.
58
- - `resourceName`: A JavaScript string to provide an identifier for the kind of
59
- resource that is being provided for diagnostic information exposed by the
60
- async_hooks API.
61
- - `maxQueueSize`: Maximum size of the queue. `0` for no limit.
62
- - `initialThreadCount`: The initial number of threads, including the main
63
- thread, which will be making use of this function.
64
- - `[optional] context`: Data to attach to the resulting `ThreadSafeFunction`. It
65
- can be retreived by calling `GetContext()`.
66
- - `[optional] finalizeCallback`: Function to call when the `ThreadSafeFunction`
67
- is being destroyed. This callback will be invoked on the main thread when the
68
- thread-safe function is about to be destroyed. It receives the context and the
69
- finalize data given during construction (if given), and provides an
70
- opportunity for cleaning up after the threads e.g. by calling
71
- `uv_thread_join()`. It is important that, aside from the main loop thread,
72
- there be no threads left using the thread-safe function after the finalize
73
- callback completes. Must implement `void operator()(Env env, DataType* data,
74
- ContextType* hint)`, skipping `data` or `hint` if they are not provided. Can
75
- be retrieved via `GetContext()`.
76
- - `[optional] data`: Data to be passed to `finalizeCallback`.
77
-
78
- Returns a non-empty `Napi::ThreadSafeFunction` instance.
79
-
80
- ### Acquire
81
-
82
- Add a thread to this thread-safe function object, indicating that a new thread
83
- will start making use of the thread-safe function.
84
-
85
- ```cpp
86
- napi_status Napi::ThreadSafeFunction::Acquire() const
87
- ```
88
-
89
- Returns one of:
90
- - `napi_ok`: The thread has successfully acquired the thread-safe function
91
- for its use.
92
- - `napi_closing`: The thread-safe function has been marked as closing via a
93
- previous call to `Abort()`.
94
-
95
- ### Release
96
-
97
- Indicate that an existing thread will stop making use of the thread-safe
98
- function. A thread should call this API when it stops making use of this
99
- thread-safe function. Using any thread-safe APIs after having called this API
100
- has undefined results in the current thread, as it may have been destroyed.
101
-
102
- ```cpp
103
- napi_status Napi::ThreadSafeFunction::Release() const
104
- ```
105
-
106
- Returns one of:
107
- - `napi_ok`: The thread-safe function has been successfully released.
108
- - `napi_invalid_arg`: The thread-safe function's thread-count is zero.
109
- - `napi_generic_failure`: A generic error occurred when attempting to release
110
- the thread-safe function.
111
-
112
- ### Abort
113
-
114
- "Abort" the thread-safe function. This will cause all subsequent APIs associated
115
- with the thread-safe function except `Release()` to return `napi_closing` even
116
- before its reference count reaches zero. In particular, `BlockingCall` and
117
- `NonBlockingCall()` will return `napi_closing`, thus informing the threads that
118
- it is no longer possible to make asynchronous calls to the thread-safe function.
119
- This can be used as a criterion for terminating the thread. Upon receiving a
120
- return value of `napi_closing` from a thread-safe function call a thread must
121
- make no further use of the thread-safe function because it is no longer
122
- guaranteed to be allocated.
123
-
124
- ```cpp
125
- napi_status Napi::ThreadSafeFunction::Abort() const
126
- ```
127
-
128
- Returns one of:
129
- - `napi_ok`: The thread-safe function has been successfully aborted.
130
- - `napi_invalid_arg`: The thread-safe function's thread-count is zero.
131
- - `napi_generic_failure`: A generic error occurred when attempting to abort
132
- the thread-safe function.
133
-
134
- ### BlockingCall / NonBlockingCall
135
-
136
- Calls the Javascript function in either a blocking or non-blocking fashion.
137
- - `BlockingCall()`: the API blocks until space becomes available in the queue.
138
- Will never block if the thread-safe function was created with a maximum queue
139
- size of `0`.
140
- - `NonBlockingCall()`: will return `napi_queue_full` if the queue was full,
141
- preventing data from being successfully added to the queue.
142
-
143
- There are several overloaded implementations of `BlockingCall()` and
144
- `NonBlockingCall()` for use with optional parameters: skip the optional
145
- parameter for that specific overload.
146
-
147
- **These specific function overloads should only be used on a `ThreadSafeFunction`
148
- created via `ThreadSafeFunction::New`.**
149
-
150
- ```cpp
151
- napi_status Napi::ThreadSafeFunction::BlockingCall(DataType* data, Callback callback) const
152
-
153
- napi_status Napi::ThreadSafeFunction::NonBlockingCall(DataType* data, Callback callback) const
154
- ```
155
-
156
- - `[optional] data`: Data to pass to `callback`.
157
- - `[optional] callback`: C++ function that is invoked on the main thread. The
158
- callback receives the `ThreadSafeFunction`'s JavaScript callback function to
159
- call as an `Napi::Function` in its parameters and the `DataType*` data pointer
160
- (if provided). Must implement `void operator()(Napi::Env env, Function
161
- jsCallback, DataType* data)`, skipping `data` if not provided. It is not
162
- necessary to call into JavaScript via `MakeCallback()` because Node-API runs
163
- `callback` in a context appropriate for callbacks.
164
-
165
- **These specific function overloads should only be used on a `ThreadSafeFunction`
166
- created via `ThreadSafeFunction(napi_threadsafe_function)`.**
167
-
168
- ```cpp
169
- napi_status Napi::ThreadSafeFunction::BlockingCall(void* data) const
170
-
171
- napi_status Napi::ThreadSafeFunction::NonBlockingCall(void* data) const
172
- ```
173
- - `data`: Data to pass to `call_js_cb` specified when creating the thread-safe
174
- function via `napi_create_threadsafe_function`.
175
-
176
- Returns one of:
177
- - `napi_ok`: The call was successfully added to the queue.
178
- - `napi_queue_full`: The queue was full when trying to call in a non-blocking
179
- method.
180
- - `napi_closing`: The thread-safe function is aborted and cannot accept more
181
- calls.
182
- - `napi_invalid_arg`: The thread-safe function is closed.
183
- - `napi_generic_failure`: A generic error occurred when attempting to add to the
184
- queue.
185
-
186
- ## Example
187
-
188
- ```cpp
189
- #include <chrono>
190
- #include <thread>
191
- #include <napi.h>
192
-
193
- using namespace Napi;
194
-
195
- std::thread nativeThread;
196
- ThreadSafeFunction tsfn;
197
-
198
- Value Start( const CallbackInfo& info )
199
- {
200
- Napi::Env env = info.Env();
201
-
202
- if ( info.Length() < 2 )
203
- {
204
- throw TypeError::New( env, "Expected two arguments" );
205
- }
206
- else if ( !info[0].IsFunction() )
207
- {
208
- throw TypeError::New( env, "Expected first arg to be function" );
209
- }
210
- else if ( !info[1].IsNumber() )
211
- {
212
- throw TypeError::New( env, "Expected second arg to be number" );
213
- }
214
-
215
- int count = info[1].As<Number>().Int32Value();
216
-
217
- // Create a ThreadSafeFunction
218
- tsfn = ThreadSafeFunction::New(
219
- env,
220
- info[0].As<Function>(), // JavaScript function called asynchronously
221
- "Resource Name", // Name
222
- 0, // Unlimited queue
223
- 1, // Only one thread will use this initially
224
- []( Napi::Env ) { // Finalizer used to clean threads up
225
- nativeThread.join();
226
- } );
227
-
228
- // Create a native thread
229
- nativeThread = std::thread( [count] {
230
- auto callback = []( Napi::Env env, Function jsCallback, int* value ) {
231
- // Transform native data into JS data, passing it to the provided
232
- // `jsCallback` -- the TSFN's JavaScript function.
233
- jsCallback.Call( {Number::New( env, *value )} );
234
-
235
- // We're finished with the data.
236
- delete value;
237
- };
238
-
239
- for ( int i = 0; i < count; i++ )
240
- {
241
- // Create new data
242
- int* value = new int( clock() );
243
-
244
- // Perform a blocking call
245
- napi_status status = tsfn.BlockingCall( value, callback );
246
- if ( status != napi_ok )
247
- {
248
- // Handle error
249
- break;
250
- }
251
-
252
- std::this_thread::sleep_for( std::chrono::seconds( 1 ) );
253
- }
254
-
255
- // Release the thread-safe function
256
- tsfn.Release();
257
- } );
258
-
259
- return Boolean::New(env, true);
260
- }
261
-
262
- Napi::Object Init( Napi::Env env, Object exports )
263
- {
264
- exports.Set( "start", Function::New( env, Start ) );
265
- return exports;
266
- }
267
-
268
- NODE_API_MODULE( clock, Init )
269
- ```
270
-
271
- The above code can be used from JavaScript as follows:
272
-
273
- ```js
274
- const { start } = require('bindings')('clock');
275
-
276
- start(function () {
277
- console.log("JavaScript callback called with arguments", Array.from(arguments));
278
- }, 5);
279
- ```
280
-
281
- When executed, the output will show the value of `clock()` five times at one
282
- second intervals:
283
-
284
- ```
285
- JavaScript callback called with arguments [ 84745 ]
286
- JavaScript callback called with arguments [ 103211 ]
287
- JavaScript callback called with arguments [ 104516 ]
288
- JavaScript callback called with arguments [ 105104 ]
289
- JavaScript callback called with arguments [ 105691 ]
290
- ```
@@ -1,59 +0,0 @@
1
- # TypeError
2
-
3
- The `Napi::TypeError` class is a representation of the JavaScript `TypeError` that is
4
- thrown when an operand or argument passed to a function is incompatible with the
5
- type expected by the operator or function.
6
-
7
- The `Napi::TypeError` class inherits its behaviors from the `Napi::Error` class (for more info
8
- 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 the `Napi::TypeError` object.
17
-
18
- ```cpp
19
- Napi::TypeError::New(Napi::Env env, const char* message);
20
- ```
21
-
22
- - `[in] Env`: The environment in which to construct the `Napi::TypeError` object.
23
- - `[in] message`: Null-terminated string to be used as the message for the `Napi::TypeError`.
24
-
25
- Returns an instance of a `Napi::TypeError` object.
26
-
27
- ### New
28
-
29
- Creates a new instance of a `Napi::TypeError` object.
30
-
31
- ```cpp
32
- Napi::TypeError::New(Napi::Env env, const std::string& message);
33
- ```
34
-
35
- - `[in] Env`: The environment in which to construct the `Napi::TypeError` object.
36
- - `[in] message`: Reference string to be used as the message for the `Napi::TypeError`.
37
-
38
- Returns an instance of a `Napi::TypeError` object.
39
-
40
- ### Constructor
41
-
42
- Creates a new empty instance of a `Napi::TypeError`.
43
-
44
- ```cpp
45
- Napi::TypeError::TypeError();
46
- ```
47
-
48
- ### Constructor
49
-
50
- Initializes a `Napi::TypeError` instance from an existing JavaScript error object.
51
-
52
- ```cpp
53
- Napi::TypeError::TypeError(napi_env env, napi_value value);
54
- ```
55
-
56
- - `[in] Env`: The environment in which to construct the `Napi::TypeError` object.
57
- - `[in] value`: The `Napi::Error` reference to wrap.
58
-
59
- Returns an instance of a `Napi::TypeError` object.
@@ -1,40 +0,0 @@
1
- # TypeTaggable
2
-
3
- Class `Napi::TypeTaggable` inherits from class [`Napi::Value`][].
4
-
5
- The `Napi::TypeTaggable` class is the base class for [`Napi::Object`][] and
6
- [`Napi::External`][]. It adds type-tagging capabilities to both. It is an
7
- abstract-only base class.
8
-
9
- ### TypeTag()
10
-
11
- ```cpp
12
- void Napi::TypeTaggable::TypeTag(const napi_type_tag* type_tag) const;
13
- ```
14
-
15
- - `[in] type_tag`: The tag with which this object or external is to be marked.
16
-
17
- The `Napi::TypeTaggable::TypeTag()` method associates the value of the
18
- `type_tag` pointer with this JavaScript object or external.
19
- `Napi::TypeTaggable::CheckTypeTag()` can then be used to compare the tag that
20
- was attached with one owned by the add-on to ensure that this object or external
21
- has the right type.
22
-
23
- ### CheckTypeTag()
24
-
25
- ```cpp
26
- bool Napi::TypeTaggable::CheckTypeTag(const napi_type_tag* type_tag) const;
27
- ```
28
-
29
- - `[in] type_tag`: The tag with which to compare any tag found on this object or
30
- external.
31
-
32
- The `Napi::TypeTaggable::CheckTypeTag()` method compares the pointer given as
33
- `type_tag` with any that can be found on this JavaScript object or external. If
34
- no tag is found or if a tag is found but it does not match `type_tag`, then the
35
- return value is `false`. If a tag is found and it matches `type_tag`, then the
36
- return value is `true`.
37
-
38
- [`Napi::Value`]: ./value.md
39
- [`Napi::Object`]: ./object.md
40
- [`Napi::External`]: ./external.md
@@ -1,78 +0,0 @@
1
- # TypedArray
2
-
3
- Class `Napi::TypedArray` inherits from class [`Napi::Object`][].
4
-
5
- The `Napi::TypedArray` class corresponds to the
6
- [JavaScript `TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray)
7
- class.
8
-
9
- ## Methods
10
-
11
- ### Constructor
12
-
13
- Initializes an empty instance of the `Napi::TypedArray` class.
14
-
15
- ```cpp
16
- Napi::TypedArray::TypedArray();
17
- ```
18
-
19
- ### Constructor
20
-
21
- Initializes a wrapper instance of an existing `Napi::TypedArray` instance.
22
-
23
- ```cpp
24
- Napi::TypedArray::TypedArray(napi_env env, napi_value value);
25
- ```
26
-
27
- - `[in] env`: The environment in which to create the `Napi::TypedArray` instance.
28
- - `[in] value`: The `Napi::TypedArray` reference to wrap.
29
-
30
- ### TypedArrayType
31
-
32
- ```cpp
33
- napi_typedarray_type Napi::TypedArray::TypedArrayType() const;
34
- ```
35
-
36
- Returns the type of this instance.
37
-
38
- ### ArrayBuffer
39
-
40
- ```cpp
41
- Napi::ArrayBuffer Napi::TypedArray::ArrayBuffer() const;
42
- ```
43
-
44
- Returns the backing array buffer.
45
-
46
- ### ElementSize
47
-
48
- ```cpp
49
- uint8_t Napi::TypedArray::ElementSize() const;
50
- ```
51
-
52
- Returns the size of one element, in bytes.
53
-
54
- ### ElementLength
55
-
56
- ```cpp
57
- size_t Napi::TypedArray::ElementLength() const;
58
- ```
59
-
60
- Returns the number of elements.
61
-
62
- ### ByteOffset
63
-
64
- ```cpp
65
- size_t Napi::TypedArray::ByteOffset() const;
66
- ```
67
-
68
- Returns the offset into the `Napi::ArrayBuffer` where the array starts, in bytes.
69
-
70
- ### ByteLength
71
-
72
- ```cpp
73
- size_t Napi::TypedArray::ByteLength() const;
74
- ```
75
-
76
- Returns the length of the array, in bytes.
77
-
78
- [`Napi::Object`]: ./object.md
@@ -1,137 +0,0 @@
1
- # TypedArrayOf
2
-
3
- Class `Napi::TypedArrayOf<T>` inherits from class [`Napi::TypedArray`][].
4
-
5
- The `Napi::TypedArrayOf` class corresponds to the various
6
- [JavaScript `TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray)
7
- classes.
8
-
9
- ## Typedefs
10
-
11
- The common JavaScript `TypedArray` types are pre-defined for each of use:
12
-
13
- ```cpp
14
- using Int8Array = Napi::TypedArrayOf<int8_t>;
15
- using Uint8Array = Napi::TypedArrayOf<uint8_t>;
16
- using Int16Array = Napi::TypedArrayOf<int16_t>;
17
- using Uint16Array = Napi::TypedArrayOf<uint16_t>;
18
- using Int32Array = Napi::TypedArrayOf<int32_t>;
19
- using Uint32Array = Napi::TypedArrayOf<uint32_t>;
20
- using Float32Array = Napi::TypedArrayOf<float>;
21
- using Float64Array = Napi::TypedArrayOf<double>;
22
- ```
23
-
24
- The one exception is the `Uint8ClampedArray` which requires explicit
25
- initialization:
26
-
27
- ```cpp
28
- Uint8Array::New(env, length, napi_uint8_clamped_array)
29
- ```
30
-
31
- Note that while it's possible to create a "clamped" array the _clamping_
32
- behavior is only applied in JavaScript.
33
-
34
- ## Methods
35
-
36
- ### New
37
-
38
- Allocates a new `Napi::TypedArray` instance with a given length. The underlying
39
- `Napi::ArrayBuffer` is allocated automatically to the desired number of elements.
40
-
41
- The array type parameter can normally be omitted (because it is inferred from
42
- the template parameter T), except when creating a "clamped" array.
43
-
44
- ```cpp
45
- static Napi::TypedArrayOf Napi::TypedArrayOf::New(napi_env env,
46
- size_t elementLength,
47
- napi_typedarray_type type);
48
- ```
49
-
50
- - `[in] env`: The environment in which to create the `Napi::TypedArrayOf` instance.
51
- - `[in] elementLength`: The length to be allocated, in elements.
52
- - `[in] type`: The type of array to allocate (optional).
53
-
54
- Returns a new `Napi::TypedArrayOf` instance.
55
-
56
- ### New
57
-
58
- Wraps the provided `Napi::ArrayBuffer` into a new `Napi::TypedArray` instance.
59
-
60
- The array `type` parameter can normally be omitted (because it is inferred from
61
- the template parameter `T`), except when creating a "clamped" array.
62
-
63
- ```cpp
64
- static Napi::TypedArrayOf Napi::TypedArrayOf::New(napi_env env,
65
- size_t elementLength,
66
- Napi::ArrayBuffer arrayBuffer,
67
- size_t bufferOffset,
68
- napi_typedarray_type type);
69
- ```
70
-
71
- - `[in] env`: The environment in which to create the `Napi::TypedArrayOf` instance.
72
- - `[in] elementLength`: The length to array, in elements.
73
- - `[in] arrayBuffer`: The backing `Napi::ArrayBuffer` instance.
74
- - `[in] bufferOffset`: The offset into the `Napi::ArrayBuffer` where the array starts,
75
- in bytes.
76
- - `[in] type`: The type of array to allocate (optional).
77
-
78
- Returns a new `Napi::TypedArrayOf` instance.
79
-
80
- ### Constructor
81
-
82
- Initializes an empty instance of the `Napi::TypedArrayOf` class.
83
-
84
- ```cpp
85
- Napi::TypedArrayOf::TypedArrayOf();
86
- ```
87
-
88
- ### Constructor
89
-
90
- Initializes a wrapper instance of an existing `Napi::TypedArrayOf` object.
91
-
92
- ```cpp
93
- Napi::TypedArrayOf::TypedArrayOf(napi_env env, napi_value value);
94
- ```
95
-
96
- - `[in] env`: The environment in which to create the `Napi::TypedArrayOf` object.
97
- - `[in] value`: The `Napi::TypedArrayOf` reference to wrap.
98
-
99
- ### operator []
100
-
101
- ```cpp
102
- T& Napi::TypedArrayOf::operator [](size_t index);
103
- ```
104
-
105
- - `[in] index: The element index into the array.
106
-
107
- Returns the element found at the given index.
108
-
109
- ### operator []
110
-
111
- ```cpp
112
- const T& Napi::TypedArrayOf::operator [](size_t index) const;
113
- ```
114
-
115
- - `[in] index: The element index into the array.
116
-
117
- Returns the element found at the given index.
118
-
119
- ### Data
120
-
121
- ```cpp
122
- T* Napi::TypedArrayOf::Data() const;
123
- ```
124
-
125
- Returns a pointer into the backing `Napi::ArrayBuffer` which is offset to point to the
126
- start of the array.
127
-
128
- ### Data
129
-
130
- ```cpp
131
- const T* Napi::TypedArrayOf::Data() const
132
- ```
133
-
134
- Returns a pointer into the backing `Napi::ArrayBuffer` which is offset to point to the
135
- start of the array.
136
-
137
- [`Napi::TypedArray`]: ./typed_array.md