From cee2f610ae810c6b97e6bef5bc702e23d2456bfc Mon Sep 17 00:00:00 2001 From: Kevin Barabash Date: Sat, 15 Oct 2022 13:10:11 -0400 Subject: [PATCH] Ensure 'readonly' modified included when emitting TsIndexSignature --- crates/swc_ecma_codegen/src/typescript.rs | 5 +++++ crates/swc_ecma_codegen/tests/fixture/issues/6171/input.ts | 6 ++++++ crates/swc_ecma_codegen/tests/fixture/issues/6171/output.ts | 6 ++++++ 3 files changed, 17 insertions(+) create mode 100644 crates/swc_ecma_codegen/tests/fixture/issues/6171/input.ts create mode 100644 crates/swc_ecma_codegen/tests/fixture/issues/6171/output.ts diff --git a/crates/swc_ecma_codegen/src/typescript.rs b/crates/swc_ecma_codegen/src/typescript.rs index 2e4c7c2434a1..df5955244e10 100644 --- a/crates/swc_ecma_codegen/src/typescript.rs +++ b/crates/swc_ecma_codegen/src/typescript.rs @@ -297,6 +297,11 @@ where fn emit_ts_index_signature(&mut self, n: &TsIndexSignature) -> Result { self.emit_leading_comments_of_span(n.span(), false)?; + if n.readonly { + keyword!("readonly"); + formatting_space!(); + } + punct!("["); self.emit_list(n.span, Some(&n.params), ListFormat::Parameters)?; punct!("]"); diff --git a/crates/swc_ecma_codegen/tests/fixture/issues/6171/input.ts b/crates/swc_ecma_codegen/tests/fixture/issues/6171/input.ts new file mode 100644 index 000000000000..00a3cc43a3bf --- /dev/null +++ b/crates/swc_ecma_codegen/tests/fixture/issues/6171/input.ts @@ -0,0 +1,6 @@ +type ReadonlyDict = { + readonly [key: string]: string; +}; +type Dict = { + [key: string]: string; +}; diff --git a/crates/swc_ecma_codegen/tests/fixture/issues/6171/output.ts b/crates/swc_ecma_codegen/tests/fixture/issues/6171/output.ts new file mode 100644 index 000000000000..00a3cc43a3bf --- /dev/null +++ b/crates/swc_ecma_codegen/tests/fixture/issues/6171/output.ts @@ -0,0 +1,6 @@ +type ReadonlyDict = { + readonly [key: string]: string; +}; +type Dict = { + [key: string]: string; +};