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
Ivan Enderlin
6a9fdba8b6
feat(napi-derive) Support #[napi(strict)]
on &T
and &mut T
. ( #1238 )
2022-08-06 21:55:35 +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
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
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
LongYinan
18dc3df5ba
style: clippy
2022-06-10 15:20:06 +08:00
LongYinan
c1e07b3c12
feat(napi): support into_instance in class struct
2022-06-04 01:07:47 +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
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
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
LongYinan
44b4cc34e0
fix(napi-derive): invalid TypeScript return type
2022-04-27 18:23:45 +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
Gabriel Francisco
d56c9c56a8
fix(napi-derive): simplify the optional values in generated declaration file ( #1141 )
2022-04-22 16:53:27 +08:00
LongYinan
89cce5752b
feat(napi-derive): support generic types on fn
2022-04-14 14:24:47 +08:00
LongYinan
6b7cd185a1
fix(napi-derive): JsUnknown should be unknown type
2022-04-14 14:24:47 +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
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
LongYinan
80ea0ad78c
fix(napi): re-export JsDate as Date in prelude
2022-02-06 20:42:48 +08:00
LongYinan
89893cdca3
style: apply clippy suggestion
2022-02-06 10:49:16 +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
Tim Fish
cdcab888ee
fix(napi-derive): correctly escape backslash in type definition doc comments ( #1034 )
2022-01-17 12:38:16 +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
556ace8f33
fix(napi-derive,cli): export type alias for original name
2021-12-25 17:36:12 +08:00
LongYinan
f76a12eb5a
fix(napi-derive): ignore warnings on generated fn
...
Close https://github.com/napi-rs/napi-rs/issues/968
2021-12-25 01:24:58 +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
f7571d71c0
fix(napi-derive): codegen bug when multi impl on same file
2021-12-20 16:00:11 +08:00
h-a-n-a
72f58204d2
test: add tests for skip_typescript
2021-12-19 20:17:54 +08:00
h-a-n-a
df9dc91562
feat(napi): add ts typegen skip
2021-12-19 19:45:21 +08:00
LongYinan
4ec4400703
fix(napi-derive-backend): Null and Undefined return type
2021-12-18 13:42:55 +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
b2e71b5e03
feat(napi-derive): add noop feature to skip napi function register
2021-12-08 11:30:43 +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
f7a101db01
chore: cleanup stale codes
2021-12-07 21:45:40 +08:00
LongYinan
27c4790e7b
fix(napi-derive): disable register logic in rust test
2021-12-06 12:58:58 +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
c365c15639
style: clippy fix
2021-11-25 23:35:50 +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
f83e167bd2
feat(napi): implement from_vec
for Array
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
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
b4a8cadb21
fix(napi-derive-backend): Option value should produce optional types
2021-11-16 13:02:40 +08:00
LongYinan
b8bcdd9c04
fix(napi-derive-backend): JsBuffer should map to Buffer type
2021-11-16 12:35:22 +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
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
LongYinan
413a55545f
fix(napi-derive-backend): wrong restrict on Result return type
2021-11-10 13:15:54 +08:00
LongYinan
785388ae40
fix(napi-derive): missing move in async fn
2021-11-06 22:19:42 +08:00
LongYinan
e9ab2192da
fix(napi-derive): return Result type in Constructor and Factory
2021-11-06 21:48:18 +08:00
LongYinan
44040e3bfe
fix(napi-derive): type generate issue for Factory and Class
2021-11-06 13:51:55 +08:00
LongYinan
e78cdd3c22
feat(napi): support static class factory
2021-11-06 13:51:55 +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
LongYinan
f26cd4aa7b
feat(napi): implement Either
type
2021-11-02 18:57:57 +08:00
LongYinan
29277308d7
fix(napi-derive-backend): generate the same code if source was not changed
2021-10-31 13:13:21 +08:00
LongYinan
813d671d76
fix(napi-derive-backend): always generate CallContext for constructor function
2021-10-28 20:28:42 +08:00
forehalo
0ee80662be
support async functions
2021-10-27 14:42:57 +08:00
forehalo
aa77c8ff97
fix: wrong name len used for function creating
2021-10-27 14:42:57 +08:00
forehalo
5b39035541
serde support
2021-10-27 14:42:57 +08:00
forehalo
f4c0b0639b
impl To/FromNapiValue for HashMap
2021-10-27 14:42:57 +08:00
forehalo
f66f79e587
throw if napi function returns Err variant of Result<T>
2021-10-27 14:42:57 +08:00
forehalo
ee7a146ea1
update class demo with custom constructor
2021-10-27 14:42:57 +08:00
forehalo
0d018a5470
impl ToNapiValue for Result<T>
2021-10-27 14:42:57 +08:00
forehalo
032861c5bc
support typegen for Result<T>
2021-10-27 14:42:57 +08:00
LongYinan
e69a763284
perf(napi): ignore callback info while no arguments
2021-10-01 15:01:23 +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