diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 947ca1ca00c..403345c9b04 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -616,10 +616,10 @@ namespace ts { } } else if (id === "include") { - options.include = ConvertJsonOptionToStringArray(id, jsonTypingOptions[id], errors); + options.include = convertJsonOptionToStringArray(id, jsonTypingOptions[id], errors); } else if (id === "exclude") { - options.exclude = ConvertJsonOptionToStringArray(id, jsonTypingOptions[id], errors); + options.exclude = convertJsonOptionToStringArray(id, jsonTypingOptions[id], errors); } else { errors.push(createCompilerDiagnostic(Diagnostics.Unknown_typing_option_0, id)); @@ -668,7 +668,7 @@ namespace ts { break; case "object": // "object" options with 'isFilePath' = true expected to be string arrays - value = ConvertJsonOptionToStringArray(opt.name, value, errors, (element) => normalizePath(combinePaths(basePath, element))); + value = convertJsonOptionToStringArray(opt.name, value, errors, (element) => normalizePath(combinePaths(basePath, element))); break; } if (value === "") { @@ -689,7 +689,7 @@ namespace ts { return { options, errors }; } - function ConvertJsonOptionToStringArray(optionName: string, optionJson: any, errors: Diagnostic[], func?: (element: string) => string): string[] { + function convertJsonOptionToStringArray(optionName: string, optionJson: any, errors: Diagnostic[], func?: (element: string) => string): string[] { const items: string[] = []; let invalidOptionType = false; if (!isArray(optionJson)) { diff --git a/src/services/jsTyping.ts b/src/services/jsTyping.ts index b3955e89148..59918ab2445 100644 --- a/src/services/jsTyping.ts +++ b/src/services/jsTyping.ts @@ -193,8 +193,8 @@ namespace ts.JsTyping { mergeTypings(filter(cleanedTypingNames, f => hasProperty(safeList, f))); } - const jsxFileNames = filter(fileNames, f => scriptKindIs(f, /*LanguageServiceHost*/ undefined, ScriptKind.JSX)); - if (jsxFileNames.length > 0) { + const hasJsxFile = forEach(fileNames, f => scriptKindIs(f, /*LanguageServiceHost*/ undefined, ScriptKind.JSX)); + if (hasJsxFile) { mergeTypings(["react"]); } } @@ -214,6 +214,7 @@ namespace ts.JsTyping { filter( host.readDirectory(nodeModulesPath, /*extension*/ undefined, /*exclude*/ undefined, /*depth*/ 2), f => ts.getBaseFileName(f) === "package.json"); + for (const packageJsonFile of packageJsonFiles) { const packageJsonDict = tryParseJson(packageJsonFile, host); if (!packageJsonDict) { continue; } @@ -247,13 +248,6 @@ namespace ts.JsTyping { if (!options) { return; } - - if (options.jsx === JsxEmit.React) { - typingNames.push("react"); - } - if (options.moduleResolution === ModuleResolutionKind.NodeJs) { - typingNames.push("node"); - } mergeTypings(typingNames); } }