From 7fa25aac3842aee56a21812cc791505e7238028f Mon Sep 17 00:00:00 2001 From: Tomi Belan Date: Sat, 25 Jan 2025 19:03:47 +0100 Subject: [PATCH] Document release version of every tsconfig option --- .../scripts/tsconfigRules.ts | 106 +++++++++++++++--- 1 file changed, 89 insertions(+), 17 deletions(-) diff --git a/packages/tsconfig-reference/scripts/tsconfigRules.ts b/packages/tsconfig-reference/scripts/tsconfigRules.ts index 66e7dc16c340..603363f5729c 100644 --- a/packages/tsconfig-reference/scripts/tsconfigRules.ts +++ b/packages/tsconfig-reference/scripts/tsconfigRules.ts @@ -87,7 +87,7 @@ export const recommended = [ "exactOptionalPropertyTypes", ]; -type RootProperties = "files" | "extends" | "include" | "exclude"; +type RootProperties = "files" | "extends" | "include" | "exclude" | "references"; type WatchProperties = | "force" | "watchFile" @@ -310,18 +310,40 @@ function formatAllowedValues(type: CommandLineOption["type"]) { } export const releaseToConfigsMap: { [key: string]: AnOption[] } = { + "5.7": ["rewriteRelativeImportExtensions"], + "5.6": ["strictBuiltinIteratorReturn", "noUncheckedSideEffectImports"], + "5.5": ["isolatedDeclarations", "noCheck"], + "5.0": [ + "allowArbitraryExtensions", + "allowImportingTsExtensions", + "customConditions", + "resolvePackageJsonExports", + "resolvePackageJsonImports", + "verbatimModuleSyntax", + ], "4.7": ["moduleDetection", "moduleSuffixes"], "4.5": ["preserveValueImports"], "4.4": ["exactOptionalPropertyTypes", "useUnknownInCatchVariables"], "4.3": ["noImplicitOverride"], - "4.2": ["noPropertyAccessFromIndexSignature", "explainFiles"], - "4.1": ["jsxImportSource", "noUncheckedIndexedAccess", "disableFilenameBasedTypeAcquisition"], + "4.2": [ + "noPropertyAccessFromIndexSignature", + "explainFiles", + "excludeDirectories", + "excludeFiles", + ], + "4.1": [ + "generateTrace", + "jsxImportSource", + "noUncheckedIndexedAccess", + "disableFilenameBasedTypeAcquisition", + ], "4.0": ["jsxFragmentFactory", "disableReferencedProjectLoad"], "3.8": [ "assumeChangesOnlyAffectDirectDependencies", "importsNotUsedAsValues", "disableSolutionSearching", "fallbackPolling", + "synchronousWatchDirectory", "watchDirectory", "watchFile", ], @@ -333,38 +355,88 @@ export const releaseToConfigsMap: { [key: string]: AnOption[] } = { "3.5": ["allowUmdGlobalAccess"], "3.4": ["incremental", "tsBuildInfoFile"], "3.2": ["strictBindCallApply", "showConfig"], - "3.0": ["composite", "build"], - "2.9": ["keyofStringsOnly", "declarationMap"], - "2.8": ["emitDeclarationOnly"], + "3.0": ["composite", "references"], + "2.9": ["declarationMap", "keyofStringsOnly", "resolveJsonModule"], + "2.8": ["emitDeclarationOnly", "preserveWatchOutput"], "2.7": ["strictPropertyInitialization", "esModuleInterop"], "2.6": ["strictFunctionTypes"], - "2.4": ["noStrictGenericChecks"], + "2.5": ["noStrictGenericChecks", "preserveSymlinks"], "2.3": ["strict", "downlevelIteration", "init", "checkJs"], - "2.2": ["jsx"], - "2.1": ["extends", "alwaysStrict"], + "2.2": ["jsxFactory", "plugins"], + "2.1": ["extends", "alwaysStrict", "importHelpers"], "2.0": [ + "baseUrl", "declarationDir", - "skipLibCheck", - "noUnusedLocals", - "noUnusedParameters", + "disableSizeLimit", + "exclude", + "extendedDiagnostics", + "include", "lib", - "strictNullChecks", + "listEmittedFiles", + "maxNodeModuleJsDepth", "noImplicitThis", + "noUnusedLocals", + "noUnusedParameters", + "paths", "rootDirs", + "skipLibCheck", + "strictNullChecks", "traceResolution", - "include", + "types", + "typeRoots", ], "1.8": [ "allowJs", "allowSyntheticDefaultImports", "allowUnreachableCode", "allowUnusedLabels", + "forceConsistentCasingInFileNames", "noImplicitReturns", + "noImplicitUseStrict", "noFallthroughCasesInSwitch", + "pretty", + "reactNamespace", + ], + "1.6": [ + "jsx", + "moduleResolution", + "outFile", + "skipDefaultLibCheck", + "suppressExcessPropertyErrors", + ], + "1.5": [ + "emitDecoratorMetadata", + "experimentalDecorators", + "files", + "inlineSourceMap", + "inlineSources", + "isolatedModules", + "listFiles", + "newLine", + "noEmit", + "noEmitHelpers", + "rootDir", + "stripInternal", + ], + "1.4": ["noEmitOnError", "preserveConstEnums", "suppressImplicitAnyIndexErrors"], + "1.0": [ + "charset", + "declaration", + "diagnostics", + "emitBOM", + "mapRoot", + "module", + "noErrorTruncation", + "noImplicitAny", + "noLib", + "noResolve", + "out", + "outDir", + "removeComments", + "sourceMap", + "sourceRoot", + "target", ], - "1.5": ["inlineSourceMap", "noEmitHelpers", "newLine", "inlineSources", "rootDir"], - "1.4": ["noEmitOnError"], - "1.0": ["declaration", "target", "module", "outFile"], }; export const additionalOptionDescriptors: Record = {