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
LongYinan
0f14799776
feat(napi-derive): support set property attribute in napi macro ( #1257 )
2022-08-06 21:54:58 +08:00
Jacob Kiesel
94e8e54b38
feat(napi): call sync functions within tokio runtime ( #1242 )
2022-08-04 00:12:35 +08:00
LongYinan
1a7cff167e
feat(napi): clone reference for TypedArray/Buffer
2022-07-06 19:15:16 +08:00
LongYinan
cc3086d804
fix(napi): validate fn for Option<T>
2022-07-06 14:01:32 +08:00
LongYinan
87fd74cbb6
feat(napi-derive): allow injecting this in class method
2022-07-05 23:09:40 +08:00
LongYinan
2e53bf7f9a
feat(napi-derive): support return_if_invalid
2022-07-05 18:39:12 +08:00
LongYinan
53cab27bc4
refactor(napi): Either now perform ValidateNapiValue::validate rather than type_of
2022-07-05 17:01:21 +08:00
LongYinan
c1e07b3c12
feat(napi): support into_instance in class struct
2022-06-04 01:07:47 +08:00
Jose Acevedo
796ba363f5
test(napi-derive): add trybuild negative macro tests
2022-05-23 11:55:19 +08:00
Jose L
5be415d3d9
feat(napi-derive): add ts_arg_type attribute to override individual args on functions ( #1192 )
2022-05-22 13:43:11 +08:00
Devon Govett
d6c755c4eb
fix(napi-derive): js_name
support for getters and setters ( #1179 )
2022-05-13 12:55:54 +08:00
LongYinan
a5c19ce1da
fix(napi): type constraint for either types
2022-05-12 15:12:32 +08:00
LongYinan
47fcc8501a
fix(napi): missing iterator implementation from class factory
2022-05-10 21:50:20 +08:00
Devon Govett
27402aee81
feat(napi): add support for weak references
2022-05-10 21:09:45 +08:00
LongYinan
65b4b34f40
test(napi): add electron tests
2022-05-10 18:39:37 +08:00
LongYinan
788a962137
fix(napi): drop all thread_local! usage
2022-05-10 18:39:36 +08:00
LongYinan
a3356264f2
feat(napi): experimental iterator support
2022-05-06 18:03:04 +08:00
Devon Govett
91c62c4616
fix(napi): handle the referenced object is finalized before Reference::drop
2022-05-03 21:59:42 +08:00
Ben Noordhuis
f301581445
feat(napi): make Error::from_reason() generic
2022-05-01 17:00:24 +02:00
LongYinan
44b4cc34e0
fix(napi-derive): invalid TypeScript return type
2022-04-27 18:23:45 +08:00
LongYinan
cf6b2c9241
chore: upgrade dependencies
2022-04-27 00:57:57 +08:00
LongYinan
878b843f29
feat(napi): support return Reference on class instance
2022-04-26 18:21:55 +08:00
LongYinan
c3a35a0704
fix(cli): generated type def on multi impl blocks
2022-04-26 18:04:37 +08:00
LongYinan
cc79c9794e
fix(napi-derive): should transform struct case on Impl
2022-04-26 18:04:14 +08: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
Gabriel Francisco
d56c9c56a8
fix(napi-derive): simplify the optional values in generated declaration file ( #1141 )
2022-04-22 16:53:27 +08:00
LongYinan
cd9bb0c5d6
docs: add return Promise callback function
...
Fix https://github.com/napi-rs/napi-rs/issues/1128
2022-04-14 14:24:47 +08:00
LongYinan
c553dcd4e0
feat(napi): relax the value type on ThreadSafeFunction
2022-04-14 14:24:47 +08:00
LongYinan
6a252c70d2
fix(napi): make buffer Send & Sync safe
2022-04-13 13:24:53 +08:00
LongYinan
6eec0f93c1
feat(napi): redesign the Reference API ( #1118 )
...
- Reference now is inject by #[napi] macro
- Class Reference and underlaying data now have the same lifetime
2022-04-13 13:24:53 +08:00
LongYinan
5c3d1b2144
feat(napi): experimental class reference API
2022-04-13 13:24:53 +08:00
messense
20b1edc53b
feat(cli): add support for building binaries
2022-04-01 14:00:42 +08:00
LongYinan
11967dec79
chore: upgrade dependencies
2022-04-01 12:10:56 +08:00
LongYinan
5005aaa5af
chore: upgrade dependencies
2022-03-13 18:30:11 +08:00
antoniomuso
f783e9537f
feat(napi): allow empty enums
2022-03-06 23:12:31 +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
1104742983
fix(napi): Buffer value lifetime should align the Rust lifetime
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
Simon Vandel Sillesen
cb9be7bc6a
Merge remote-tracking branch 'origin/main' into chrono_datetime
2022-02-11 07:21:07 +01:00
LongYinan
d55e4f6f1f
style: format toml files
2022-02-11 10:46:17 +08:00
Simon Vandel Sillesen
a3c29eb508
add unit test that shows Date
is rendered in TS type in interface
2022-02-10 18:52:57 +01:00
Simon Vandel Sillesen
2b2841e8d3
feat: Add support for Date <-> chrono::DateTime<Utc>
2022-02-09 20:59:58 +01:00
LongYinan
1f09a0cf77
chore: make example and bench package private
2022-02-09 20:42:00 +08:00
LongYinan
2763a8e7b2
fix(napi): deref from Uint8ClampedArray
2022-02-07 12:24:09 +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
AlCalzone
ed12bd76bd
feat: impl FromNapiValue
for serde_json::Number
, fix it for Null
, throw for impossible types ( #1052 )
...
fix #1013
Co-authored-by: zeroslope <jsx55242@foxmail.com>
2022-02-06 11:58:17 +08:00
LongYinan
89893cdca3
style: apply clippy suggestion
2022-02-06 10:49:16 +08:00
messense
d3e37a44cb
Fix BigInt issue with zero value
...
Looks like 0 is a special case: 4318b2348d/deps/v8/src/objects/bigint.cc (L1595-L1602)
2022-02-04 21:43:57 +08:00
messense
a1be16530b
Fix String roundtrip with interior nul bytes
2022-02-04 16:52:44 +08:00
LongYinan
1531489e18
chore: upgrade to yarn3
2022-01-24 17:25:40 +08:00
LongYinan
13533d1a37
feat(napi): re-export tokio and features
2022-01-23 23:04:31 +08:00
LongYinan
16f808276d
feat(napi): implement get_js_function
2022-01-23 23:04:31 +08:00
JoostK
8652019c94
fix(napi-derive): an Option
in front of a required parameter is no longer optional in TypeScript
...
This fixes a bug where having a parameter of type `Option<T>` followed by required parameters
would incorrectly declare the parameter as option in the TypeScript declaration file, resulting
in invalid syntax.
2022-01-23 18:57:01 +08:00
Jose L
40651714c9
feat(napi-derive): add ts_type
attribute to override typtescript type for fields in structs
2022-01-23 18:45:41 +08:00
Jose Acevedo
9a4f8cf32c
test: added test for coerce_to_object on Array
2022-01-17 21:29:47 -08:00
Tim Fish
cdcab888ee
fix(napi-derive): correctly escape backslash in type definition doc comments ( #1034 )
2022-01-17 12:38:16 +08:00
LongYinan
2de500f33b
fix(napi): invalid memory address in FromNapiValue for &str
2022-01-12 17:08:47 +08:00
LongYinan
b53e0e1e95
fix(napi-derive): BigInt in TypeScript should be bigint
2022-01-06 22:33:34 +08:00
LongYinan
b6d126db53
fix(napi-derive): implement missing trait for JsClass reference
2022-01-06 16:19:43 +08:00
LongYinan
3565fccdb6
fix(napi-derive): should throw rather than panic if object mismatched
2022-01-06 15:57:41 +08:00
LongYinan
64a28eac87
test: update snapshots format for ava@4
2022-01-04 11:04:45 +08:00
LongYinan
556ace8f33
fix(napi-derive,cli): export type alias for original name
2021-12-25 17:36:12 +08:00
LongYinan
76798a4343
fix(napi-derive): missing wrap in NAPI-RS created class instance
2021-12-24 22:56:16 +08:00
LongYinan
e6a30ffcca
fix(napi-derive): return instance from non-default constructor class
...
Fix https://github.com/napi-rs/napi-rs/issues/933
2021-12-24 21:37:47 +08:00
LongYinan
940be7df99
fix(napi-derive): return Class instance in function
2021-12-23 14:07:35 +08:00
LongYinan
87d1821e73
fix(napi): compile issue without compat mode
2021-12-22 09:36:47 +08:00
LongYinan
0dbda09cb3
test(napi): make worker_threads test more complex
2021-12-22 00:12:21 +08:00
LongYinan
4406059de1
fix(napi): addon packages become undefined in worker_threads
2021-12-21 23:38:35 +08:00
LongYinan
f7571d71c0
fix(napi-derive): codegen bug when multi impl on same file
2021-12-20 16:00:11 +08:00
Niklas Mischkulnig
7a04176cf9
test(napi): add tests for hashmap <-> object
2021-12-19 23:17:54 +08:00
h-a-n-a
7891c52cbf
test: update type snapshot
2021-12-19 22:44:45 +08:00
h-a-n-a
72f58204d2
test: add tests for skip_typescript
2021-12-19 20:17:54 +08:00
LongYinan
4ec4400703
fix(napi-derive-backend): Null and Undefined return type
2021-12-18 13:42:55 +08:00
forehalo
2df97c108f
fix: impl From<Buffer> for Vec<u8>
2021-12-18 13:24:16 +08:00
LongYinan
91d07810a2
fix(napi): ThreadsafeFunction with ErrorStrategy::Fatal should throw fatal exception
2021-12-14 12:47:23 +08:00
h-a-n-a
0aa7cd3d32
feat(napi): support external deref/derefMut
2021-12-11 13:42:46 +08:00
LongYinan
99708384d9
test: update snapshot
2021-12-09 19:23:33 +08:00
LongYinan
f4b0a2e322
fix(cli): enum TypeScript type should be const enum
2021-12-09 18:48:50 +08:00
LongYinan
7470407306
feat(napi): throw error on non constructable class
2021-12-08 17:59:30 +08:00
LongYinan
cd7c7a342f
fix(napi-derive-backend): missing crate prefix
2021-12-08 17:32:16 +08:00
LongYinan
e452c00fb4
feat: edition 2021
2021-12-08 13:18:47 +08:00
LongYinan
ff717df34f
fix(napi-derive-backend): skip set object property if it is None
2021-12-07 21:50:37 +08:00
LongYinan
49a0139f81
style: clippy fix
2021-12-03 16:49:25 +08:00
LongYinan
77e4241b18
style: clippy fix
2021-12-02 16:31:57 +08:00
LongYinan
b2fea4d5b3
fix(napi-derive): correct the aliased type generation
2021-12-02 16:25:20 +08:00
LongYinan
6d4b4af36f
fix(napi-derive-backend): do not unwrap Option value in object getter if the type of field is Option<T>
2021-12-02 16:17:03 +08:00
LongYinan
d9c53d728b
feat(napi): support TypedArray input and output
2021-12-02 11:26:52 +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
e6f341f632
chore: add example for return this
2021-11-25 23:42:40 +08:00
LongYinan
7177f4af92
chore: update test snap
2021-11-25 22:33:42 +08:00
LongYinan
1fe39ff66d
feat(napi): support export rust mod as ts namespace
2021-11-25 17:53:43 +08:00
LongYinan
4aa56a148c
fix(napi): missing coerce_to_bool on JsValue
2021-11-21 23:10:29 +08:00
LongYinan
1f64f9fbf3
fix(cli): ExternalObject type decalare
2021-11-21 18:23:53 +08:00
LongYinan
bdfb1506a2
feat(napi): implement external value
2021-11-21 16:24:58 +08:00
LongYinan
d1a5f84aa0
fix(napi): allow ErrorStrategy to be specified while creating TSFN
2021-11-21 14:49:04 +08:00
LongYinan
4c3fe26478
feat(cli): refactor cli build
2021-11-19 18:22:40 +08:00
LongYinan
47da28adb4
feat(napi-derive): support const export
2021-11-17 17:43:56 +08:00
LongYinan
dd0a705b83
test: update ts snapshot
2021-11-16 13:07:17 +08:00
LongYinan
b4a8cadb21
fix(napi-derive-backend): Option value should produce optional types
2021-11-16 13:02:40 +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
eaa96f7eb2
feat(napi): await Promise<T> in async fn
2021-11-15 16:54:55 +08:00
Tim Fish
a14cbbb836
Full qualify types
2021-11-14 23:34:44 +00:00
LongYinan
30031f09ed
feat(napi): create ThreadsafeFunction from JsFunction
2021-11-12 17:22:57 +08:00
LongYinan
fe8f061f1f
fix(napi-derive-backend): typegen issue when arg is mut
2021-11-11 17:10:32 +08:00
LongYinan
0424a08c06
feat(napi): BigInt codegen support
2021-11-11 16:18:25 +08:00