summaryrefslogtreecommitdiff
path: root/cli/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/state.rs')
-rw-r--r--cli/state.rs24
1 files changed, 23 insertions, 1 deletions
diff --git a/cli/state.rs b/cli/state.rs
index 32c027c03..8003ea732 100644
--- a/cli/state.rs
+++ b/cli/state.rs
@@ -11,11 +11,13 @@ use crate::permissions::DenoPermissions;
use crate::web_worker::WebWorkerHandle;
use deno_core::Buf;
use deno_core::ErrBox;
+use deno_core::ModuleLoadId;
use deno_core::ModuleLoader;
use deno_core::ModuleSpecifier;
use deno_core::Op;
use deno_core::ZeroCopyBuf;
use futures::future::FutureExt;
+use futures::Future;
use rand::rngs::StdRng;
use rand::SeedableRng;
use serde_json::Value;
@@ -28,7 +30,6 @@ use std::rc::Rc;
use std::str;
use std::thread::JoinHandle;
use std::time::Instant;
-
#[derive(Copy, Clone, Eq, PartialEq)]
pub enum DebugType {
/// Can be debugged, will wait for debugger when --inspect-brk given.
@@ -309,6 +310,27 @@ impl ModuleLoader for State {
fut.boxed_local()
}
+
+ fn prepare_load(
+ &self,
+ _load_id: ModuleLoadId,
+ _module_specifier: &ModuleSpecifier,
+ _maybe_referrer: Option<String>,
+ _is_dyn_import: bool,
+ ) -> Pin<Box<dyn Future<Output = Result<(), ErrBox>>>> {
+ // TODO(bartlomieju):
+ // 1. recursively:
+ // a) resolve specifier
+ // b) check permission if dynamic import
+ // c) fetch/download source code
+ // d) parse the source code and extract all import/exports (dependencies)
+ // e) add discovered deps and loop algorithm until no new dependencies
+ // are discovered
+ // 2. run through appropriate compiler giving it access only to
+ // discovered files
+
+ async { Ok(()) }.boxed_local()
+ }
}
impl State {