diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2019-07-31 19:16:03 +0200 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-07-31 13:16:03 -0400 |
commit | 2e1ab8232156a23afd22834c1e707fb3403c0db6 (patch) | |
tree | 933b5a33aaa27ce359c9b7133a4718baaa730db7 /cli/compilers/js.rs | |
parent | e7cee29c849286f9b492eb404634a0387b9a75a0 (diff) |
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
Diffstat (limited to 'cli/compilers/js.rs')
-rw-r--r-- | cli/compilers/js.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cli/compilers/js.rs b/cli/compilers/js.rs new file mode 100644 index 000000000..56c9b672e --- /dev/null +++ b/cli/compilers/js.rs @@ -0,0 +1,25 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +use crate::compilers::CompiledModule; +use crate::compilers::CompiledModuleFuture; +use crate::file_fetcher::SourceFile; +use crate::state::ThreadSafeState; +use std::str; + +pub struct JsCompiler {} + +impl JsCompiler { + pub fn compile_async( + self: &Self, + _state: ThreadSafeState, + source_file: &SourceFile, + ) -> Box<CompiledModuleFuture> { + let module = CompiledModule { + code: str::from_utf8(&source_file.source_code) + .unwrap() + .to_string(), + name: source_file.url.to_string(), + }; + + Box::new(futures::future::ok(module)) + } +} |