Commit graph

25 commits

Author SHA1 Message Date
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
Devon Govett
5541d650a9
feat(napi): add threadsafe deferred values (#1306) 2022-10-03 13:00:48 +08:00
Devon Govett
5ba70b0e1a
fix(napi): improve error propagation (#1303) 2022-09-14 17:03:11 +08:00
Ben Noordhuis
f301581445 feat(napi): make Error::from_reason() generic 2022-05-01 17:00:24 +02:00
LongYinan
5aa61c2142 fix(napi): use create_buffer/arrary_buffer if provided data is empty 2022-04-26 16:53:13 +08:00
Niklas Mischkulnig
0bdb722097
test(napi): add test for multiple empty buffers 2022-04-23 12:27:47 +02:00
LongYinan
5005aaa5af
chore: upgrade dependencies 2022-03-13 18:30:11 +08:00
LongYinan
d55e4f6f1f
style: format toml files 2022-02-11 10:46:17 +08:00
LongYinan
1f09a0cf77
chore: make example and bench package private 2022-02-09 20:42:00 +08:00
LongYinan
89893cdca3
style: apply clippy suggestion 2022-02-06 10:49:16 +08:00
LongYinan
1531489e18
chore: upgrade to yarn3 2022-01-24 17:25:40 +08:00
LongYinan
b53e0e1e95
fix(napi-derive): BigInt in TypeScript should be bigint 2022-01-06 22:33:34 +08:00
LongYinan
64a28eac87
test: update snapshots format for ava@4 2022-01-04 11:04:45 +08:00
LongYinan
e452c00fb4
feat: edition 2021 2021-12-08 13:18:47 +08:00
LongYinan
49a0139f81
style: clippy fix 2021-12-03 16:49:25 +08:00
LongYinan
4aa56a148c
fix(napi): missing coerce_to_bool on JsValue 2021-11-21 23:10:29 +08:00
LongYinan
4c3fe26478
feat(cli): refactor cli build 2021-11-19 18:22:40 +08:00
LongYinan
3386bb9867
feat(napi): support JsGlobal in Env 2021-11-15 22:41:01 +08:00
LongYinan
30031f09ed
feat(napi): create ThreadsafeFunction from JsFunction 2021-11-12 17:22:57 +08:00
LongYinan
0424a08c06
feat(napi): BigInt codegen support 2021-11-11 16:18:25 +08:00
LongYinan
179f20a7c5
feat(cli): generate js binding to avoid dynamic require logic 2021-11-09 21:43:51 +08:00
LongYinan
e0671fe071
feat(napi): implement Env::throw to throw any JsValue 2021-11-06 23:33:58 +08:00
LongYinan
e74fe2fb94
feat(napi): implement AsyncTask with AbortSignal support 2021-11-06 13:51:54 +08:00
LongYinan
af86f6f7a4
chore: make examples private 2021-10-31 23:33:51 +08:00
forehalo
2467b7139b
Introduce #[napi] procedural macro to automation development boilerplate (#696)
* napi procedural macro for basic rust/JavaScript types
* introduce the `compat-mode` for `napi` and `napi-derive` crates for backward compatible
* remove #[inline] and let compiler to decide the inline behavior
* cli now can produce the `.d.ts` file for native binding
* many tests and example for the new procedural macro

Co-authored-by: LongYinan <lynweklm@gmail.com>
2021-09-23 01:29:09 +08:00