napi-rs/examples
Bo e47c13f177
fix(napi): check if the tokio runtime exists when registering the module
And recreate it if it does not exist.

In windows, electron renderer process will crash if:
1. Import some NAPI module that enable `tokio-rt` flag in renderer process.
2. Reload the page.
3. Call a function imported from that NAPI module.

Because the tokio runtime will be dropped when reloading the page, and won't create again, but currently we assume that the runtime must exist in tokio-based `within_runtime_if_available`.
This will cause some panic like this:

```
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', napi-rs\crates\napi\src\tokio_runtime.rs:72:42
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error: Renderer process crashed: crashed, exitCode: -529697949
    at EventEmitter.<anonymous> (napi-rs\examples\napi\electron.js:33:9)
    at EventEmitter.emit (node:events:525:35)
```
2023-03-28 12:03:00 +08:00
..
binary feat(cli): add support for building binaries 2022-04-01 14:00:42 +08:00
napi fix(napi): check if the tokio runtime exists when registering the module 2023-03-28 12:03:00 +08:00
napi-compat-mode feat(napi): property getter and setter with closure (#1526) 2023-03-21 11:22:07 +08:00
napi-shared fix(cli,napi-derive): re-export types from shared crate (#1531) 2023-03-21 18:12:52 +08:00
tsconfig.json Introduce #[napi] procedural macro to automation development boilerplate (#696) 2021-09-23 01:29:09 +08:00