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/cli/generateMarkdown.ts b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts index 82ef44d058fa..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 { @@ -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(``); 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; } diff --git a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts index 6c338f6f8966..3bee64efb3c5 100644 --- a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts +++ b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts @@ -248,12 +248,12 @@ languages.forEach((lang) => { mdTableRows.push(["Internal"]); } - if (option.defaultValue) { - mdTableRows.push(["Default", String(option.defaultValue)]); + if (option.defaultValue !== undefined) { + 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) { 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