summaryrefslogtreecommitdiff
path: root/cli/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/main.rs')
-rw-r--r--cli/main.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/cli/main.rs b/cli/main.rs
index cfce2254b..ad0374af2 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -41,6 +41,7 @@ mod tokio_write;
pub mod version;
pub mod worker;
+use crate::compiler::bundle_async;
use crate::errors::RustOrJsError;
use crate::progress::Progress;
use crate::state::ThreadSafeState;
@@ -261,6 +262,26 @@ fn xeval_command(flags: DenoFlags, argv: Vec<String>) {
tokio_util::run(main_future);
}
+fn bundle_command(flags: DenoFlags, argv: Vec<String>) {
+ let (mut _worker, state) = create_worker_and_state(flags, argv);
+
+ let main_module = state.main_module().unwrap();
+ let main_url = root_specifier_to_url(&main_module).unwrap();
+ assert!(state.argv.len() >= 3);
+ let out_file = state.argv[2].clone();
+ debug!(">>>>> bundle_async START");
+ let bundle_future = bundle_async(state, main_url.to_string(), out_file)
+ .map_err(|e| {
+ debug!("diagnostics returned, exiting!");
+ eprintln!("\n{}", e.to_string());
+ std::process::exit(1);
+ }).and_then(move |_| {
+ debug!(">>>>> bundle_async END");
+ Ok(())
+ });
+ tokio_util::run(bundle_future);
+}
+
fn run_repl(flags: DenoFlags, argv: Vec<String>) {
let (mut worker, _state) = create_worker_and_state(flags, argv);
@@ -322,6 +343,7 @@ fn main() {
});
match subcommand {
+ DenoSubcommand::Bundle => bundle_command(flags, argv),
DenoSubcommand::Eval => eval_command(flags, argv),
DenoSubcommand::Fetch => fetch_or_info_command(flags, argv, false),
DenoSubcommand::Info => fetch_or_info_command(flags, argv, true),