Commit graph

45 commits

Author SHA1 Message Date
LongYinan
0dc1ef738b fix(napi): asan caught memory safety issue 2023-11-04 15:26:07 +08:00
LongYinan
13d0ce075e
feat: integrate with emnapi (#1669)
* Integrate with emnapi

* resolve conflict

* ignore wasm

* generate wasi file

* Add wasi test to workflow

* Fix wasi template

* emnapi new initialize api

* Finish test

* Purne tsconfig

* Generate wasi worker

* Fix electron test

* Finalize check

* Noop adjust_external_memory

* Apply cr suggestions
2023-11-02 12:57:11 +08:00
LongYinan
07d03c9435
chore: MSRV 1.63.0 2023-08-10 10:44:55 +08:00
LongYinan
a7eeb0c31c
fix(napi): promise resolve error (#1664) 2023-07-24 00:36:24 +08:00
LongYinan
6d62b3f714
chore: upgrade dependencies (#1657) 2023-07-17 14:56:02 +08:00
Markus
73a704a19e
feat(napi): keep stack traces in a deferred context (#1637)
* feat(napi): keep stack traces in deferred context

* chore: reformat code

Signed-off-by: Markus <28785953+MarkusJx@users.noreply.github.com>

* chore: use napi wrappers

Signed-off-by: Markus <28785953+MarkusJx@users.noreply.github.com>

* test(napi): add test for deferred trace

Signed-off-by: Markus <28785953+MarkusJx@users.noreply.github.com>

* chore: fix format

Signed-off-by: Markus <28785953+MarkusJx@users.noreply.github.com>

---------

Signed-off-by: Markus <28785953+MarkusJx@users.noreply.github.com>
2023-07-15 12:07:14 +08:00
Jānis Gailis
d1fe0f0eb1
feat(napi): Bigint deserialization (#1592)
* Handle little endianness;
* Make sure get_<u/i>128 methods don't panic when words.len() < 2;
* Make sure BigInt deserialization takes into account word length and
  sign;

Signed-off-by: Janis Gailis <JanisGailis@users.noreply.github.com>
Co-authored-by: Janis Gailis <>
2023-05-19 17:27:29 +08:00
LongYinan
d9ff0b4ddf
fix(napi): do nothing in deferred if thread is destroyed (#1568) 2023-04-15 18:58:53 +08:00
LongYinan
752ffea1d9
fix(napi): revert Promise changes because of the flaky test 2023-04-10 17:14:26 +08:00
Markus
71e44be73d
fix(napi): access violation in property getter/setter closure (#1552)
Signed-off-by: Markus <28785953+MarkusJx@users.noreply.github.com>
2023-04-03 11:12:07 +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
LongYinan
347e81b3cc
chore(napi): upgrade bitflags to v2 (#1518) 2023-03-16 11:23:03 +08:00
m1212e
a7dcf2a838
fix(napi): convert u64 to u32 in serialization (#1478)
https://github.com/napi-rs/napi-rs/issues/1470
serde_json::Value parses positive integers to u64 types by default. When converting serde_json::Value to a js value, those numbers are converted to BigInts, even if they are within the bounds of the number primitive. The added checks converts an u64 to an u32 if possible to prevent this behavior.

Co-authored-by: m1212e <->
2023-02-08 22:25:03 +08:00
LongYinan
7613d669fb
chore(napi): enhance the error messages while converting types failed (#1473) 2023-02-06 00:52:59 +08:00
LongYinan
6e4b16fe5d
style: clippy fix 2022-12-16 20:19:39 +08:00
Devon Govett
5541d650a9
feat(napi): add threadsafe deferred values (#1306) 2022-10-03 13:00:48 +08:00
user.tax
e54c37a0b1
feat(napi): add support for Vec<(std::string::String, u16)> and some other small change (#1320) 2022-09-20 12:13:07 +08:00
Devon Govett
5ba70b0e1a
fix(napi): improve error propagation (#1303) 2022-09-14 17:03:11 +08:00
LongYinan
0f14799776
feat(napi-derive): support set property attribute in napi macro (#1257) 2022-08-06 21:54:58 +08:00
LongYinan
53cab27bc4
refactor(napi): Either now perform ValidateNapiValue::validate rather than type_of 2022-07-05 17:01:21 +08:00
LongYinan
1bf072ad7d
refactor(napi): use libloading on Windows 2022-05-06 22:27:09 +08:00
LongYinan
c553dcd4e0 feat(napi): relax the value type on ThreadSafeFunction 2022-04-14 14:24:47 +08:00
LongYinan
18afd86a2e fix(napi): missing ValidateNapiValue trait for types 2022-03-06 14:20:36 +08:00
LongYinan
b48a757837 style: clippy fix 2022-03-05 23:05:04 +08:00
LongYinan
9f3fbaa8e0
fix(napi): race issues with Node.js worker_thread (#1081)
Co-authored-by: Jan Piotrowski <piotrowski+github@gmail.com>
2022-03-05 14:14:32 +08:00
LongYinan
2763a8e7b2
fix(napi): deref from Uint8ClampedArray 2022-02-07 12:24:09 +08:00
LongYinan
dfd213a1ee
feat(napi): with_value method on Property 2022-02-06 16:26:00 +08:00
LongYinan
41bcd9c50b
fix(napi): clippy error on 1.58 2022-01-14 11:21:03 +08:00
messense
43fb8edecd chore: forbid unsafe_op_in_unsafe_fn 2022-01-13 11:26:28 +08:00
liulinboyi
486765b35e feat(napi): refine return type 2021-12-18 11:52:49 +08:00
LongYinan
d9c53d728b
feat(napi): support TypedArray input and output 2021-12-02 11:26:52 +08:00
LongYinan
a7067d6732
feat(sys): remove rust enum in sys 2021-11-29 12:52:42 +08:00
LongYinan
43d21c51d2
doc: cargo docs fix 2021-11-25 17:53:42 +08:00
LongYinan
1dcd0fec1e
refactor(napi): remove compatible Either struct
Reexport `Either` from `bindgen_runtime::Either`
2021-11-25 17:53:41 +08:00
LongYinan
e8cfa0b467
fix(napi): freeze and seal should be methods of JsObject 2021-11-21 23:11:14 +08:00
LongYinan
4aa56a148c
fix(napi): missing coerce_to_bool on JsValue 2021-11-21 23:10:29 +08:00
LongYinan
d1a5f84aa0
fix(napi): allow ErrorStrategy to be specified while creating TSFN 2021-11-21 14:49:04 +08:00
LongYinan
424c7805c4
feat(napi): improve symbol support 2021-11-15 23:10:15 +08:00
LongYinan
3386bb9867
feat(napi): support JsGlobal in Env 2021-11-15 22:41:01 +08:00
LongYinan
25231b6ae1
fix(napi): correct the CString usage 2021-11-15 16:55:13 +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
e74fe2fb94
feat(napi): implement AsyncTask with AbortSignal support 2021-11-06 13:51:54 +08:00
LongYinan
d36c303dec
chore: specified dependencies versions 2021-11-06 13:51:54 +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