summaryrefslogtreecommitdiff
path: root/cli/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/state.rs')
-rw-r--r--cli/state.rs36
1 files changed, 23 insertions, 13 deletions
diff --git a/cli/state.rs b/cli/state.rs
index 2e490484a..cd7c1269d 100644
--- a/cli/state.rs
+++ b/cli/state.rs
@@ -1,8 +1,8 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
use crate::compiler::TsCompiler;
use crate::deno_dir;
-use crate::deno_dir::SourceFile;
-use crate::deno_dir::SourceFileFetcher;
+use crate::file_fetcher::SourceFile;
+use crate::file_fetcher::SourceFileFetcher;
use crate::flags;
use crate::global_timer::GlobalTimer;
use crate::import_map::ImportMap;
@@ -76,6 +76,7 @@ pub struct State {
pub progress: Progress,
pub seeded_rng: Option<Mutex<StdRng>>,
+ pub file_fetcher: SourceFileFetcher,
pub ts_compiler: TsCompiler,
}
@@ -109,7 +110,7 @@ pub fn fetch_source_file_and_maybe_compile_async(
let state_ = state.clone();
state_
- .dir
+ .file_fetcher
.fetch_source_file_async(&module_specifier)
.and_then(move |out| {
state_
@@ -168,7 +169,7 @@ impl ThreadSafeState {
argv_rest: Vec<String>,
dispatch_selector: ops::OpSelector,
progress: Progress,
- ) -> Self {
+ ) -> Result<Self, ErrBox> {
let custom_root = env::var("DENO_DIR").map(String::into).ok();
let (worker_in_tx, worker_in_rx) = async_mpsc::channel::<Buf>(1);
@@ -177,12 +178,21 @@ impl ThreadSafeState {
let external_channels = (worker_in_tx, worker_out_rx);
let resource = resources::add_worker(external_channels);
- let dir = deno_dir::DenoDir::new(
- custom_root,
+ let dir = deno_dir::DenoDir::new(custom_root)?;
+
+ let file_fetcher = SourceFileFetcher::new(
+ dir.deps_cache.clone(),
progress.clone(),
!flags.reload,
flags.no_fetch,
- ).unwrap();
+ )?;
+
+ let ts_compiler = TsCompiler::new(
+ file_fetcher.clone(),
+ dir.gen_cache.clone(),
+ !flags.reload,
+ flags.config_path.clone(),
+ );
let main_module: Option<ModuleSpecifier> = if argv_rest.len() <= 1 {
None
@@ -220,10 +230,7 @@ impl ThreadSafeState {
let modules = Arc::new(Mutex::new(deno::Modules::new()));
- let ts_compiler =
- TsCompiler::new(dir.clone(), !flags.reload, flags.config_path.clone());
-
- ThreadSafeState(Arc::new(State {
+ let state = State {
main_module,
modules,
dir,
@@ -240,8 +247,11 @@ impl ThreadSafeState {
dispatch_selector,
progress,
seeded_rng,
+ file_fetcher,
ts_compiler,
- }))
+ };
+
+ Ok(ThreadSafeState(Arc::new(state)))
}
/// Read main module from argv
@@ -289,7 +299,7 @@ impl ThreadSafeState {
argv,
ops::op_selector_std,
Progress::new(),
- )
+ ).unwrap()
}
pub fn metrics_op_dispatched(