diff --git a/src/crypto/mod.rs b/src/crypto/mod.rs index 0f27259..01fcc5c 100644 --- a/src/crypto/mod.rs +++ b/src/crypto/mod.rs @@ -5,6 +5,8 @@ use javy_plugin_api::javy::{ }; use rand::RngCore; +pub const CRYPTO_JS: &str = include_str!("crypto.js"); + pub fn bless_get_random_values(args: Args<'_>) -> Result> { let (cx, args) = args.release(); let (data, offset, length) = extract_args(&args, "Javy.Crypto.getRandomValues")?; diff --git a/src/fetch/mod.rs b/src/fetch/mod.rs index fbe922b..eabd265 100644 --- a/src/fetch/mod.rs +++ b/src/fetch/mod.rs @@ -7,6 +7,8 @@ use javy_plugin_api::javy::{ }; use std::collections::HashMap; +pub const FETCH_JS: &str = include_str!("fetch.js"); + /// A fetch-compliant HTTP client pub fn bless_fetch_request(args: Args<'_>) -> Result> { let (cx, args) = args.release(); diff --git a/src/lib.rs b/src/lib.rs index 6885c03..2e19da8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -18,14 +18,17 @@ pub mod llm; pub mod wasi; #[cfg(feature = "crypto")] -use crypto::bless_get_random_values; +use crypto::{bless_get_random_values, CRYPTO_JS}; #[cfg(feature = "fetch")] -use fetch::bless_fetch_request; +use fetch::{bless_fetch_request, FETCH_JS}; #[cfg(feature = "llm")] use llm::bless_llm_plugin; +#[cfg(feature = "wasip1")] +use wasi::PREVIEW_1_JS; + import_namespace!("bless_core_plugins"); #[export_name = "initialize_runtime"] @@ -118,11 +121,11 @@ pub extern "C" fn initialize_runtime() { )?; #[cfg(feature = "crypto")] - ctx.eval::<(), _>(include_str!("crypto/crypto.js"))?; + ctx.eval::<(), _>(CRYPTO_JS)?; #[cfg(feature = "fetch")] - ctx.eval::<(), _>(include_str!("fetch/fetch.js"))?; + ctx.eval::<(), _>(FETCH_JS)?; #[cfg(feature = "wasip1")] - ctx.eval::<(), _>(include_str!("wasi/preview_1.js"))?; + ctx.eval::<(), _>(PREVIEW_1_JS)?; Ok::<_, anyhow::Error>(()) }) .unwrap(); diff --git a/src/wasi/mod.rs b/src/wasi/mod.rs index 74bb659..0ffd8bc 100644 --- a/src/wasi/mod.rs +++ b/src/wasi/mod.rs @@ -29,6 +29,8 @@ pub(crate) use stat::wasi_preview1_path_filestat_get; pub(crate) use symlink::wasi_preview1_path_symlink; pub(crate) use unlink::wasi_preview1_path_unlink_file; +pub const PREVIEW_1_JS: &str = include_str!("preview_1.js"); + #[inline] pub fn process_error(ctx: Ctx<'_>, rs: i32) -> Result<()> { let obj = JObject::new(ctx.clone())?;