diff --git a/src/compiler/core.ts b/src/compiler/core.ts index dd84479fe2bab..05b3a1398eb6f 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -3,6 +3,9 @@ /* @internal */ namespace ts { + + export const version = "2.0.9"; + /** * Ternary values are defined such that * x & y is False if either x or y is False. diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 3343c4407d521..9b42bcf1ee88e 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -5,8 +5,6 @@ namespace ts { /** The version of the TypeScript compiler release */ - export const version = "2.0.9"; - const emptyArray: any[] = []; export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName = "tsconfig.json"): string { diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 638abfa588032..bfd82cf60eeec 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -1968,6 +1968,11 @@ namespace ts.server.protocol { * true if install request succeeded, otherwise - false */ installSuccess: boolean; + + /** + * version of typings installer + */ + typingsInstallerVersion: string; } export interface NavBarResponse extends Response { diff --git a/src/server/server.ts b/src/server/server.ts index 9f74c5c912ba2..5b2c8324812d4 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -266,7 +266,8 @@ namespace ts.server { telemetryEventName: "typingsInstalled", payload: { installedPackages: response.packagesToInstall.join(","), - installSuccess: response.installSuccess + installSuccess: response.installSuccess, + typingsInstallerVersion: response.typingsInstallerVersion } }; const eventName: protocol.TelemetryEventName = "telemetry"; diff --git a/src/server/types.d.ts b/src/server/types.d.ts index 9227364e17ea4..673bd39ca3dd4 100644 --- a/src/server/types.d.ts +++ b/src/server/types.d.ts @@ -63,6 +63,7 @@ declare namespace ts.server { readonly packagesToInstall: ReadonlyArray; readonly kind: EventInstall; readonly installSuccess: boolean; + readonly typingsInstallerVersion: string; } export interface InstallTypingHost extends JsTyping.TypingResolutionHost { diff --git a/src/server/typingsInstaller/typingsInstaller.ts b/src/server/typingsInstaller/typingsInstaller.ts index fa970a6afe8a5..3da65cba704c9 100644 --- a/src/server/typingsInstaller/typingsInstaller.ts +++ b/src/server/typingsInstaller/typingsInstaller.ts @@ -230,7 +230,7 @@ namespace ts.server.typingsInstaller { } const result: string[] = []; for (const typing of typingsToInstall) { - if (this.missingTypingsSet[typing]) { + if (this.missingTypingsSet[typing] || this.packageNameToTypingLocation[typing]) { continue; } const validationResult = validatePackageName(typing); @@ -308,7 +308,8 @@ namespace ts.server.typingsInstaller { this.sendResponse({ kind: EventInstall, packagesToInstall: scopedTypings, - installSuccess: ok + installSuccess: ok, + typingsInstallerVersion: ts.version // qualified explicitly to prevent occasional shadowing }); }