From da8cb408c878aa6e90542e26173f1f14b5254d29 Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Thu, 19 Mar 2020 03:39:53 +1100 Subject: Provide compiled JSON to TypeScript compiler. (#4404) Fixes #4101 Previously, we would just provide the raw JSON to the TypeScript compiler worker, but TypeScript does not transform JSON. This caused a problem when emitting a bundle, that the JSON would just be "inlined" into the output, instead of being transformed into a module. This fixes this problem by providing the compiled JSON to the TypeScript compiler, so TypeScript just sees JSON as a "normal" TypeScript module. --- cli/ops/compiler.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'cli/ops/compiler.rs') diff --git a/cli/ops/compiler.rs b/cli/ops/compiler.rs index e6ed364da..baa7b4c1c 100644 --- a/cli/ops/compiler.rs +++ b/cli/ops/compiler.rs @@ -136,9 +136,9 @@ fn op_fetch_source_files( } _ => f, }; - // Special handling of Wasm files: + // Special handling of WASM and JSON files: // compile them into JS first! - // This allows TS to do correct export types. + // This allows TS to do correct export types as well as bundles. let source_code = match file.media_type { msg::MediaType::Wasm => { global_state @@ -148,6 +148,14 @@ fn op_fetch_source_files( .map_err(|e| OpError::other(e.to_string()))? .code } + msg::MediaType::Json => { + global_state + .json_compiler + .compile(&file) + .await + .map_err(|e| OpError::other(e.to_string()))? + .code + } _ => String::from_utf8(file.source_code).unwrap(), }; Ok::<_, OpError>(json!({ -- cgit v1.2.3