koffi 2.16.0-beta.2 → 2.16.0

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 +59 -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 -238
  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 -274
  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 -236
  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 -212
  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 -206
  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 -226
  51. package/src/koffi/src/{abi/x86_asm.S → abi_x86_asm.S} +36 -21
  52. package/src/koffi/src/{abi/x86_asm.asm → abi_x86_asm.asm} +31 -16
  53. package/src/koffi/src/call.cc +473 -287
  54. package/src/koffi/src/call.hh +15 -18
  55. package/src/koffi/src/ffi.cc +167 -183
  56. package/src/koffi/src/ffi.hh +59 -13
  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,188 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
- const common = require('../common');
5
-
6
- module.exports = common.runTest(test);
7
-
8
- async function test (binding) {
9
- const expectedArray = (function (arrayLength) {
10
- const result = [];
11
- for (let index = 0; index < arrayLength; index++) {
12
- result.push(arrayLength - 1 - index);
13
- }
14
- return result;
15
- })(binding.typed_threadsafe_function.ARRAY_LENGTH);
16
-
17
- function testWithJSMarshaller ({
18
- threadStarter,
19
- quitAfter,
20
- abort,
21
- maxQueueSize,
22
- launchSecondary
23
- }) {
24
- return new Promise((resolve) => {
25
- const array = [];
26
- binding.typed_threadsafe_function[threadStarter](function testCallback (value) {
27
- array.push(value);
28
- if (array.length === quitAfter) {
29
- binding.typed_threadsafe_function.stopThread(common.mustCall(() => {
30
- resolve(array);
31
- }), !!abort);
32
- }
33
- }, !!abort, !!launchSecondary, maxQueueSize);
34
- if (threadStarter === 'startThreadNonblocking') {
35
- // Let's make this thread really busy for a short while to ensure that
36
- // the queue fills and the thread receives a napi_queue_full.
37
- const start = Date.now();
38
- while (Date.now() - start < 200);
39
- }
40
- });
41
- }
42
-
43
- await new Promise(function testWithoutJSMarshaller (resolve) {
44
- let callCount = 0;
45
- binding.typed_threadsafe_function.startThreadNoNative(function testCallback () {
46
- callCount++;
47
-
48
- // The default call-into-JS implementation passes no arguments.
49
- assert.strictEqual(arguments.length, 0);
50
- if (callCount === binding.typed_threadsafe_function.ARRAY_LENGTH) {
51
- setImmediate(() => {
52
- binding.typed_threadsafe_function.stopThread(common.mustCall(() => {
53
- resolve();
54
- }), false);
55
- });
56
- }
57
- }, false /* abort */, false /* launchSecondary */,
58
- binding.typed_threadsafe_function.MAX_QUEUE_SIZE);
59
- });
60
-
61
- // Start the thread in blocking mode, and assert that all values are passed.
62
- // Quit after it's done.
63
- assert.deepStrictEqual(
64
- await testWithJSMarshaller({
65
- threadStarter: 'startThread',
66
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
67
- quitAfter: binding.typed_threadsafe_function.ARRAY_LENGTH
68
- }),
69
- expectedArray
70
- );
71
-
72
- // Start the thread in blocking mode with an infinite queue, and assert that
73
- // all values are passed. Quit after it's done.
74
- assert.deepStrictEqual(
75
- await testWithJSMarshaller({
76
- threadStarter: 'startThread',
77
- maxQueueSize: 0,
78
- quitAfter: binding.typed_threadsafe_function.ARRAY_LENGTH
79
- }),
80
- expectedArray
81
- );
82
-
83
- // Start the thread in non-blocking mode, and assert that all values are
84
- // passed. Quit after it's done.
85
- assert.deepStrictEqual(
86
- await testWithJSMarshaller({
87
- threadStarter: 'startThreadNonblocking',
88
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
89
- quitAfter: binding.typed_threadsafe_function.ARRAY_LENGTH
90
- }),
91
- expectedArray
92
- );
93
-
94
- // Start the thread in blocking mode, and assert that all values are passed.
95
- // Quit early, but let the thread finish.
96
- assert.deepStrictEqual(
97
- await testWithJSMarshaller({
98
- threadStarter: 'startThread',
99
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
100
- quitAfter: 1
101
- }),
102
- expectedArray
103
- );
104
-
105
- // Start the thread in blocking mode with an infinite queue, and assert that
106
- // all values are passed. Quit early, but let the thread finish.
107
- assert.deepStrictEqual(
108
- await testWithJSMarshaller({
109
- threadStarter: 'startThread',
110
- maxQueueSize: 0,
111
- quitAfter: 1
112
- }),
113
- expectedArray
114
- );
115
-
116
- // Start the thread in non-blocking mode, and assert that all values are
117
- // passed. Quit early, but let the thread finish.
118
- assert.deepStrictEqual(
119
- await testWithJSMarshaller({
120
- threadStarter: 'startThreadNonblocking',
121
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
122
- quitAfter: 1
123
- }),
124
- expectedArray
125
- );
126
-
127
- // Start the thread in blocking mode, and assert that all values are passed.
128
- // Quit early, but let the thread finish. Launch a secondary thread to test
129
- // the reference counter incrementing functionality.
130
- assert.deepStrictEqual(
131
- await testWithJSMarshaller({
132
- threadStarter: 'startThread',
133
- quitAfter: 1,
134
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
135
- launchSecondary: true
136
- }),
137
- expectedArray
138
- );
139
-
140
- // Start the thread in non-blocking mode, and assert that all values are
141
- // passed. Quit early, but let the thread finish. Launch a secondary thread
142
- // to test the reference counter incrementing functionality.
143
- assert.deepStrictEqual(
144
- await testWithJSMarshaller({
145
- threadStarter: 'startThreadNonblocking',
146
- quitAfter: 1,
147
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
148
- launchSecondary: true
149
- }),
150
- expectedArray
151
- );
152
-
153
- // Start the thread in blocking mode, and assert that it could not finish.
154
- // Quit early by aborting.
155
- assert.strictEqual(
156
- (await testWithJSMarshaller({
157
- threadStarter: 'startThread',
158
- quitAfter: 1,
159
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
160
- abort: true
161
- })).indexOf(0),
162
- -1
163
- );
164
-
165
- // Start the thread in blocking mode with an infinite queue, and assert that
166
- // it could not finish. Quit early by aborting.
167
- assert.strictEqual(
168
- (await testWithJSMarshaller({
169
- threadStarter: 'startThread',
170
- quitAfter: 1,
171
- maxQueueSize: 0,
172
- abort: true
173
- })).indexOf(0),
174
- -1
175
- );
176
-
177
- // Start the thread in non-blocking mode, and assert that it could not finish.
178
- // Quit early and aborting.
179
- assert.strictEqual(
180
- (await testWithJSMarshaller({
181
- threadStarter: 'startThreadNonblocking',
182
- quitAfter: 1,
183
- maxQueueSize: binding.typed_threadsafe_function.MAX_QUEUE_SIZE,
184
- abort: true
185
- })).indexOf(0),
186
- -1
187
- );
188
- }
@@ -1,120 +0,0 @@
1
- #include <assert.h>
2
- #include "napi.h"
3
-
4
- #if (NAPI_VERSION > 3)
5
-
6
- using namespace Napi;
7
-
8
- using ContextType = Reference<Napi::Value>;
9
- using TSFN = TypedThreadSafeFunction<ContextType>;
10
-
11
- namespace {
12
-
13
- class TSFNWrap : public ObjectWrap<TSFNWrap> {
14
- public:
15
- static Function Init(Napi::Env env);
16
- TSFNWrap(const CallbackInfo& info);
17
-
18
- Napi::Value GetContext(const CallbackInfo& /*info*/) {
19
- ContextType* ctx = _tsfn.GetContext();
20
- return ctx->Value();
21
- };
22
-
23
- Napi::Value Release(const CallbackInfo& info) {
24
- Napi::Env env = info.Env();
25
- _deferred = std::unique_ptr<Promise::Deferred>(new Promise::Deferred(env));
26
- _tsfn.Release();
27
- return _deferred->Promise();
28
- };
29
-
30
- private:
31
- TSFN _tsfn;
32
- std::unique_ptr<Promise::Deferred> _deferred;
33
- };
34
-
35
- Function TSFNWrap::Init(Napi::Env env) {
36
- Function func =
37
- DefineClass(env,
38
- "TSFNWrap",
39
- {InstanceMethod("getContext", &TSFNWrap::GetContext),
40
- InstanceMethod("release", &TSFNWrap::Release)});
41
-
42
- return func;
43
- }
44
-
45
- TSFNWrap::TSFNWrap(const CallbackInfo& info) : ObjectWrap<TSFNWrap>(info) {
46
- ContextType* _ctx = new ContextType;
47
- *_ctx = Persistent(info[0]);
48
-
49
- _tsfn = TSFN::New(info.Env(),
50
- this->Value(),
51
- "Test",
52
- 1,
53
- 1,
54
- _ctx,
55
- [this](Napi::Env env, void*, ContextType* ctx) {
56
- _deferred->Resolve(env.Undefined());
57
- ctx->Reset();
58
- delete ctx;
59
- });
60
- }
61
-
62
- } // namespace
63
-
64
- struct SimpleTestContext {
65
- SimpleTestContext(int val) : _val(val) {}
66
- int _val = -1;
67
- };
68
-
69
- // A simple test to check that the context has been set successfully
70
- void AssertGetContextFromTSFNNoFinalizerIsCorrect(const CallbackInfo& info) {
71
- // Test the overload where we provide a resource name but no finalizer
72
- using TSFN = TypedThreadSafeFunction<SimpleTestContext>;
73
- SimpleTestContext* ctx = new SimpleTestContext(42);
74
- TSFN tsfn = TSFN::New(info.Env(), "testRes", 1, 1, ctx);
75
-
76
- assert(tsfn.GetContext() == ctx);
77
- delete ctx;
78
- tsfn.Release();
79
-
80
- // Test the other overload where we provide a async resource object, res name
81
- // but no finalizer
82
- ctx = new SimpleTestContext(52);
83
- tsfn = TSFN::New(
84
- info.Env(), Object::New(info.Env()), "testResourceObject", 1, 1, ctx);
85
-
86
- assert(tsfn.GetContext() == ctx);
87
- delete ctx;
88
- tsfn.Release();
89
-
90
- ctx = new SimpleTestContext(52);
91
- tsfn = TSFN::New(info.Env(),
92
- "resStrings",
93
- 1,
94
- 1,
95
- ctx,
96
- [](Napi::Env, void*, SimpleTestContext*) {});
97
-
98
- assert(tsfn.GetContext() == ctx);
99
- delete ctx;
100
- tsfn.Release();
101
-
102
- ctx = new SimpleTestContext(52);
103
- Function emptyFunc;
104
- tsfn = TSFN::New(info.Env(), emptyFunc, "resString", 1, 1, ctx);
105
- assert(tsfn.GetContext() == ctx);
106
- delete ctx;
107
- tsfn.Release();
108
- }
109
-
110
- Object InitTypedThreadSafeFunctionCtx(Env env) {
111
- Object exports = Object::New(env);
112
- Function tsfnWrap = TSFNWrap::Init(env);
113
-
114
- exports.Set("TSFNWrap", tsfnWrap);
115
- exports.Set("AssertTSFNReturnCorrectCxt",
116
- Function::New(env, AssertGetContextFromTSFNNoFinalizerIsCorrect));
117
- return exports;
118
- }
119
-
120
- #endif
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
-
5
- module.exports = require('../common').runTest(test);
6
-
7
- async function test (binding) {
8
- const ctx = { };
9
- const tsfn = new binding.typed_threadsafe_function_ctx.TSFNWrap(ctx);
10
- assert(tsfn.getContext() === ctx);
11
- await tsfn.release();
12
-
13
- binding.typed_threadsafe_function_ctx.AssertTSFNReturnCorrectCxt();
14
- }
@@ -1,39 +0,0 @@
1
- #include <cstdlib>
2
- #include "napi.h"
3
- #include "test_helper.h"
4
-
5
- #if (NAPI_VERSION > 3)
6
-
7
- using namespace Napi;
8
-
9
- namespace {
10
-
11
- void CallJS(Napi::Env env,
12
- Napi::Function /* callback */,
13
- std::nullptr_t* /* context */,
14
- void* /*data*/) {
15
- Napi::Error error = Napi::Error::New(env, "test-from-native");
16
- NAPI_THROW_VOID(error);
17
- }
18
-
19
- using TSFN = TypedThreadSafeFunction<std::nullptr_t, void, CallJS>;
20
-
21
- void TestCall(const CallbackInfo& info) {
22
- Napi::Env env = info.Env();
23
-
24
- TSFN wrapped = TSFN::New(
25
- env, Napi::Function(), Object::New(env), String::New(env, "Test"), 0, 1);
26
- wrapped.BlockingCall(static_cast<void*>(nullptr));
27
- wrapped.Release();
28
- }
29
-
30
- } // namespace
31
-
32
- Object InitTypedThreadSafeFunctionException(Env env) {
33
- Object exports = Object::New(env);
34
- exports["testCall"] = Function::New(env, TestCall);
35
-
36
- return exports;
37
- }
38
-
39
- #endif
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const common = require('../common');
4
-
5
- module.exports = common.runTest(test);
6
-
7
- async function test () {
8
- await common.runTestInChildProcess({
9
- suite: 'typed_threadsafe_function_exception',
10
- testName: 'testCall',
11
- execArgv: ['--force-node-api-uncaught-exceptions-policy=true']
12
- });
13
- }
@@ -1,127 +0,0 @@
1
- #include <cstdlib>
2
- #include "napi.h"
3
- #include "test_helper.h"
4
-
5
- #if (NAPI_VERSION > 3)
6
-
7
- using namespace Napi;
8
-
9
- namespace {
10
-
11
- struct TestContext {
12
- TestContext(Promise::Deferred&& deferred)
13
- : deferred(std::move(deferred)), callData(nullptr){};
14
-
15
- napi_threadsafe_function tsfn;
16
- Promise::Deferred deferred;
17
- double* callData;
18
-
19
- ~TestContext() {
20
- if (callData != nullptr) delete callData;
21
- };
22
- };
23
-
24
- using TSFN = TypedThreadSafeFunction<TestContext, double>;
25
-
26
- void FinalizeCB(napi_env env, void* /*finalizeData */, void* context) {
27
- TestContext* testContext = static_cast<TestContext*>(context);
28
- if (testContext->callData != nullptr) {
29
- testContext->deferred.Resolve(Number::New(env, *testContext->callData));
30
- } else {
31
- testContext->deferred.Resolve(Napi::Env(env).Undefined());
32
- }
33
- delete testContext;
34
- }
35
-
36
- void CallJSWithData(napi_env env,
37
- napi_value /* callback */,
38
- void* context,
39
- void* data) {
40
- TestContext* testContext = static_cast<TestContext*>(context);
41
- testContext->callData = static_cast<double*>(data);
42
-
43
- napi_status status =
44
- napi_release_threadsafe_function(testContext->tsfn, napi_tsfn_release);
45
-
46
- NAPI_THROW_IF_FAILED_VOID(env, status);
47
- }
48
-
49
- void CallJSNoData(napi_env env,
50
- napi_value /* callback */,
51
- void* context,
52
- void* /*data*/) {
53
- TestContext* testContext = static_cast<TestContext*>(context);
54
- testContext->callData = nullptr;
55
-
56
- napi_status status =
57
- napi_release_threadsafe_function(testContext->tsfn, napi_tsfn_release);
58
-
59
- NAPI_THROW_IF_FAILED_VOID(env, status);
60
- }
61
-
62
- static Value TestCall(const CallbackInfo& info) {
63
- Napi::Env env = info.Env();
64
- bool isBlocking = false;
65
- bool hasData = false;
66
- if (info.Length() > 0) {
67
- Object opts = info[0].As<Object>();
68
- bool hasProperty = MaybeUnwrap(opts.Has("blocking"));
69
- if (hasProperty) {
70
- isBlocking = MaybeUnwrap(MaybeUnwrap(opts.Get("blocking")).ToBoolean());
71
- }
72
- hasProperty = MaybeUnwrap(opts.Has("data"));
73
- if (hasProperty) {
74
- hasData = MaybeUnwrap(MaybeUnwrap(opts.Get("data")).ToBoolean());
75
- }
76
- }
77
-
78
- // Allow optional callback passed from JS. Useful for testing.
79
- Function cb = Function::New(env, [](const CallbackInfo& /*info*/) {});
80
-
81
- TestContext* testContext = new TestContext(Napi::Promise::Deferred(env));
82
-
83
- napi_status status =
84
- napi_create_threadsafe_function(env,
85
- cb,
86
- Object::New(env),
87
- String::New(env, "Test"),
88
- 0,
89
- 1,
90
- nullptr, /*finalize data*/
91
- FinalizeCB,
92
- testContext,
93
- hasData ? CallJSWithData : CallJSNoData,
94
- &testContext->tsfn);
95
-
96
- NAPI_THROW_IF_FAILED(env, status, Value());
97
-
98
- TSFN wrapped = TSFN(testContext->tsfn);
99
-
100
- // Test the four napi_threadsafe_function direct-accessing calls
101
- if (isBlocking) {
102
- if (hasData) {
103
- wrapped.BlockingCall(new double(std::rand()));
104
- } else {
105
- wrapped.BlockingCall(nullptr);
106
- }
107
- } else {
108
- if (hasData) {
109
- wrapped.NonBlockingCall(new double(std::rand()));
110
- } else {
111
- wrapped.NonBlockingCall(nullptr);
112
- }
113
- }
114
-
115
- return testContext->deferred.Promise();
116
- }
117
-
118
- } // namespace
119
-
120
- Object InitTypedThreadSafeFunctionExistingTsfn(Env env) {
121
- Object exports = Object::New(env);
122
- exports["testCall"] = Function::New(env, TestCall);
123
-
124
- return exports;
125
- }
126
-
127
- #endif
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
-
5
- module.exports = require('../common').runTest(test);
6
-
7
- async function test (binding) {
8
- const testCall = binding.typed_threadsafe_function_existing_tsfn.testCall;
9
-
10
- assert.strictEqual(typeof await testCall({ blocking: true, data: true }), 'number');
11
- assert.strictEqual(typeof await testCall({ blocking: true, data: false }), 'undefined');
12
- assert.strictEqual(typeof await testCall({ blocking: false, data: true }), 'number');
13
- assert.strictEqual(typeof await testCall({ blocking: false, data: false }), 'undefined');
14
- }
@@ -1,32 +0,0 @@
1
- #include "napi.h"
2
-
3
- #if (NAPI_VERSION > 3)
4
-
5
- using namespace Napi;
6
-
7
- namespace {
8
-
9
- using TSFN = TypedThreadSafeFunction<>;
10
-
11
- static Value Test(const CallbackInfo& info) {
12
- Object resource = info[0].As<Object>();
13
- Function cb = info[1].As<Function>();
14
- TSFN tsfn = TSFN::New(info.Env(), cb, resource, "Test", 1, 1);
15
- tsfn.Release();
16
- return info.Env().Undefined();
17
- }
18
-
19
- static Value ExtractEnvNullValue(const CallbackInfo& info) {
20
- return info.Env().Null();
21
- }
22
-
23
- } // namespace
24
-
25
- Object InitTypedThreadSafeFunctionPtr(Env env) {
26
- Object exports = Object::New(env);
27
- exports["test"] = Function::New(env, Test);
28
- exports["null"] = Function::New(env, ExtractEnvNullValue);
29
- return exports;
30
- }
31
-
32
- #endif
@@ -1,8 +0,0 @@
1
- 'use strict';
2
- const assert = require('assert');
3
- module.exports = require('../common').runTest(test);
4
-
5
- function test (binding) {
6
- assert(binding.typed_threadsafe_function_ptr.test({}, () => {}) === undefined);
7
- assert(binding.typed_threadsafe_function_ptr.null() === null);
8
- }