mirror of
https://github.com/napi-rs/napi-rs.git
synced 2025-12-08 19:56:07 +00:00
106 lines
2.1 KiB
Rust
106 lines
2.1 KiB
Rust
#![allow(dead_code)]
|
|
#![allow(unreachable_code)]
|
|
#![allow(clippy::disallowed_names)]
|
|
#![allow(clippy::uninlined_format_args)]
|
|
#![allow(clippy::new_without_default)]
|
|
#![allow(non_snake_case)]
|
|
#![allow(deprecated)]
|
|
|
|
#[cfg(not(target_family = "wasm"))]
|
|
use napi::bindgen_prelude::create_custom_tokio_runtime;
|
|
use napi::bindgen_prelude::{JsObjectValue, Object, Result, Symbol};
|
|
pub use napi_shared::*;
|
|
|
|
#[macro_use]
|
|
extern crate napi_derive;
|
|
#[macro_use]
|
|
extern crate serde_derive;
|
|
|
|
#[cfg(feature = "snmalloc")]
|
|
#[global_allocator]
|
|
static ALLOC: snmalloc_rs::SnMalloc = snmalloc_rs::SnMalloc;
|
|
|
|
#[cfg(feature = "mimalloc")]
|
|
#[global_allocator]
|
|
static ALLOC: mimalloc_safe::MiMalloc = mimalloc_safe::MiMalloc;
|
|
|
|
#[cfg(not(target_family = "wasm"))]
|
|
#[napi_derive::module_init]
|
|
fn init() {
|
|
use std::thread::current;
|
|
|
|
let rt = tokio::runtime::Builder::new_multi_thread()
|
|
.enable_all()
|
|
.on_thread_start(|| {
|
|
let thread = std::thread::current();
|
|
println!("tokio thread started {:?}", thread.name());
|
|
})
|
|
.build()
|
|
.unwrap();
|
|
create_custom_tokio_runtime(rt);
|
|
}
|
|
|
|
#[napi]
|
|
/// This is a const
|
|
pub const DEFAULT_COST: u32 = 12;
|
|
|
|
#[napi(skip_typescript)]
|
|
pub const TYPE_SKIPPED_CONST: u32 = 12;
|
|
|
|
#[napi]
|
|
pub fn shutdown_runtime() {
|
|
#[cfg(all(target_family = "wasm", tokio_unstable))]
|
|
{
|
|
napi::bindgen_prelude::shutdown_async_runtime();
|
|
}
|
|
}
|
|
|
|
#[napi(module_exports)]
|
|
pub fn exports(mut export: Object) -> Result<()> {
|
|
let symbol = Symbol::for_desc("NAPI_RS_SYMBOL");
|
|
export.set_named_property("NAPI_RS_SYMBOL", symbol)?;
|
|
Ok(())
|
|
}
|
|
|
|
mod array;
|
|
mod r#async;
|
|
mod bigint;
|
|
mod callback;
|
|
mod class;
|
|
mod class_factory;
|
|
mod constructor;
|
|
mod date;
|
|
mod either;
|
|
mod r#enum;
|
|
mod env;
|
|
mod error;
|
|
mod external;
|
|
#[cfg(not(target_family = "wasm"))]
|
|
mod fetch;
|
|
mod fn_return_if_invalid;
|
|
mod fn_strict;
|
|
mod fn_ts_override;
|
|
mod function;
|
|
mod generator;
|
|
mod js_mod;
|
|
mod lifetime;
|
|
mod map;
|
|
mod nullable;
|
|
mod number;
|
|
mod object;
|
|
mod promise;
|
|
mod reference;
|
|
mod scope;
|
|
mod serde;
|
|
mod set;
|
|
mod shared;
|
|
mod stream;
|
|
mod string;
|
|
mod symbol;
|
|
mod task;
|
|
mod threadsafe_function;
|
|
mod transparent;
|
|
mod r#type;
|
|
mod typed_array;
|
|
mod wasm;
|