forehal
a781a4f27e
feat(cli): brand new cli tool with both cli and programmatical usage ( #1492 )
...
BREAKING CHANGE: requires node >= 16 and some cli options have been renamed
2023-04-06 11:04:53 +08:00
Francesco Benedetto
7c4dc2a2bd
feat(napi-derive-backend, napi-derive): add support for string enums ( #1551 )
2023-04-03 14:10:58 +08:00
Bo
0a0aa36c28
test(napi): update test case for checking electron renderer crash ( #1547 )
...
(cherry picked from commit d22598dbb1082de8ac712de954cd5616c838a48d)
2023-03-29 12:53:57 +08:00
Bo
e47c13f177
fix(napi): check if the tokio runtime exists when registering the module
...
And recreate it if it does not exist.
In windows, electron renderer process will crash if:
1. Import some NAPI module that enable `tokio-rt` flag in renderer process.
2. Reload the page.
3. Call a function imported from that NAPI module.
Because the tokio runtime will be dropped when reloading the page, and won't create again, but currently we assume that the runtime must exist in tokio-based `within_runtime_if_available`.
This will cause some panic like this:
```
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', napi-rs\crates\napi\src\tokio_runtime.rs:72:42
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error: Renderer process crashed: crashed, exitCode: -529697949
at EventEmitter.<anonymous> (napi-rs\examples\napi\electron.js:33:9)
at EventEmitter.emit (node:events:525:35)
```
2023-03-28 12:03:00 +08:00
Gabriel Francisco
3983be23f5
fix(napi): big numbers losing precision on serde_json::Value ( #1538 )
...
* fix(napi): big numbers losing precision on serde_json::Value
* fix(napi): add feature flags for bigint on number conversion
* chore(napi): change MAX_SAFE_INT to constant and convert big numbers to string when bigint is not available
* chore(napi): change how the check for safe integer range is made
2023-03-23 13:34:34 +08:00
LongYinan
3d48d4464b
fix(cli,napi-derive): re-export types from shared crate ( #1531 )
...
* fix(cli,napi-derive): re-export types from shared crate
* chore: publish
- @napi-rs/cli@2.15.1-alpha.0
* Clippy fix
* Fix memory testing
2023-03-21 18:12:52 +08:00
Victor Teo
aee742f185
feat(napi): property getter and setter with closure ( #1526 )
...
* getter with closure with segment fault
* fix getter closure pointer
* add setter
* Cleanup API
* Add test for `create_function_from_closure`
* Fix compile error
* Fix flaky test title
---------
Co-authored-by: LongYinan <lynweklm@gmail.com>
2023-03-21 11:22:07 +08:00
Francesco Benedetto
c8bd8924e2
fix(cli): export non const enums when generating typedefs ( #1527 )
...
* fix(cli): export non const enums when generating typedefs
* Make --const-enum as a build flag
---------
Co-authored-by: LongYinan <lynweklm@gmail.com>
2023-03-20 14:19:18 +08:00
LongYinan
d255a0a575
chore: decrease timeout in tsfn test
2023-03-20 11:59:53 +08:00
Bo
a6e1ff471c
fix(napi): use weak arc for passing thread_finalize_data
( #1525 )
...
* fix(napi): use weak arc for passing thread_finalize_data
* fix: try to fix test of tsfn_return_promise_timeout
2023-03-20 11:56:54 +08:00
Alberto Pose
ffc4980d52
fix(napi): panic when Promise callbacks trigger after Promise is dropped ( #1469 ) ( #1516 )
...
Co-authored-by: Alberto Pose <albepose@amazon.com>
2023-03-14 15:32:17 +08:00
LongYinan
3bd3c9cc08
test(napi): tests for custom gc in worker_threads ( #1505 )
2023-03-05 16:51:06 +08:00
LongYinan
8e3eb6204b
fix(napi): support custom status in Error ( #1486 )
2023-02-09 23:18:57 +08:00
Hana
90cc0a6abe
feat(napi): convert ToNapiValue tuple to variadic tsfn ( #1475 )
...
* refactor: convert ToNapiValue tuple to variadic tsfn
* chore: resolve conflicts
* fix: typo
* chore: use into instead of to
* chore: syntax compat
2023-02-08 22:30:43 +08:00
LongYinan
7613d669fb
chore(napi): enhance the error messages while converting types failed ( #1473 )
2023-02-06 00:52:59 +08:00
LongYinan
3bd2bf40b1
fix(napi): run_script return type ( #1467 )
2023-01-31 20:36:59 +08:00
LongYinan
e9de5681be
fix(napi): also apply electron external data fallback to lowlevel APIs ( #1458 )
...
* fix(napi): also apply electron external data fallback to lowlevel APIs
* chore: allow uninlined_format_args in tests
2023-01-28 21:31:57 +08:00
LongYinan
548f288722
fix(napi): fallback to copy arraybuffer if zero copy is not allowed ( #1455 )
2023-01-24 22:39:46 +08:00
LongYinan
e3adf5dac4
fix(napi): unhandled promise rejection while using EitherN<Promise<..>> ( #1452 )
2023-01-24 19:07:33 +08:00
LongYinan
c8352a1fb0
feat(napi-derive): allow partial implement From/To Napivalue for Object ( #1448 )
2023-01-24 14:51:16 +08:00
LongYinan
e79eb34118
feat(napi-derive): generate ThreadsafeFunction types ( #1449 )
2023-01-24 14:25:05 +08:00
LongYinan
62b16d6a89
chore: upgrade npm dependencies ( #1443 )
2023-01-19 00:32:52 +08:00
LongYinan
6739ddda20
fix(napi): remove useless aquire while creating ThreadsafeFunction ( #1442 )
2023-01-18 11:20:47 +08:00
LongYinan
46f08ee6dd
fix(napi): missing From implementation for Bigint ( #1440 )
2023-01-17 00:05:19 +08:00
Hana
78b6e1574a
fix(napi-derive): fix union type generation for ts function notation ( #1439 )
...
* fix(backend): fix union type generation for ts function notation
* chore: update snapshot
* fix: naming
2023-01-14 18:27:46 +08:00
LongYinan
dc3a4c9f25
feat(napi): refactor ThreadsafeFunction to allow get return value of it ( #1427 )
2023-01-11 18:54:45 +08:00
LongYinan
5ab4b818f5
test(napi): remove outdated assersion ( #1423 )
2023-01-09 16:04:18 +08:00
LongYinan
6e4b16fe5d
style: clippy fix
2022-12-16 20:19:39 +08:00
LongYinan
c01bcecb2b
chore(napi): reduce the complex about destroying tokio runtime
2022-12-16 14:32:32 +08:00
LongYinan
2abc94681e
fix(cli): zig cross armv7 ( #1384 )
2022-12-09 18:56:50 +08:00
nihohit
1cf32631bf
fix(napi): typed arrays ref shouldn't use offset. ( #1376 )
...
Notice from the n-api docs that the data returned from
`napi_get_typedarray_info` is already adjusted by the byte offset.
https://nodejs.org/api/n-api.html#napi_get_typedarray_info
This means that when `as_ref`/`as_mut` apply the byte offset, the
offset is in practice applied twice.
This wasn't caught in tests because no test tried to modify a typed
array with a byte offset, and the test didn't us the typed array
structs, only `JsTypedArray`. If you want, I can modify the rest of the
functions in examples/napi-compt-mode/src/arraybuffers.rs
and the matching tests, to test all typed arrays.
IMO the `byte_offset` field can be removed entirely from the struct,
but I wanted to submit a minimal PR.
2022-11-30 20:54:13 +08:00
LongYinan
573f67b90f
chore(napi-derive): make_ref tweaks ( #1371 )
2022-11-22 23:17:44 +08:00
Jacob Kiesel
618d0f8046
fix(napi-derive): unsound behavior while using reference and async together
2022-11-22 00:17:19 +08:00
LongYinan
28be7e256b
chore(cli): upgrade Node.js dependencies ( #1368 )
2022-11-20 22:59:35 +08:00
LongYinan
b5cfa93789
chore: skip worker_thread test on Linux aarch64 ( #1354 )
2022-10-31 21:13:11 +08:00
LongYinan
3dde26bcef
chore(napi): including type message in error message ( #1350 )
2022-10-24 00:16:30 +08:00
LongYinan
1037e6f14d
chore: upgrade dependencies ( #1349 )
2022-10-23 23:03:18 +08:00
Devon Govett
5541d650a9
feat(napi): add threadsafe deferred values ( #1306 )
2022-10-03 13:00:48 +08:00
LongYinan
47de6301ee
fix(napi): should also delete the reference while dropping the Buffer
2022-10-02 10:14:25 +08:00
LongYinan
ea18170779
fix(napi): propagation error in function call ( #1315 )
2022-09-14 19:30:43 +08:00
Devon Govett
5ba70b0e1a
fix(napi): improve error propagation ( #1303 )
2022-09-14 17:03:11 +08:00
LongYinan
184c4af588
chore: upgrade npm dependencies
2022-08-23 20:18:25 +08:00
messense
99e17c7294
fix(napi): segfault when ThreadsafeFunction
's callback closure captures data ( #1281 )
2022-08-20 22:40:26 +08:00
LongYinan
b7a3103f0c
feat(napi-derive): catch_unwind attribute ( #1280 )
2022-08-19 23:36:36 +08:00
LongYinan
528b1d21cb
style: clippy fix
2022-08-17 18:16:01 +08:00
LongYinan
0ef482c6ca
feat(napi-derive): support inject This<Value> into raw function
2022-08-17 18:16:00 +08:00
LongYinan
711372e175
feat(napi-derive): implement instance_of for Class
2022-08-17 15:18:43 +08:00
LongYinan
2385b52a72
feat(napi): allow implement custom finalize logic for Class
2022-08-17 13:24:40 +08:00
huzz
fd191a4586
feat(napi): support rust array to js array
2022-08-12 17:53:36 +08:00
LongYinan
cb9239d8dc
fix(napi): either for #[napi(object)] types ( #1258 )
2022-08-07 01:16:28 +08:00