From 3b1a2467f88f576c37f0c426b86e7504395ec88d Mon Sep 17 00:00:00 2001
From: dynst <148708712+dynst@users.noreply.github.com>
Date: Sun, 31 Aug 2025 00:00:00 +0000
Subject: [PATCH 1/5] make generateMarkdown code handle defaultValue=false
---
.../tsconfig-reference/scripts/tsconfig/generateMarkdown.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
index 6c338f6f8966..0238c85158ba 100644
--- a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
+++ b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
@@ -248,7 +248,7 @@ languages.forEach((lang) => {
mdTableRows.push(["Internal"]);
}
- if (option.defaultValue) {
+ if (option.defaultValue !== undefined) {
mdTableRows.push(["Default", String(option.defaultValue)]);
}
From 6c05697b5e528bd1e84d9622b1c3029c8ce6f2d6 Mon Sep 17 00:00:00 2001
From: dynst <148708712+dynst@users.noreply.github.com>
Date: Sun, 31 Aug 2025 00:00:00 +0000
Subject: [PATCH 2/5] handle all defaultValue types in cli/generateMarkdown
---
packages/tsconfig-reference/scripts/cli/generateMarkdown.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
index 82ef44d058fa..8b26cd09688f 100644
--- a/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
+++ b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
@@ -107,7 +107,7 @@ languages.forEach((lang) => {
markdownChunks.push(`
${parseMarkdown(optType)} | `);
if (!opts?.noDefaults) {
- markdownChunks.push(` ${parseMarkdown(option.defaultValue)} | `);
+ markdownChunks.push(` ${parseMarkdown(JSON.stringify(option.defaultValue))} | `);
}
markdownChunks.push(``);
From 58af40031679077e6344d8f18a2a0c87d8c7e640 Mon Sep 17 00:00:00 2001
From: dynst <148708712+dynst@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:00:00 +0000
Subject: [PATCH 3/5] fix type of defaultValue
it only gets coerced to String in generateMarkdown.ts
---
packages/tsconfig-reference/scripts/cli/generateJSON.ts | 2 +-
packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/tsconfig-reference/scripts/cli/generateJSON.ts b/packages/tsconfig-reference/scripts/cli/generateJSON.ts
index 1af3baa73109..38d700e2cb7e 100644
--- a/packages/tsconfig-reference/scripts/cli/generateJSON.ts
+++ b/packages/tsconfig-reference/scripts/cli/generateJSON.ts
@@ -40,7 +40,7 @@ export interface CompilerOptionJSON extends CommandLineOptionBase {
deprecated?: string;
internal?: true;
recommended?: true;
- defaultValue?: string;
+ defaultValue?: string | number | boolean;
hostObj: string;
}
diff --git a/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts b/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts
index 397fde24d3d2..3cdb4a15f61e 100644
--- a/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts
+++ b/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts
@@ -48,7 +48,7 @@ export interface CompilerOptionJSON extends CommandLineOptionBase {
deprecated?: string;
internal?: true;
recommended?: true;
- defaultValue?: string;
+ defaultValue?: string | number | boolean;
hostObj: string;
}
From 6f85316f3510deed309193c6ae4fac1891396b0d Mon Sep 17 00:00:00 2001
From: dynst <148708712+dynst@users.noreply.github.com>
Date: Sun, 31 Aug 2025 00:00:00 +0000
Subject: [PATCH 4/5] document defaults for tsconfig watch options
---
packages/tsconfig-reference/scripts/tsconfigRules.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/tsconfig-reference/scripts/tsconfigRules.ts b/packages/tsconfig-reference/scripts/tsconfigRules.ts
index 991666ba6a4e..53958289a3f9 100644
--- a/packages/tsconfig-reference/scripts/tsconfigRules.ts
+++ b/packages/tsconfig-reference/scripts/tsconfigRules.ts
@@ -202,7 +202,7 @@ function trueIf(name: string) {
export const defaultsForOptions = {
...Object.fromEntries(
- ts.optionDeclarations.map((option) => [
+ [...ts.optionDeclarations, ...ts.optionsForWatch].map((option) => [
option.name,
typeof option.defaultValueDescription === "object"
? option.defaultValueDescription.message
From eb022fbfdd3ca87882aa25ad3a004b3facabaa34 Mon Sep 17 00:00:00 2001
From: dynst <148708712+dynst@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:00:00 +0000
Subject: [PATCH 5/5] format strings as strings
---
packages/tsconfig-reference/scripts/cli/generateMarkdown.ts | 4 ++--
.../tsconfig-reference/scripts/tsconfig/generateMarkdown.ts | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
index 8b26cd09688f..61946a2ae5f7 100644
--- a/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
+++ b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
@@ -94,11 +94,11 @@ languages.forEach((lang) => {
// @ts-ignore
const or = new Intl.ListFormat(lang, { type: "disjunction" });
optType = or.format(
- option.allowedValues.map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`$&`"))
+ option.allowedValues.map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`"$&"`"))
);
} else {
optType = option.allowedValues
- .map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`$&`"))
+ .map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`"$&"`"))
.join(", ");
}
} else {
diff --git a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
index 0238c85158ba..3bee64efb3c5 100644
--- a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
+++ b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
@@ -249,11 +249,11 @@ languages.forEach((lang) => {
}
if (option.defaultValue !== undefined) {
- mdTableRows.push(["Default", String(option.defaultValue)]);
+ mdTableRows.push(["Default", JSON.stringify(option.defaultValue)]);
}
if (option.allowedValues) {
- mdTableRows.push(["Allowed", option.allowedValues]);
+ mdTableRows.push(["Allowed", option.allowedValues.map(JSON.stringify)]);
}
if (option.related) {