diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index e7c1322cdddd8..da0ea4aee56d2 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -711,12 +711,11 @@ namespace ts { export function convertEnableAutoDiscoveryToEnable(typeAcquisition: TypeAcquisition): TypeAcquisition { // Convert deprecated typingOptions.enableAutoDiscovery to typeAcquisition.enable if (typeAcquisition && typeAcquisition.enableAutoDiscovery !== undefined && typeAcquisition.enable === undefined) { - const result: TypeAcquisition = { + return { enable: typeAcquisition.enableAutoDiscovery, include: typeAcquisition.include || [], exclude: typeAcquisition.exclude || [] }; - return result; } return typeAcquisition; } @@ -1799,9 +1798,8 @@ namespace ts { return options; } - function getDefaultTypeAcquisition(configFileName?: string) { - const options: TypeAcquisition = { enable: getBaseFileName(configFileName) === "jsconfig.json", include: [], exclude: [] }; - return options; + function getDefaultTypeAcquisition(configFileName?: string): TypeAcquisition { + return { enable: getBaseFileName(configFileName) === "jsconfig.json", include: [], exclude: [] }; } function convertTypeAcquisitionFromJsonWorker(jsonOptions: any, diff --git a/src/server/typingsInstaller/typingsInstaller.ts b/src/server/typingsInstaller/typingsInstaller.ts index 3e8f79d0f1d5f..283770d1dc862 100644 --- a/src/server/typingsInstaller/typingsInstaller.ts +++ b/src/server/typingsInstaller/typingsInstaller.ts @@ -205,35 +205,29 @@ namespace ts.server.typingsInstaller { this.knownCachesSet.set(cacheLocation, true); } - private filterTypings(typingsToInstall: string[]) { - if (typingsToInstall.length === 0) { - return typingsToInstall; - } - const result: string[] = []; - for (const typing of typingsToInstall) { - if (this.missingTypingsSet.get(typing) || this.packageNameToTypingLocation.get(typing)) { - continue; + private filterTypings(typingsToInstall: ReadonlyArray): ReadonlyArray { + return typingsToInstall.filter(typing => { + if (this.missingTypingsSet.get(typing)) { + if (this.log.isEnabled()) this.log.writeLine(`'${typing}' is in missingTypingsSet - skipping...`); + return false; } - const validationResult = JsTyping.validatePackageName(typing); - if (validationResult === JsTyping.PackageNameValidationResult.Ok) { - if (this.typesRegistry.has(typing)) { - result.push(typing); - } - else { - if (this.log.isEnabled()) { - this.log.writeLine(`Entry for package '${typing}' does not exist in local types registry - skipping...`); - } - } + if (this.packageNameToTypingLocation.get(typing)) { + if (this.log.isEnabled()) this.log.writeLine(`'${typing}' already has a typing - skipping...`); + return false; } - else { + const validationResult = JsTyping.validatePackageName(typing); + if (validationResult !== JsTyping.PackageNameValidationResult.Ok) { // add typing name to missing set so we won't process it again this.missingTypingsSet.set(typing, true); - if (this.log.isEnabled()) { - this.log.writeLine(JsTyping.renderPackageNameValidationFailure(validationResult, typing)); - } + if (this.log.isEnabled()) this.log.writeLine(JsTyping.renderPackageNameValidationFailure(validationResult, typing)); + return false; } - } - return result; + if (!this.typesRegistry.has(typing)) { + if (this.log.isEnabled()) this.log.writeLine(`Entry for package '${typing}' does not exist in local types registry - skipping...`); + return false; + } + return true; + }); } protected ensurePackageDirectoryExists(directory: string) {