Commit 59ed066 1 parent a007691 commit 59ed066 Copy full SHA for 59ed066
File tree 16 files changed +98
-38
lines changed
16 files changed +98
-38
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ napi-derive = "2.16.3"
18
18
parcel-js-swc-core = { path = " ../../packages/transformers/js/core" }
19
19
parcel-resolver = { path = " ../../packages/utils/node-resolver-rs" }
20
20
parcel_filesystem = { path = " ../parcel_filesystem" }
21
+ parcel_core = { path = " ../parcel_core" }
21
22
parcel_napi_helpers = { path = " ../parcel_napi_helpers" }
22
23
dashmap = " 5.4.0"
23
24
xxhash-rust = { version = " 0.8.2" , features = [" xxh3" ] }
Original file line number Diff line number Diff line change @@ -4,11 +4,12 @@ use napi::Env;
4
4
use napi:: JsObject ;
5
5
use napi_derive:: napi;
6
6
7
+ use parcel_core:: requests:: config_request:: run_config_request;
8
+ use parcel_core:: requests:: config_request:: ConfigRequest ;
9
+ use parcel_core:: requests:: request_api:: js_request_api:: JSRequestApi ;
10
+
7
11
use crate :: core:: js_requests:: request_options:: input_fs_from_options;
8
12
use crate :: core:: js_requests:: request_options:: project_root_from_options;
9
- use crate :: core:: requests:: config_request:: run_config_request;
10
- use crate :: core:: requests:: config_request:: ConfigRequest ;
11
- use crate :: core:: requests:: request_api:: js_request_api:: JSRequestApi ;
12
13
13
14
/// JavaScript API for running a config request.
14
15
/// At the moment the request fields themselves will be copied on call.
Original file line number Diff line number Diff line change @@ -3,14 +3,15 @@ use std::rc::Rc;
3
3
use napi:: Env ;
4
4
use napi:: JsObject ;
5
5
use napi_derive:: napi;
6
+
7
+ use parcel_core:: requests:: entry_request:: run_entry_request;
8
+ use parcel_core:: requests:: entry_request:: EntryRequestInput ;
9
+ use parcel_core:: requests:: entry_request:: EntryResult ;
10
+ use parcel_core:: requests:: entry_request:: RunEntryRequestParams ;
11
+ use parcel_core:: requests:: request_api:: js_request_api:: JSRequestApi ;
6
12
use parcel_napi_helpers:: anyhow_napi;
7
13
8
14
use crate :: core:: js_requests:: request_options:: input_fs_from_options;
9
- use crate :: core:: requests:: entry_request:: run_entry_request;
10
- use crate :: core:: requests:: entry_request:: EntryRequestInput ;
11
- use crate :: core:: requests:: entry_request:: EntryResult ;
12
- use crate :: core:: requests:: entry_request:: RunEntryRequestParams ;
13
- use crate :: core:: requests:: request_api:: js_request_api:: JSRequestApi ;
14
15
15
16
/// napi entry-point for `run_entry_request`.
16
17
#[ napi]
Original file line number Diff line number Diff line change 1
1
pub mod config_request;
2
2
pub mod entry_request;
3
- mod request_options;
3
+ pub mod request_options;
Original file line number Diff line number Diff line change 1
- //! Core re-implementation in Rust
2
-
3
- /// napi versions of `crate::core::requests`
4
- mod js_requests;
5
- /// New-type for paths relative to a project-root
6
- mod project_path;
7
- /// Request types and run functions
8
- mod requests;
1
+ //! JavaScript API for `parcel_core::requests`
2
+ pub mod js_requests;
Original file line number Diff line number Diff line change 1
1
#![ allow( dead_code) ]
2
2
3
- mod init_sentry;
4
-
5
3
#[ cfg( target_arch = "wasm32" ) ]
6
4
use std:: alloc:: alloc;
7
5
#[ cfg( target_arch = "wasm32" ) ]
8
6
use std:: alloc:: Layout ;
9
7
8
+ mod init_sentry;
9
+
10
10
#[ cfg( target_os = "macos" ) ]
11
11
#[ global_allocator]
12
12
static GLOBAL : jemallocator:: Jemalloc = jemallocator:: Jemalloc ;
@@ -15,7 +15,8 @@ static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc;
15
15
#[ global_allocator]
16
16
static ALLOC : mimalloc:: MiMalloc = mimalloc:: MiMalloc ;
17
17
18
- mod core;
18
+ /// napi versions of `crate::core::requests`
19
+ pub mod core;
19
20
#[ cfg( not( target_arch = "wasm32" ) ) ]
20
21
mod fs_search;
21
22
mod hash;
Original file line number Diff line number Diff line change
1
+ [package ]
2
+ name = " parcel_core"
3
+ version = " 0.1.0"
4
+ edition = " 2021"
5
+ description = " Core logic for the parcel bundler"
6
+
7
+ [features ]
8
+ default = []
9
+ napi_noop = [" napi-derive/noop" ]
10
+
11
+ [dependencies ]
12
+ parcel_filesystem = { path = " ../parcel_filesystem" }
13
+ parcel_napi_helpers = { path = " ../parcel_napi_helpers" }
14
+ parcel-resolver = { path = " ../../packages/utils/node-resolver-rs" }
15
+
16
+ anyhow = " 1.0.82"
17
+ glob = " 0.3.1"
18
+ mockall = " 0.12.1"
19
+ napi = " 2.16.4"
20
+ napi-derive = { version = " 2.16.3" }
21
+ serde = " 1.0.200"
22
+ serde_json = " 1.0.116"
23
+ toml = " 0.8.12"
24
+ xxhash-rust = { version = " 0.8.2" , features = [" xxh3" ] }
Original file line number Diff line number Diff line change
1
+ use xxhash_rust:: xxh3:: xxh3_64;
2
+
3
+ /// Copy of one of the `node-bindings/src/hash.rs` functions.
4
+ pub fn hash_string ( s : String ) -> String {
5
+ let s = s. as_bytes ( ) ;
6
+ let res = xxh3_64 ( s) ;
7
+ format ! ( "{:016x}" , res)
8
+ }
Original file line number Diff line number Diff line change
1
+ //! Core re-implementation in Rust
2
+
3
+ pub mod hash;
4
+ /// New-type for paths relative to a project-root
5
+ pub mod project_path;
6
+ /// Request types and run functions
7
+ pub mod requests;
Original file line number Diff line number Diff line change @@ -17,10 +17,12 @@ use napi::sys::napi_value;
17
17
///
18
18
/// Use `ProjectPath` on your input type:
19
19
///
20
- /// ```
20
+ /// ```skip
21
+ /// use napi_derive::napi;
22
+ ///
21
23
/// #[napi(object)]
22
24
/// struct MyRequestInput {
23
- /// path: ProjectPath,
25
+ /// pub path: parcel_core::project_path:: ProjectPath,
24
26
/// }
25
27
///
26
28
/// #[napi]
Original file line number Diff line number Diff line change 4
4
//! file.
5
5
use std:: path:: Path ;
6
6
7
- use crate :: core:: project_path:: ProjectPath ;
8
7
use napi_derive:: napi;
9
8
use parcel_resolver:: FileSystem ;
10
9
11
- use crate :: core:: requests:: request_api:: RequestApi ;
10
+ use crate :: project_path:: ProjectPath ;
11
+ use crate :: requests:: request_api:: RequestApi ;
12
12
13
13
pub type InternalGlob = String ;
14
14
@@ -154,12 +154,13 @@ struct RequestOptions {}
154
154
155
155
#[ cfg( test) ]
156
156
mod test {
157
- use super :: * ;
158
- use crate :: core:: requests:: config_request:: run_config_request;
159
- use crate :: core:: requests:: request_api:: MockRequestApi ;
160
157
use parcel_filesystem:: in_memory_file_system:: InMemoryFileSystem ;
161
158
use parcel_filesystem:: os_file_system:: OsFileSystem ;
162
159
160
+ use super :: * ;
161
+ use crate :: requests:: config_request:: run_config_request;
162
+ use crate :: requests:: request_api:: MockRequestApi ;
163
+
163
164
#[ test]
164
165
fn test_run_empty_config_request_does_nothing ( ) {
165
166
let config_request = ConfigRequest {
Original file line number Diff line number Diff line change @@ -8,9 +8,9 @@ use anyhow::anyhow;
8
8
use napi_derive:: napi;
9
9
use parcel_resolver:: FileSystem ;
10
10
11
- use crate :: core :: project_path:: ProjectPath ;
12
- use crate :: core :: requests:: config_request:: InternalFileCreateInvalidation ;
13
- use crate :: core :: requests:: request_api:: RequestApi ;
11
+ use crate :: project_path:: ProjectPath ;
12
+ use crate :: requests:: config_request:: InternalFileCreateInvalidation ;
13
+ use crate :: requests:: request_api:: RequestApi ;
14
14
15
15
#[ napi( object) ]
16
16
#[ derive( Debug , Clone , PartialEq ) ]
File renamed without changes.
Original file line number Diff line number Diff line change @@ -6,9 +6,9 @@ use napi::JsObject;
6
6
use napi:: JsUnknown ;
7
7
use parcel_napi_helpers:: call_method;
8
8
9
- use crate :: core :: requests:: config_request:: InternalFileCreateInvalidation ;
10
- use crate :: core :: requests:: request_api:: RequestApi ;
11
- use crate :: core :: requests:: request_api:: RequestApiResult ;
9
+ use crate :: requests:: config_request:: InternalFileCreateInvalidation ;
10
+ use crate :: requests:: request_api:: RequestApi ;
11
+ use crate :: requests:: request_api:: RequestApiResult ;
12
12
13
13
/// This is a "delegate" implementation of `RequestApi` that delegates calls to a
14
14
/// JavaScript object.
Original file line number Diff line number Diff line change @@ -2,8 +2,9 @@ use std::path::Path;
2
2
3
3
use mockall:: automock;
4
4
5
- use crate :: core :: requests:: config_request:: InternalFileCreateInvalidation ;
5
+ use crate :: requests:: config_request:: InternalFileCreateInvalidation ;
6
6
7
+ #[ cfg( not( feature = "napi_noop" ) ) ]
7
8
pub mod js_request_api;
8
9
9
10
// TODO: Move this into an associated type of the struct
You can’t perform that action at this time.
0 commit comments