diff --git a/Cargo.lock b/Cargo.lock index 2119c841232..632a3366be4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1870,19 +1870,12 @@ dependencies = [ "ahash", "anyhow", "browserslist-rs", - "glob", - "mockall", - "napi", - "napi-derive", "nodejs-semver", "parcel-resolver", - "parcel_filesystem", - "parcel_napi_helpers", "serde", "serde-value", "serde_json", "serde_repr", - "toml", "xxhash-rust", ] diff --git a/crates/node-bindings/src/core/js_requests/config_request/mod.rs b/crates/node-bindings/src/core/js_requests/config_request/mod.rs index bf2de7ad779..74da3db834a 100644 --- a/crates/node-bindings/src/core/js_requests/config_request/mod.rs +++ b/crates/node-bindings/src/core/js_requests/config_request/mod.rs @@ -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; diff --git a/crates/node-bindings/src/core/js_requests/entry_request/mod.rs b/crates/node-bindings/src/core/js_requests/entry_request/mod.rs index 5958190addf..c61c489c1e5 100644 --- a/crates/node-bindings/src/core/js_requests/entry_request/mod.rs +++ b/crates/node-bindings/src/core/js_requests/entry_request/mod.rs @@ -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`. diff --git a/crates/node-bindings/src/core/mod.rs b/crates/node-bindings/src/core/mod.rs index e38157de5d1..1d672f64653 100644 --- a/crates/node-bindings/src/core/mod.rs +++ b/crates/node-bindings/src/core/mod.rs @@ -1,2 +1,4 @@ //! JavaScript API for `parcel_core::requests` pub mod js_requests; +pub mod project_path; +pub mod requests; diff --git a/crates/parcel_core/src/project_path.rs b/crates/node-bindings/src/core/project_path.rs similarity index 100% rename from crates/parcel_core/src/project_path.rs rename to crates/node-bindings/src/core/project_path.rs diff --git a/crates/parcel_core/src/requests/config_request/mod.rs b/crates/node-bindings/src/core/requests/config_request/mod.rs similarity index 98% rename from crates/parcel_core/src/requests/config_request/mod.rs rename to crates/node-bindings/src/core/requests/config_request/mod.rs index 65e8b202a3c..d69efe3aa50 100644 --- a/crates/parcel_core/src/requests/config_request/mod.rs +++ b/crates/node-bindings/src/core/requests/config_request/mod.rs @@ -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; @@ -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() { diff --git a/crates/parcel_core/src/requests/entry_request/mod.rs b/crates/node-bindings/src/core/requests/entry_request/mod.rs similarity index 97% rename from crates/parcel_core/src/requests/entry_request/mod.rs rename to crates/node-bindings/src/core/requests/entry_request/mod.rs index 806b5572ac4..956c6b15356 100644 --- a/crates/parcel_core/src/requests/entry_request/mod.rs +++ b/crates/node-bindings/src/core/requests/entry_request/mod.rs @@ -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)] diff --git a/crates/parcel_core/src/requests/mod.rs b/crates/node-bindings/src/core/requests/mod.rs similarity index 100% rename from crates/parcel_core/src/requests/mod.rs rename to crates/node-bindings/src/core/requests/mod.rs diff --git a/crates/parcel_core/src/requests/request_api/js_request_api.rs b/crates/node-bindings/src/core/requests/request_api/js_request_api.rs similarity index 94% rename from crates/parcel_core/src/requests/request_api/js_request_api.rs rename to crates/node-bindings/src/core/requests/request_api/js_request_api.rs index 138597e3f52..cd015ffa76b 100644 --- a/crates/parcel_core/src/requests/request_api/js_request_api.rs +++ b/crates/node-bindings/src/core/requests/request_api/js_request_api.rs @@ -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. diff --git a/crates/parcel_core/src/requests/request_api/mod.rs b/crates/node-bindings/src/core/requests/request_api/mod.rs similarity index 96% rename from crates/parcel_core/src/requests/request_api/mod.rs rename to crates/node-bindings/src/core/requests/request_api/mod.rs index 2ccf5763276..9ca4c4a0192 100644 --- a/crates/parcel_core/src/requests/request_api/mod.rs +++ b/crates/node-bindings/src/core/requests/request_api/mod.rs @@ -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; diff --git a/crates/parcel_core/Cargo.toml b/crates/parcel_core/Cargo.toml index 9d3cf720a1c..1a87fa76887 100644 --- a/crates/parcel_core/Cargo.toml +++ b/crates/parcel_core/Cargo.toml @@ -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" diff --git a/crates/parcel_core/src/lib.rs b/crates/parcel_core/src/lib.rs index b615f341806..e7101699c5a 100644 --- a/crates/parcel_core/src/lib.rs +++ b/crates/parcel_core/src/lib.rs @@ -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::*; diff --git a/crates/parcel_core/src/parcel/mod.rs b/crates/parcel_core/src/parcel/mod.rs new file mode 100644 index 00000000000..0fe87e1b43e --- /dev/null +++ b/crates/parcel_core/src/parcel/mod.rs @@ -0,0 +1,2 @@ +mod parcel; +pub use parcel::*; diff --git a/crates/parcel_core/src/parcel/parcel.rs b/crates/parcel_core/src/parcel/parcel.rs new file mode 100644 index 00000000000..04b6710b30b --- /dev/null +++ b/crates/parcel_core/src/parcel/parcel.rs @@ -0,0 +1,12 @@ +// TODO eventual public API for Parcel +pub struct Parcel {} + +impl Parcel { + pub fn run() { + todo!(); + } + + pub fn watch() { + todo!(); + } +} diff --git a/crates/parcel_core/src/bundle_graph.rs b/crates/parcel_core/src/types/bundle_graph.rs similarity index 100% rename from crates/parcel_core/src/bundle_graph.rs rename to crates/parcel_core/src/types/bundle_graph.rs