Commit graph

325 commits

Author SHA1 Message Date
Jacob Kiesel
1040c41760
feat(napi): add some useful derived traits for the Null type (#1241) 2022-07-22 23:45:02 +08:00
LongYinan
5b2bff79d4
Release independent packages
napi@2.6.3
2022-07-11 21:54:02 +08:00
LongYinan
16ec32b68e
fix(napi): memory leak in Buffer/ArrayBuffer 2022-07-11 21:34:27 +08:00
LongYinan
552ec43fae
fix(napi): use Mutex instead of Atomic in ThreadSafeFunction 2022-07-10 00:07:56 +08:00
LongYinan
a4448d3e24
Revert "fix(napi): memory leak in ThreadsafeFunction"
This reverts commit 4dfc770c2a.
2022-07-09 15:48:46 +08:00
LongYinan
3eccf45439
Release independent packages
napi@2.6.2
2022-07-08 13:50:37 +08:00
LongYinan
4dfc770c2a
fix(napi): memory leak in ThreadsafeFunction 2022-07-08 00:09:14 +08:00
Ivan Enderlin
1259ce1ba4 fix(napi) undefined is recognized as a valid None for Option<T>. 2022-07-07 15:50:55 +02:00
LongYinan
087b3ed594
Release independent packages
napi@2.6.1
2022-07-07 00:17:02 +08:00
LongYinan
bffc49f11a
fix(napi): drop buffer inner data only when Reference count is 0 2022-07-07 00:01:16 +08:00
LongYinan
661b418eb6
Release independent packages
napi@2.6.0
napi-derive@2.6.0
2022-07-06 23:33:50 +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
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
2e7f3affe1
Release independent packages
napi@2.5.0
napi-derive@2.5.0
napi-build@2.0.1
2022-06-10 15:37:27 +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
Sunli
5cdfc8cb7e feat(napi) implement From<Infallible> for napi::Error 2022-05-30 21:44:03 +08: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
messense
5cbeac59dc
Add rust-version field to Cargo.tomls (#1190) 2022-05-20 16:23:10 +08:00
LongYinan
822f4af1cc
Release independent packages
- napi@2.4.3
2022-05-12 16:59:33 +08:00
LongYinan
a5c19ce1da
fix(napi): type constraint for either types 2022-05-12 15:12:32 +08:00
LongYinan
fb8d8b97d6
Release independent packages
napi@2.4.2
napi-derive@2.4.2
napi-sys@2.2.2
2022-05-10 22:32:06 +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
79d7453713
Release independent packages 2022-05-07 20:23:01 +08:00
LongYinan
e551bd7c1a
fix(napi): load Node-API symbols manually on Windows 2022-05-07 18:54:37 +08:00
LongYinan
daf5f1f9e9
Release independent packages
- napi@2.4.0
- napi-derive@2.4.0
- napi-sys@2.2.0
- napi-build@2.0.0
2022-05-07 15:51:22 +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
LongYinan
b074608582
docs: broken example in README.md
Fix https://github.com/napi-rs/napi-rs/issues/1158
2022-05-06 17:46:20 +08:00
LongYinan
4b06121c5e
docs: broken links for Prisma and Next.js 2022-05-05 11:59:06 +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
2fecc109ef
Release independent packages
napi@2.3.3
napi-derive@2.3.2
2022-04-27 14:14:04 +08:00
LongYinan
66a107a4b9
chore(napi): upgrade windows crate 2022-04-27 13:59:56 +08:00
LongYinan
2e96297e1a
chore: drop node 17, add node 18 2022-04-27 13:17:39 +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
5aa61c2142 fix(napi): use create_buffer/arrary_buffer if provided data is empty 2022-04-26 16:53:13 +08:00
LongYinan
a41cc07f21
Release independent packages
napi@2.3.2
napi-derive@2.3.1
2022-04-25 16:09:57 +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
e81e3dbb2e
Release independent packages
napi@2.3.1
2022-04-15 21:41:14 +08:00
Chanakya
09d7fd671a fix cannot find trait ToNapiValue error 2022-04-15 21:02:40 +08:00
LongYinan
ce308a3b54
Release independent packages
napi@2.3.0
napi-derive@2.3.0
2022-04-14 17:27:21 +08:00
LongYinan
c553dcd4e0 feat(napi): relax the value type on ThreadSafeFunction 2022-04-14 14:24:47 +08:00
LongYinan
f05ced0782 feat(napi): add from_unknown method on FromNapiValue 2022-04-14 14:24:47 +08:00
Walt Seymour
73882337cc unrwap -> unwrap 2022-04-14 14:24:32 +08:00
LongYinan
c605911cdf chore(napi): show tips if create different buffers with same data 2022-04-13 13:24:53 +08:00
LongYinan
1d1c1706d5 Release independent packages
napi@2.3.0-alpha.1
napi-derive@2.3.0-alpha.1
2022-04-13 13:24:53 +08:00
LongYinan
63a557f6cc test(napi): add memory tests for Reference 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
be0f4760ff Release independent packages
napi@2.3.0-canary.0
napi-derive@2.3.0-canary.0
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
9b0103cf22
fix(napi): remove CString::from_vec_with_nul_unchecked 2022-04-13 01:29:23 +08:00
Stéphan Kochen
50f62f40d7
fix(napi): double allocation in create_buffer 2022-04-01 14:31:29 +08:00
LongYinan
71f3c0ef7e
Release independent packages
napi@2.2.0
napi-derive@2.2.0
2022-03-06 14:23:43 +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
messense
132a9a4ae2 chore: fix clippy::needless_late_init lint 2022-02-28 12:09:40 +08:00
Martin Madsen
e9f43495c2 chore(napi): Mark shutdown_tokio_rt unsafe 2022-02-16 18:02:10 +01:00
Martin Madsen
5a0c1c2af3 fix(napi): cleanup registered hook upon unloading module with tokio_rt 2022-02-16 15:28:16 +01: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
f3c34cc452 chrono_date implies napi5 2022-02-10 06:44:43 +01:00
Simon Vandel Sillesen
2b2841e8d3 feat: Add support for Date <-> chrono::DateTime<Utc> 2022-02-09 20:59:58 +01:00
LongYinan
e607bc158e
Release independent packages
- napi@2.1.0
- napi-derive@2.1.0
2022-02-09 20:44:53 +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
5002e782a4
docs(napi): typo 2022-02-06 16:39:11 +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
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
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
messense
a109c54918 fix(napi): add missing nul byte to noop
Fixes a global-buffer-overflow bug
2022-01-22 12:34:55 +08:00
LongYinan
1238ee0276
Release independent packages
napi@2.0.4
napi-derive@2.0.8
2022-01-18 14:38:34 +08:00
Jose Acevedo
36e808d2a6 feat: add 'coerce_to_object' method to Array 2022-01-17 21:07:25 -08:00
LongYinan
cbbccf2084
Merge pull request #1029 from napi-rs/fix-clippy
fix(napi): clippy error on 1.58
2022-01-14 11:48:25 +08:00
LongYinan
41bcd9c50b
fix(napi): clippy error on 1.58 2022-01-14 11:21:03 +08:00
Dave Ceddia
1006b3a489 fix(napi): abort threadsafe functions upon env cleanup
This fixes a deadlock/panic in Electron when the window is reloaded.
2022-01-13 10:06:50 -05:00
LongYinan
1768cf69ee
Release independent packages
napi@2.0.3
2022-01-13 14:52:19 +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
46168ee6d6
Release independent packages
napi@2.0.2
2021-12-22 09:50:55 +08:00
LongYinan
87d1821e73
fix(napi): compile issue without compat mode 2021-12-22 09:36:47 +08:00
LongYinan
828c6cf625
Release independent packages
napi@2.0.1
napi-derive@2.0.1
2021-12-22 00:19:16 +08:00
LongYinan
4406059de1
fix(napi): addon packages become undefined in worker_threads 2021-12-21 23:38:35 +08:00
LongYinan
915b423026
fix(napi): only shutdown tokio runtime once 2021-12-21 23:22:23 +08:00
LongYinan
0d38cb01bd
chore(napi): upgrade windows crate to 0.29 2021-12-20 15:16:12 +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
LongYinan
bbd466b69c
Release independent packages 2021-12-17 16:56:45 +08:00
LongYinan
8debc09b7f
Release independent packages
napi@2.0.0-beta.7
2021-12-14 13:00:07 +08:00
LongYinan
91d07810a2
fix(napi): ThreadsafeFunction with ErrorStrategy::Fatal should throw fatal exception 2021-12-14 12:47:23 +08:00
LongYinan
c8e6ab46d3
Release independent packages
napi@2.0.0-beta.6
2021-12-13 13:18:24 +08:00
h-a-n-a
0aa7cd3d32 feat(napi): support external deref/derefMut 2021-12-11 13:42:46 +08:00
LongYinan
0723e158e5
Release independent packages
napi@2.0.0-beta.5
2021-12-08 18:00:06 +08:00
LongYinan
7470407306
feat(napi): throw error on non constructable class 2021-12-08 17:59:30 +08:00
LongYinan
e452c00fb4
feat: edition 2021 2021-12-08 13:18:47 +08:00
LongYinan
454711981b
Release independent packages
napi-derive-backend@1.0.15
napi-derive@2.0.0-beta.3
napi@2.0.0-beta.4
2021-12-07 23:40:50 +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
af7583dadf
napi@2.0.0-beta.3 2021-12-07 12:50:19 +08:00
LongYinan
00be6e5e0c
feat(napi): impl FromNapiValue for &str 2021-12-07 12:50:18 +08:00
LongYinan
8d6997f61e
Release independent packages
napi@2.0.0-beta.2
2021-12-03 17:06:24 +08:00
LongYinan
8fc1cfcb38
feat(napi): TypeName and ToNapiValue should apply to any HashMap 2021-12-03 16:49:26 +08:00
LongYinan
53fe4d3aa5
feat(napi): re-export ctor as module_init 2021-12-03 16:49:26 +08:00
LongYinan
77dab3e9f7
docs(napi): prettier 2021-12-03 16:49:26 +08:00
LongYinan
2d5b997b7d
feat(napi): add experimental flag 2021-12-03 16:49:26 +08:00
LongYinan
140fa7b502
Release independent packages
napi@2.0.0-beta.1
napi-derive@2.0.0-beta.1
napi-derive-backend@1.0.13
2021-12-02 17:10:58 +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
24c5d6950e
Release independent packages
napi@2.0.0-beta.0
napi-sys@2.1.0
napi-derive@2.0.0-beta.0
napi-build@1.2.0
napi-derive-backend@1.0.12
2021-12-02 14:35:57 +08:00
Idan Attias
a5ba40ceda
feat(napi): enable node_api syntax error experimental functions 2021-12-02 13:59:27 +08:00
LongYinan
d9c53d728b
feat(napi): support TypedArray input and output 2021-12-02 11:26:52 +08:00
LongYinan
fa23769e9d
feat(napi): allow create reference with refcount 2021-11-30 17:14:01 +08:00
LongYinan
d410f6e903
Release independent packages
napi-sys@2.0.0
napi@2.0.0-alpha.8
2021-11-30 00:18:22 +08:00
LongYinan
a7067d6732
feat(sys): remove rust enum in sys 2021-11-29 12:52:42 +08:00
LongYinan
aaf1bd14ea
Release independent packages
napi@2.0.0-alpha.7
napi-derive@2.0.0-alpha.8
napi-build@1.1.2
napi-derive-backend@1.0.9
2021-11-25 23:25:29 +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
LongYinan
1dcd0fec1e
refactor(napi): remove compatible Either struct
Reexport `Either` from `bindgen_runtime::Either`
2021-11-25 17:53:41 +08:00
LongYinan
a1e3292b7a
napi@2.0.0-alpha.6 2021-11-21 23:11:43 +08:00
LongYinan
e8cfa0b467
fix(napi): freeze and seal should be methods of JsObject 2021-11-21 23:11:14 +08:00
LongYinan
4aa56a148c
fix(napi): missing coerce_to_bool on JsValue 2021-11-21 23:10:29 +08:00
LongYinan
4874c72340
Release independent packages
napi-derive-backend@1.0.8
napi-derive@2.0.0-alpha.7
napi@2.0.0-alpha.5
2021-11-21 16:48:05 +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
6bfaaebadc
Release independent packages
napi@2.0.0-alpha.4

Generated by cargo-workspaces
2021-11-16 17:58:03 +08:00
LongYinan
a0c443fdfb
feat(napi): switch to windows crate 2021-11-16 17:41:24 +08:00
LongYinan
052bcd8f3e
Release independent packages
napi@2.0.0-alpha.3
napi-derive-backend@1.0.5
napi-derive@2.0.0-alpha.4

Generated by cargo-workspaces
2021-11-16 10:44:48 +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
92aa3fcf53
chore(napi): add log_js_value helper 2021-11-15 16:55:15 +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
LongYinan
30031f09ed
feat(napi): create ThreadsafeFunction from JsFunction 2021-11-12 17:22:57 +08:00
LongYinan
0424a08c06
feat(napi): BigInt codegen support 2021-11-11 16:18:25 +08:00
LongYinan
1ab52c42b6
Release independent packages
napi@2.0.0-alpha.2
napi-derive@2.0.0-alpha.2
napi-derive-backend@1.0.3
2021-11-07 00:06:29 +08:00
LongYinan
e0671fe071
feat(napi): implement Env::throw to throw any JsValue 2021-11-06 23:33:58 +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
50e08b6033
Release independent packages
napi@2.0.0-alpha.1
napi-build@1.1.1
napi-derive@2.0.0-alpha.1
napi-derive-backend@1.0.2
napi-sys@1.1.2

Generated by cargo-workspaces
2021-10-31 23:37:05 +08:00
LongYinan
157b9c6186
chore: make all crates indepent 2021-10-31 23:35:39 +08:00
LongYinan
27f671c5c2
Merge pull request #820 from napi-rs/buffer
native buffer no need to keep raw napi pointer
2021-10-30 00:17:22 +08:00
forehalo
99b2723618
native buffer no need to keep raw napi pointer 2021-10-30 00:05:05 +08:00
LongYinan
e709f25635 feat(napi): impl from/to NapiValue for JsUnkown 2021-10-29 20:55:06 +08:00
LongYinan
698bc701e8 fix(napi): export tokio_runtime only when tokio_rt feature enabled 2021-10-28 20:28:42 +08:00
forehalo
0ee80662be support async functions 2021-10-27 14:42:57 +08:00
forehalo
cf0b5785cd normalize tokio runtime 2021-10-27 14:42:57 +08:00
forehalo
8b4e7af67f buffer example 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
0d018a5470 impl ToNapiValue for Result<T> 2021-10-27 14:42:57 +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