summaryrefslogtreecommitdiff
path: root/cli/ops
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-03-19 03:39:53 +1100
committerGitHub <noreply@github.com>2020-03-18 12:39:53 -0400
commitda8cb408c878aa6e90542e26173f1f14b5254d29 (patch)
treefda19fdecabb75cae8b2b5d3c72cdb9012a0af26 /cli/ops
parent83f49161953c0c79056a56a19754fbf298f53f21 (diff)
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.
Diffstat (limited to 'cli/ops')
-rw-r--r--cli/ops/compiler.rs12
1 files changed, 10 insertions, 2 deletions
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!({