From 018f1e97420a903b008e4db4fbd73f45e4f88c28 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 14 Nov 2016 22:04:35 -0800 Subject: [PATCH 1/2] added extra check to prevent multiple installation of the same typing, added version field to telemetry event --- src/server/protocol.ts | 5 +++++ src/server/server.ts | 3 ++- src/server/types.d.ts | 1 + src/server/typingsInstaller/typingsInstaller.ts | 7 +++++-- 4 files changed, 13 insertions(+), 3 deletions(-) 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..a30020c29e3dd 100644 --- a/src/server/typingsInstaller/typingsInstaller.ts +++ b/src/server/typingsInstaller/typingsInstaller.ts @@ -5,6 +5,8 @@ /// namespace ts.server.typingsInstaller { + const typingsInstallerVersion = "2.0.9"; + interface NpmConfig { devDependencies: MapLike; } @@ -230,7 +232,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 +310,8 @@ namespace ts.server.typingsInstaller { this.sendResponse({ kind: EventInstall, packagesToInstall: scopedTypings, - installSuccess: ok + installSuccess: ok, + typingsInstallerVersion }); } From 77e0f97eefb5cc2337156071032355d5d46bca58 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Tue, 15 Nov 2016 10:34:59 -0800 Subject: [PATCH 2/2] use ts.version --- src/compiler/core.ts | 3 +++ src/compiler/program.ts | 2 -- src/server/typingsInstaller/typingsInstaller.ts | 4 +--- 3 files changed, 4 insertions(+), 5 deletions(-) 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/typingsInstaller/typingsInstaller.ts b/src/server/typingsInstaller/typingsInstaller.ts index a30020c29e3dd..3da65cba704c9 100644 --- a/src/server/typingsInstaller/typingsInstaller.ts +++ b/src/server/typingsInstaller/typingsInstaller.ts @@ -5,8 +5,6 @@ /// namespace ts.server.typingsInstaller { - const typingsInstallerVersion = "2.0.9"; - interface NpmConfig { devDependencies: MapLike; } @@ -311,7 +309,7 @@ namespace ts.server.typingsInstaller { kind: EventInstall, packagesToInstall: scopedTypings, installSuccess: ok, - typingsInstallerVersion + typingsInstallerVersion: ts.version // qualified explicitly to prevent occasional shadowing }); }