mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 04:39:10 +00:00
refactor: cleanup compiler pipeline (#2686)
* remove fetch_source_file_and_maybe_compile_async and replace it with State.fetch_compiled_module * remove SourceFile.js_source() * introduce CompiledModule which is basically the same as deno::SourceInfo and represents arbitrary file that has been compiled to JS module * introduce //cli/compilers module containing all compilers * introduce JsCompiler which is a no-op compiler - output is the same as input, no compilation takes place - it is used for MediaType::JavaScript and MediaType::Unknown * introduce JsonCompiler that wraps JSON in default export * support JS-to-JS compilation using checkJs
This commit is contained in:
parent
e7cee29c84
commit
2e1ab82321
14 changed files with 353 additions and 199 deletions
20
cli/compilers/mod.rs
Normal file
20
cli/compilers/mod.rs
Normal file
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
||||
use deno::ErrBox;
|
||||
use futures::Future;
|
||||
|
||||
mod js;
|
||||
mod json;
|
||||
mod ts;
|
||||
|
||||
pub use js::JsCompiler;
|
||||
pub use json::JsonCompiler;
|
||||
pub use ts::TsCompiler;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct CompiledModule {
|
||||
pub code: String,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
pub type CompiledModuleFuture =
|
||||
dyn Future<Item = CompiledModule, Error = ErrBox> + Send;
|
Loading…
Add table
Add a link
Reference in a new issue