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
53cab27bc4
refactor(napi): Either now perform ValidateNapiValue::validate rather than type_of
2022-07-05 17:01:21 +08:00
Ivan Enderlin
81b07ce5a6
feat(napi) implement Either3
to Either26
.
...
This patch introduces a new macro: `either_n!` that generates the types
`Either{n}` where $3 \leq n \leq 26$. Manual implementations for
`Either3`, `Either4` and `Either5` are removed by this patch too.
The `either_n!` macro is quite classical. There is no particular
trick, except `count_idents!` which simply turns, e.g. `A, B, C` into
`3`. This macro is used by `either_n!` to implement the
`debug_assert!` inside `from_napi_value`.
2022-07-05 17:01:12 +08:00
Jonas Platte
7cf87eaf20
chore(napi): replace lazy_static with once_cell ( #1213 )
2022-06-25 11:19:45 +08:00
LongYinan
c1e07b3c12
feat(napi): support into_instance in class struct
2022-06-04 01:07:47 +08:00
Ivan Enderlin
94e95e87e7
feat(napi) Extend #1195 to Vec<T>
.
...
This patch is the sequel of
https://github.com/napi-rs/napi-rs/pull/1195 where `ToNapiValue` and
`FromNapiValue` are implemented for all `Vec<T>` where `T` is a 8 or
16 bits number.
2022-05-30 16:29:44 +02:00
Ivan Enderlin
56e71a76d3
feat(napi) Return an error instead of panicking.
2022-05-25 14:43:23 +08:00
Ivan Enderlin
cb2a407228
feat(napi) Implement ToNapiValue
for 8 and 16-bits numbers.
...
`napi` only supports numbers in 16 and 32-bits. To support Rust
numbers with 8 and 16-bits, we can cast them to 32-bits. To convert
from 8 and 16-bits to 32-bits, we use their `Into` implementation. To
convert from 32-bits to 8 and 16-bits, we use their `TryInto`, we
should theorically not fail, but in case of, an `except` message is
appended.
The code has also been re-indented as it was containing a mix of 2
spaces, 4 spaces and tabs identation.
2022-05-25 14:43:23 +08:00
LongYinan
a5c19ce1da
fix(napi): type constraint for either types
2022-05-12 15:12:32 +08:00
Devon Govett
27402aee81
feat(napi): add support for weak references
2022-05-10 21:09:45 +08:00
LongYinan
788a962137
fix(napi): drop all thread_local! usage
2022-05-10 18:39:36 +08:00
LongYinan
1bf072ad7d
refactor(napi): use libloading on Windows
2022-05-06 22:27:09 +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
LongYinan
878b843f29
feat(napi): support return Reference on class instance
2022-04-26 18:21:55 +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
39e55a39c9
fix(napi): use null pointer for empty buffers
2022-04-23 12:27:44 +02:00
Gabriel Francisco
581e3bbb87
chore(napi): add u64 to BigInt conversion through From trait ( #1143 )
...
* Add u64 to BigInt conversion through From trait
* Fix lint
2022-04-23 00:29:18 +08:00
LongYinan
c605911cdf
chore(napi): show tips if create different buffers with same data
2022-04-13 13:24:53 +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
LongYinan
18afd86a2e
fix(napi): missing ValidateNapiValue trait for types
2022-03-06 14:20:36 +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
2b2841e8d3
feat: Add support for Date <-> chrono::DateTime<Utc>
2022-02-09 20:59:58 +01: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
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
Jose Acevedo
36e808d2a6
feat: add 'coerce_to_object' method to Array
2022-01-17 21:07:25 -08:00
messense
43fb8edecd
chore: forbid unsafe_op_in_unsafe_fn
2022-01-13 11:26:28 +08:00
LongYinan
2de500f33b
fix(napi): invalid memory address in FromNapiValue for &str
2022-01-12 17:08:47 +08:00
LongYinan
3f2e44d3db
Merge pull request #939 from napi-rs/fix/buffer-vec-conversion
...
fix(napi): impl From<Buffer> for Vec<u8>
2021-12-18 13:41:40 +08:00
forehalo
2df97c108f
fix: impl From<Buffer> for Vec<u8>
2021-12-18 13:24:16 +08:00
liulinboyi
486765b35e
feat(napi): refine return type
2021-12-18 11:52:49 +08:00
h-a-n-a
0aa7cd3d32
feat(napi): support external deref/derefMut
2021-12-11 13:42:46 +08:00
LongYinan
831e050877
feat(napi): create Array from &Vec
2021-12-07 22:03:25 +08:00
LongYinan
f7a101db01
chore: cleanup stale codes
2021-12-07 21:45:40 +08:00
LongYinan
00be6e5e0c
feat(napi): impl FromNapiValue for &str
2021-12-07 12:50:18 +08:00
LongYinan
8fc1cfcb38
feat(napi): TypeName and ToNapiValue should apply to any HashMap
2021-12-03 16:49:26 +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
LongYinan
9a0de8e485
feat(napi): allow return self as this
2021-11-25 22:31:11 +08:00
LongYinan
1fe39ff66d
feat(napi): support export rust mod as ts namespace
2021-11-25 17:53:43 +08:00
LongYinan
e4ca46f32b
style: clippy fix
2021-11-25 17:53:42 +08:00
LongYinan
43d21c51d2
doc: cargo docs fix
2021-11-25 17:53:42 +08:00
LongYinan
f83e167bd2
feat(napi): implement from_vec
for Array
2021-11-25 17:53:42 +08:00
LongYinan
c77712e76f
feat(napi): implement with_optional_signal on AsyncTask
2021-11-25 17:53:42 +08:00
LongYinan
43c1aff738
refactor(napi): use CStr instread of CString while creating lit variable
2021-11-25 17:53:41 +08:00