773 Commits

Author SHA1 Message Date
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
Cong-Cong Pan
24e4662ff8
fix(napi): reference cannot impl send (#2499) 2025-03-11 19:07:51 +08:00
Cong-Cong Pan
920811f88a
chore(napi): SharedReference can be sync (#2503) 2025-03-11 19:07:24 +08:00
CPunisher
511b0da174
fix(napi-derive): add object_from_js and object_to_js support for enum (#2489) 2025-03-03 15:06:20 +08:00
renovate[bot]
6b166afae7
fix(deps): update rust crate convert_case to 0.8 (#2483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 03:48:37 +00:00
renovate[bot]
211d2d9b76
fix(deps): update rust crate ctor to 0.4.0 (#2482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 19:40:44 +00:00
LongYinan
98f853ce90
Release independent packages
- napi@3.0.0-alpha.31
- napi-build@2.1.5
2025-02-25 21:51:27 +08:00
LongYinan
ee75b119cd
refactor!(napi): link crt1-reactor.o as poor man's wasi-exec-model=reactor (#2480) 2025-02-25 21:45:38 +08:00
LongYinan
ed6da2b741
fix(napi): compile error on noop feature (#2478) 2025-02-24 23:19:47 +08:00
LongYinan
4edea1d303
Release independent packages
- napi@3.0.0-alpha.30
2025-02-24 20:15:52 +08:00
LongYinan
86548570f2
fix(napi): compatible with Rust 1.85 (#2477)
Ref: https://github.com/rust-lang/rust/issues/137510
2025-02-24 20:14:12 +08:00
LongYinan
b818da29e1
Release independent packages
- napi-derive@3.0.0-alpha.28
2025-02-22 12:08:37 +08:00
LongYinan
680742f1b6
fix(napi-derive): module_init macro fix 2025-02-22 12:06:28 +08:00
LongYinan
6ecc4503b5
Release independent packages
- napi@3.0.0-alpha.29
- napi-derive@3.0.0-alpha.27
2025-02-21 12:58:32 +08:00
LongYinan
d96bd288de
fix!(napi): upgrade to ctor 0.3.6 (#2472) 2025-02-20 12:22:29 +08:00
LongYinan
384dcac588
chore(napi): remove thread_local! in REFERENCE_MAP (#2470) 2025-02-16 18:08:04 +08:00
LongYinan
0ce8fab19c
chore(napi): merge thread cleanup (#2469) 2025-02-16 16:55:16 +08:00
LongYinan
b1f8966fa7
Release independent packages
- napi@3.0.0-alpha.28
- napi@3.0.0-alpha.26
2025-02-11 22:36:00 +08:00
renovate[bot]
9e3f809c2e
fix(deps): update rust crate ctor to 0.3 (#2463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 11:42:45 +00:00
LongYinan
13f4969ee2
chore: remove debug print 2025-02-11 18:12:50 +08:00
LongYinan
8d8ccdfc77
refactor!(napi): TypedArray API surfaces (#2462) 2025-02-11 13:35:43 +08:00
lghuahua
8ea8e9ebfc
feat(napi-derive): impl #[napi(array)] (#2459) 2025-02-11 13:35:27 +08:00
Zack Radisic
2d8e19d7c6
chore(napi): expose functions which turn raw pointer into External (#2449)
* Expose functions which turn raw pointer into External

* Add safety documentation
2025-02-03 13:03:29 +08:00
lghuahua
cc4d8bfa84
fix(napi-derive): enable tuple fields to support js_name attribute (#2439)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2025-01-22 12:10:26 +08:00
LongYinan
1868b0a214
chore: clippy fix (#2433) 2025-01-20 10:45:44 +08:00
LongYinan
1312763b11
Release independent packages
- napi-derive@3.0.0-alpha.25
2025-01-12 22:36:59 +08:00
LongYinan
ea05ad3845
fix(napi-derive): hide the lifetime recursively in codegen (#2426) 2025-01-12 22:36:14 +08:00
LongYinan
55846053f7
Release independent packages
- napi@3.0.0-alpha.27
- napi-derive@3.0.0-alpha.24
2025-01-12 20:40:29 +08:00
LongYinan
05572bf1d4
feat(napi): allow create ReadableStream from polyfill (#2424) 2025-01-12 15:32:12 +08:00
LongYinan
cf0f03eee4
Revert "fix(deps): update rust crate convert_case to 0.7 (#2422)"
This reverts commit 68a39b4fba1aa5b73fdff52f3debf62f1f88a85c.
2025-01-12 12:36:11 +08:00
renovate[bot]
68a39b4fba
fix(deps): update rust crate convert_case to 0.7 (#2422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-12 03:57:04 +00:00
LongYinan
73d5c1d803
fix(napi): add back Buffer/TypedArray custom gc on wasi (#2421) 2025-01-12 11:45:50 +08:00
LongYinan
8ebc851fce
Release independent packages
napi@3.0.0-alpha.26

napi-derive@3.0.0-alpha.26
2025-01-04 20:07:20 +08:00
LongYinan
35ebf8f7d4
fix(napi): remove feature flag on Object::new 2025-01-04 20:06:40 +08:00
LongYinan
a24993b773
Release independent packages
- napi@3.0.0-alpha.25
- napi@3.0.0-alpha.23
2025-01-04 15:23:37 +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
LongYinan
aad71cdb00
docs: update badge and matrix 2025-01-02 17:52:39 +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
richerfu
a7c41f33ec
feat(napi): add get and try_get for FunctionCallContext (#2409)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2025-01-02 17:14:53 +08:00
richerfu
5f7415c1fe
fix(napi): Function call with empty tuple should generate empty arguments (#2407)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2025-01-02 17:10:53 +08:00
LongYinan
480f8cecd9
style(napi): code format 2025-01-02 16:59:36 +08:00
Stanisław Czech
b4b74d6f1f
refactor!(napi): arguments tuple behavior (#2401)
* Implement FromNapiValue trait as macro

Code behavior should remain the same, with much less copy-pasting of the same code.
Additionally, this commit adds a unit tests for test for FromNapiValue
for tuple trait which appears to be currently missing.

* Simplify macro arr_get

Rewrite the macro to reduce the size of expanded code of the macro
(from 4088 to 2429 lines). Although this is a minor change,
this may help reduce the size of compiled library.

* Refactor typegen Type::Path

Removes the need for keeping mutable variable, as its only assigned once.

* [API BREAKING] Update api for calling functions.

This commit introduces new type FnArgs,
that is created with the goal of distinguishing between
calling JS function from rust with tuple as argument
and calling with multiple arguments.

Currently there is no possibility to add ToNapiValue value,
as tuple is used to call callback functions with more than one
argument from rust.

With this change, callbacks with multiple arguments,
should be called, with converting tuple of argument
into FnArgs struct, either by calling into() on such
tuple, or by creating FnArgs struct directly.

* Add support for FnArgs when generating TS types

Updated the macro for generating typescript types,
to correctly handle FnArgs struct. This is now treated
as passthrough type and generates the output from the
type inside of FnArgs struct.

* Implement ToNapiValue trait for tuple

With the changes to callback calling API, it's now possible
to safely add this change. This change allows to pass tuple
from rust code to JS to match the existing FromNapiValue trait
currently existing in the library.
2025-01-02 16:58:58 +08:00
Cong-Cong Pan
24da4e6ffb
perf(napi): JsStringUtf8 take & into_owned & as_str fn (#2404) 2024-12-20 12:58:41 +08:00
ganthern
b1400e3263
docs: update MSRV in README.md (#2402) 2024-12-19 22:21:28 +08:00
LongYinan
8027aa0602
Release independent packages
- napi@3.0.0-alpha.24
- napi-derive@3.0.0-alpha.22
- napi-sys@3.0.0-alpha.1
- napi-build@2.1.4
2024-12-18 23:52:09 +08:00
LongYinan
8fffa49282
fix(napi): resuse threads worker on Node.js (#2399) 2024-12-18 23:48:30 +08:00
LongYinan
7c532640d5
Release independent packages
- napi@3.0.0-alpha.23
2024-12-10 11:31:57 +08:00
underfin
533635619e
fix(napi): delete error reference with raw Error (#2388)
* fix: delete error reference at drop

* fix: ci

* fix: ci

* fix: ci

* fix: ci

* fix: avoid using drop
2024-12-09 19:17:16 +08:00
LongYinan
dd07a04ca6
Release independent packages
- napi@3.0.0-alpha.22
- napi-derive@3.0.0-alpha.21
2024-12-03 21:59:14 +08:00
Hiroshi Ogawa
61543c0f45
fix(napi): handle nul byte in object key (#2385)
* fix: fix to_napi_value

* test: add test

* fix: fix from_napi_value

* fix: fix object.get/set

* test: test plain object

* test: snapshot
2024-12-03 14:17:18 +08:00