mirror of
https://github.com/denoland/deno.git
synced 2024-12-27 09:39:08 -05:00
2e1ab82321
* 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
26 lines
676 B
Rust
26 lines
676 B
Rust
// 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 JsonCompiler {}
|
|
|
|
impl JsonCompiler {
|
|
pub fn compile_async(
|
|
self: &Self,
|
|
_state: ThreadSafeState,
|
|
source_file: &SourceFile,
|
|
) -> Box<CompiledModuleFuture> {
|
|
let module = CompiledModule {
|
|
code: format!(
|
|
"export default {};",
|
|
str::from_utf8(&source_file.source_code).unwrap()
|
|
),
|
|
name: source_file.url.to_string(),
|
|
};
|
|
|
|
Box::new(futures::future::ok(module))
|
|
}
|
|
}
|