Skip to content

Commit

Permalink
Add napi logging and fix js file system (#9712)
Browse files Browse the repository at this point in the history
  • Loading branch information
MonicaOlejniczak committed May 10, 2024
1 parent 69e4161 commit fcc6b59
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 4 deletions.
Expand Up @@ -3,7 +3,6 @@ use std::rc::Rc;
use napi::Env;
use napi::JsObject;
use napi_derive::napi;

use parcel_core::requests::config_request::run_config_request;
use parcel_core::requests::config_request::ConfigRequest;
use parcel_core::requests::request_api::js_request_api::JSRequestApi;
Expand Down
Expand Up @@ -3,7 +3,6 @@ use std::rc::Rc;
use napi::Env;
use napi::JsObject;
use napi_derive::napi;

use parcel_core::requests::entry_request::run_entry_request;
use parcel_core::requests::entry_request::EntryRequestInput;
use parcel_core::requests::entry_request::EntryResult;
Expand Down
3 changes: 2 additions & 1 deletion crates/parcel_core/src/requests/entry_request/mod.rs
Expand Up @@ -173,9 +173,10 @@ pub fn run_entry_request(

#[cfg(test)]
mod test {
use super::*;
use parcel_filesystem::in_memory_file_system::InMemoryFileSystem;

use super::*;

#[test]
fn test_merge_results() {
let entry1 = Entry {
Expand Down
Expand Up @@ -53,7 +53,7 @@ impl FileSystem for JSDelegateFileSystem {
let result = call_method(
&self.env,
&self.js_delegate,
"canonicalize",
"realpathSync",
&[&js_path.into_unknown()],
)?;
Ok(path_from_js(result)?)
Expand Down
20 changes: 20 additions & 0 deletions crates/parcel_napi_helpers/src/lib.rs
Expand Up @@ -2,6 +2,7 @@ use napi::bindgen_prelude::FromNapiValue;
use napi::Env;
use napi::JsFunction;
use napi::JsObject;
use napi::JsUndefined;
use napi::JsUnknown;
use napi::NapiRaw;

Expand Down Expand Up @@ -66,3 +67,22 @@ pub fn call_method(
let result = method_fn.call(Some(&js_object), &args)?;
Ok(result)
}

/// Logs napi values using the JavaScript console
///
/// This function can be used to debug what data the pointers actually refer to
///
pub fn console_log<T>(env: Env, args: &[T]) -> napi::Result<JsUndefined>
where
T: NapiRaw,
{
let console_object = env
.get_global()?
.get_named_property::<JsObject>("console")?;

console_object
.get_named_property_unchecked::<JsFunction>("log")?
.call(Some(&console_object), args)?;

env.get_undefined()
}

0 comments on commit fcc6b59

Please sign in to comment.