Skip to content

Commit

Permalink
Public rust crate for Parcel API and moving napi bindings to node_bin…
Browse files Browse the repository at this point in the history
…dings (#9727)

* Added eventual public API for Parcel crate, moved napi binding code to node_bindings crate

* Dependency

---------

Co-authored-by: David Alsh <[email protected]>
  • Loading branch information
alshdavid and David Alsh authored May 24, 2024
1 parent d988abe commit 38635b5
Show file tree
Hide file tree
Showing 15 changed files with 38 additions and 41 deletions.
7 changes: 0 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ 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;

use super::super::requests::config_request::run_config_request;
use super::super::requests::config_request::ConfigRequest;
use super::super::requests::request_api::js_request_api::JSRequestApi;
use crate::core::js_requests::request_options::input_fs_from_options;
use crate::core::js_requests::request_options::project_root_from_options;

Expand Down
10 changes: 5 additions & 5 deletions crates/node-bindings/src/core/js_requests/entry_request/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ 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;
use parcel_core::requests::entry_request::RunEntryRequestParams;
use parcel_core::requests::request_api::js_request_api::JSRequestApi;
use parcel_napi_helpers::anyhow_napi;

use super::super::requests::entry_request::run_entry_request;
use super::super::requests::entry_request::EntryRequestInput;
use super::super::requests::entry_request::EntryResult;
use super::super::requests::entry_request::RunEntryRequestParams;
use super::super::requests::request_api::js_request_api::JSRequestApi;
use crate::core::js_requests::request_options::input_fs_from_options;

/// napi entry-point for `run_entry_request`.
Expand Down
2 changes: 2 additions & 0 deletions crates/node-bindings/src/core/mod.rs
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
//! JavaScript API for `parcel_core::requests`
pub mod js_requests;
pub mod project_path;
pub mod requests;
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ use std::path::Path;
use napi_derive::napi;
use parcel_resolver::FileSystem;

use crate::project_path::ProjectPath;
use crate::requests::request_api::RequestApi;
use crate::core::project_path::ProjectPath;
use crate::core::requests::request_api::RequestApi;

pub type InternalGlob = String;

Expand Down Expand Up @@ -158,8 +158,8 @@ mod test {
use parcel_filesystem::os_file_system::OsFileSystem;

use super::*;
use crate::requests::config_request::run_config_request;
use crate::requests::request_api::MockRequestApi;
use crate::core::requests::config_request::run_config_request;
use crate::core::requests::request_api::MockRequestApi;

#[test]
fn test_run_empty_config_request_does_nothing() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ use anyhow::anyhow;
use napi_derive::napi;
use parcel_resolver::FileSystem;

use crate::project_path::ProjectPath;
use crate::requests::config_request::InternalFileCreateInvalidation;
use crate::requests::request_api::RequestApi;
use crate::core::project_path::ProjectPath;
use crate::core::requests::config_request::InternalFileCreateInvalidation;
use crate::core::requests::request_api::RequestApi;

#[napi(object)]
#[derive(Debug, Clone, PartialEq)]
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ use napi::JsObject;
use napi::JsUnknown;
use parcel_napi_helpers::call_method;

use crate::requests::config_request::InternalFileCreateInvalidation;
use crate::requests::request_api::RequestApi;
use crate::requests::request_api::RequestApiResult;
use crate::core::requests::config_request::InternalFileCreateInvalidation;
use crate::core::requests::request_api::RequestApi;
use crate::core::requests::request_api::RequestApiResult;

/// This is a "delegate" implementation of `RequestApi` that delegates calls to a
/// JavaScript object.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::path::Path;

use mockall::automock;

use crate::requests::config_request::InternalFileCreateInvalidation;
use crate::core::requests::config_request::InternalFileCreateInvalidation;

#[cfg(not(feature = "napi_noop"))]
pub mod js_request_api;
Expand Down
10 changes: 1 addition & 9 deletions crates/parcel_core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,16 @@ description = "Core logic for the parcel bundler"

[features]
default = []
napi_noop = ["napi-derive/noop"]

[dependencies]
parcel_filesystem = { path = "../parcel_filesystem" }
parcel_napi_helpers = { path = "../parcel_napi_helpers" }
parcel-resolver = { path = "../../packages/utils/node-resolver-rs" }

ahash = "0.8.11"
anyhow = "1.0.82"
browserslist-rs = "0.15.0"
glob = "0.3.1"
mockall = "0.12.1"
napi = "2.16.4"
napi-derive = { version = "2.16.3" }
nodejs-semver = "4.0.0"
serde = { version = "1.0.200", features = ["derive"] }
serde_json = { version = "1.0.116", features = ["preserve_order"] }
serde_repr = "0.1.19"
serde-value = "0.7.0"
toml = "0.8.12"
xxhash-rust = { version = "0.8.2", features = ["xxh3"] }
anyhow = "1.0.82"
8 changes: 2 additions & 6 deletions crates/parcel_core/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
#![deny(unused_crate_dependencies)]
//! Core re-implementation in Rust
pub mod bundle_graph;
pub mod hash;
pub mod plugin;
pub mod types;

/// New-type for paths relative to a project-root
pub mod project_path;

/// Request types and run functions
pub mod requests;
// pub use parcel::*;
2 changes: 2 additions & 0 deletions crates/parcel_core/src/parcel/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
mod parcel;
pub use parcel::*;
12 changes: 12 additions & 0 deletions crates/parcel_core/src/parcel/parcel.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// TODO eventual public API for Parcel
pub struct Parcel {}

impl Parcel {
pub fn run() {
todo!();
}

pub fn watch() {
todo!();
}
}
File renamed without changes.

0 comments on commit 38635b5

Please sign in to comment.