61 Commits

Author SHA1 Message Date
LongYinan
a10be50edb
fix(napi): shutdown runtime at env cleanup on windows (#3026) 2025-11-25 17:31:09 +08:00
LongYinan
656bdca927
refactor(napi-derive): make typegen easier to read (#2956) 2025-10-11 14:46:38 +08:00
LongYinan
8f40ebd206
fix(napi): cleanup memory issues (#2949) 2025-10-05 19:35:20 +08:00
LongYinan
cf5807f9f9
fix(napi-derive): codegen issue for &'env [u8] param (#2881) 2025-08-15 05:18:51 -07:00
LongYinan
dca00683d8
fix(napi): handle the return_if_invalid for Array param (#2846)
* fix(napi): handle the return_if_invalid for Array param

* Update crates/backend/src/codegen/fn.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update crates/backend/src/codegen/fn.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-08 15:10:43 +08:00
LongYinan
1e30088198
fix(wasm-runtime): avoid wasm-util from tree shaking by rollup (#2810)
* fix(wasm-runtime): avoid wasm-util from tree shaking by rollup

* fix filename
2025-08-07 12:55:48 +08:00
LongYinan
bb9883ab09
fix(napi-derive): lifetime codegen issue (#2794) 2025-07-22 17:54:18 +08:00
LongYinan
3dce1533fd
test(napi): add fixture for re-export complex class (#2733) 2025-06-24 16:31:26 +08:00
LongYinan
92b094e487
feat(napi): new handle scope API (#2650) 2025-05-18 23:16:40 +08:00
LongYinan
18816c710c
refactor!(napi): move JsObjectValue into bindgen_runtime (#2649) 2025-05-18 22:29:45 +08:00
LongYinan
ce990542b9
fix(napi): module_exports binding (#2632) 2025-05-13 19:54:25 +08:00
LongYinan
8cd752db86
feat(napi): support #[napi(module_exports)] (#2631) 2025-05-13 17:47:52 +08:00
LongYinan
3dd9143630
fix(napi): re-create async runtime (#2519) 2025-03-17 12:22:39 +08:00
LongYinan
1fe6ad0430
feat(napi): tokio multi-thread mode on wasi (#2501)
* feat(napi): tokio multi-thread mode on wasi

* tokio_unstable flag

* snapshot

* ensure runtime

* oncelock combine lazylock

* noop feature
2025-03-13 23:53:19 +08:00
LongYinan
d96bd288de
fix!(napi): upgrade to ctor 0.3.6 (#2472) 2025-02-20 12:22:29 +08:00
LongYinan
98cb7671d3
feat(napi): impl ReadableStream and AsyncGenerator (#2418)
* feat(napi): impl ReadableStream and AsyncGenerator

* clippy fix

* Into<Vec<u8>> trait

* Skip node18 stream test due to Node.js bug

* Cleanup

* Also skip wasi test

* Merge test

* Skip wasi

* Useless expect-error
2025-01-03 17:09:42 +08:00
lghuahua
31cd07c8c2
feat(napi-derive): support type on #[napi] (#2416)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2025-01-02 17:15:07 +08:00
翠 / green
521aefe420
feat(napi-derive): implement #[napi(transparent)] (#2376) 2024-11-30 10:28:40 +08:00
LongYinan
f707f36c5a
feat(napi): implmenet Set (#2330) 2024-10-26 20:11:58 +08:00
LongYinan
8f5d7e5274
fix(napi): handle panic in async block (#2050)
- Close https://github.com/napi-rs/napi-rs/issues/2047
2024-04-17 23:34:47 +08:00
LongYinan
e3a403b441
feat(napi): allow user defined tokio runtime (#2040) 2024-04-15 23:58:28 +08:00
LongYinan
4719caa643
feat(napi): support Return generic of ThreadsafeFunction (#1997)
* feat(napi): support to use tuple with either (#1993)

`Either` uses `ValidateNapiValue` + `TypeName` to validate and report error on value not being matched. So there's no way to remove these super traits from it. So I implemented these types to `Tuple` types.

* feat(napi): support `Return` generic of ThreadsafeFunction

* depracate JsFunction

* CalleeHandled tsfn should handle Result in callback

* Pass env to call_with_return_value callback

* Fix compile

* clippy fix

* Fix electron test

* Function args

---------

Co-authored-by: Hana <andywangsy@gmail.com>
2024-03-20 21:37:08 +08:00
LongYinan
5be7ab0f6b
feat(napi): new Function/FunctionRef API 2024-01-26 02:27:46 +00:00
LongYinan
43a080d52b
fix(napi): apply clippy suggestions (#1878) 2023-12-29 23:08:56 +08:00
LongYinan
feabcd7f16
test(napi): add tests for napi9 features (#1784) 2023-11-06 11:03:44 +08:00
yoogo
4259e85e0e fix(backend): attribute of a struct marked as #[napi(constructor)] contain Rust keywords, causing to throw is not a valid identifier when generating getters and setters 2023-08-17 20:48:54 +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
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
2abc94681e
fix(cli): zig cross armv7 (#1384) 2022-12-09 18:56:50 +08:00
LongYinan
573f67b90f
chore(napi-derive): make_ref tweaks (#1371) 2022-11-22 23:17:44 +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
Jacob Kiesel
94e8e54b38
feat(napi): call sync functions within tokio runtime (#1242) 2022-08-04 00:12:35 +08:00
LongYinan
a3356264f2
feat(napi): experimental iterator support 2022-05-06 18:03:04 +08:00
LongYinan
5c3d1b2144 feat(napi): experimental class reference API 2022-04-13 13:24:53 +08:00
LongYinan
5005aaa5af
chore: upgrade dependencies 2022-03-13 18:30:11 +08:00
LongYinan
18afd86a2e fix(napi): missing ValidateNapiValue trait for types 2022-03-06 14:20:36 +08:00
LongYinan
80ea0ad78c
fix(napi): re-export JsDate as Date in prelude 2022-02-06 20:42:48 +08:00
LongYinan
dfd213a1ee
feat(napi): with_value method on Property 2022-02-06 16:26:00 +08:00
Niklas Mischkulnig
7a04176cf9
test(napi): add tests for hashmap <-> object 2021-12-19 23:17:54 +08:00
h-a-n-a
72f58204d2 test: add tests for skip_typescript 2021-12-19 20:17:54 +08:00
Tim Fish
18d2743862
feat(napi): output Rust doc comments in definitions as jsdoc comments 2021-11-29 12:54:45 +08:00
LongYinan
e2e3ef95f8
feat(napi-derive): support renmae function args and return type 2021-11-26 17:26:14 +08:00
LongYinan
1fe39ff66d
feat(napi): support export rust mod as ts namespace 2021-11-25 17:53:43 +08:00
LongYinan
bdfb1506a2
feat(napi): implement external value 2021-11-21 16:24:58 +08:00
LongYinan
47da28adb4
feat(napi-derive): support const export 2021-11-17 17:43:56 +08:00
LongYinan
424c7805c4
feat(napi): improve symbol support 2021-11-15 23:10:15 +08:00
LongYinan
eaa96f7eb2
feat(napi): await Promise<T> in async fn 2021-11-15 16:54:55 +08:00