@@ -5868,6 +5868,32 @@ var ts;
58685868 })(JsTyping = ts.JsTyping || (ts.JsTyping = {}));
58695869})(ts || (ts = {}));
58705870var ts;
5871+ (function (ts) {
5872+ var server;
5873+ (function (server) {
5874+ server.ActionSet = "action::set";
5875+ server.ActionInvalidate = "action::invalidate";
5876+ server.EventInstall = "event::install";
5877+ var Arguments;
5878+ (function (Arguments) {
5879+ Arguments.GlobalCacheLocation = "--globalTypingsCacheLocation";
5880+ Arguments.LogFile = "--logFile";
5881+ Arguments.EnableTelemetry = "--enableTelemetry";
5882+ })(Arguments = server.Arguments || (server.Arguments = {}));
5883+ function hasArgument(argumentName) {
5884+ return ts.sys.args.indexOf(argumentName) >= 0;
5885+ }
5886+ server.hasArgument = hasArgument;
5887+ function findArgument(argumentName) {
5888+ var index = ts.sys.args.indexOf(argumentName);
5889+ return index >= 0 && index < ts.sys.args.length - 1
5890+ ? ts.sys.args[index + 1]
5891+ : undefined;
5892+ }
5893+ server.findArgument = findArgument;
5894+ })(server = ts.server || (ts.server = {}));
5895+ })(ts || (ts = {}));
5896+ var ts;
58715897(function (ts) {
58725898 var server;
58735899 (function (server) {
@@ -63322,10 +63348,10 @@ var ts;
6332263348 return;
6332363349 }
6332463350 switch (response.kind) {
63325- case "set" :
63351+ case server.ActionSet :
6332663352 this.typingsCache.updateTypingsForProject(response.projectName, response.compilerOptions, response.typingOptions, response.unresolvedImports, response.typings);
6332763353 break;
63328- case "invalidate" :
63354+ case server.ActionInvalidate :
6332963355 this.typingsCache.deleteTypingsForProject(response.projectName);
6333063356 break;
6333163357 }
@@ -66593,8 +66619,9 @@ var ts;
6659366619 return Logger;
6659466620 }());
6659566621 var NodeTypingsInstaller = (function () {
66596- function NodeTypingsInstaller(logger, host, eventPort, globalTypingsCacheLocation, newLine) {
66622+ function NodeTypingsInstaller(telemetryEnabled, logger, host, eventPort, globalTypingsCacheLocation, newLine) {
6659766623 var _this = this;
66624+ this.telemetryEnabled = telemetryEnabled;
6659866625 this.logger = logger;
6659966626 this.globalTypingsCacheLocation = globalTypingsCacheLocation;
6660066627 this.newLine = newLine;
@@ -66619,15 +66646,21 @@ var ts;
6661966646 NodeTypingsInstaller.prototype.sendEvent = function (seq, event, body) {
6662066647 this.socket.write(server.formatMessage({ seq: seq, type: "event", event: event, body: body }, this.logger, Buffer.byteLength, this.newLine), "utf8");
6662166648 };
66649+ NodeTypingsInstaller.prototype.setTelemetrySender = function (telemetrySender) {
66650+ this.telemetrySender = telemetrySender;
66651+ };
6662266652 NodeTypingsInstaller.prototype.attach = function (projectService) {
6662366653 var _this = this;
6662466654 this.projectService = projectService;
6662566655 if (this.logger.hasLevel(server.LogLevel.requestTime)) {
6662666656 this.logger.info("Binding...");
6662766657 }
66628- var args = ["--globalTypingsCacheLocation", this.globalTypingsCacheLocation];
66658+ var args = [server.Arguments.GlobalCacheLocation, this.globalTypingsCacheLocation];
66659+ if (this.telemetryEnabled) {
66660+ args.push(server.Arguments.EnableTelemetry);
66661+ }
6662966662 if (this.logger.loggingEnabled() && this.logger.getLogFileName()) {
66630- args.push("--logFile" , ts.combinePaths(ts.getDirectoryPath(ts.normalizeSlashes(this.logger.getLogFileName())), "ti-" + process.pid + ".log"));
66663+ args.push(server.Arguments.LogFile , ts.combinePaths(ts.getDirectoryPath(ts.normalizeSlashes(this.logger.getLogFileName())), "ti-" + process.pid + ".log"));
6663166664 }
6663266665 var execArgv = [];
6663366666 {
@@ -66672,19 +66705,38 @@ var ts;
6667266705 if (this.logger.hasLevel(server.LogLevel.verbose)) {
6667366706 this.logger.info("Received response: " + JSON.stringify(response));
6667466707 }
66708+ if (response.kind === server.EventInstall) {
66709+ if (this.telemetrySender) {
66710+ var body = {
66711+ telemetryEventName: "typingsInstalled",
66712+ payload: {
66713+ installedPackages: response.packagesToInstall.join(",")
66714+ }
66715+ };
66716+ var eventName = "telemetry";
66717+ this.telemetrySender.event(body, eventName);
66718+ }
66719+ return;
66720+ }
6667566721 this.projectService.updateTypingsForProject(response);
66676- if (response.kind == "set" && this.socket) {
66722+ if (response.kind == server.ActionSet && this.socket) {
6667766723 this.sendEvent(0, "setTypings", response);
6667866724 }
6667966725 };
6668066726 return NodeTypingsInstaller;
6668166727 }());
6668266728 var IOSession = (function (_super) {
6668366729 __extends(IOSession, _super);
66684- function IOSession(host, cancellationToken, installerEventPort, canUseEvents, useSingleInferredProject, disableAutomaticTypingAcquisition, globalTypingsCacheLocation, logger) {
66685- return _super.call(this, host, cancellationToken, useSingleInferredProject, disableAutomaticTypingAcquisition
66686- ? server.nullTypingsInstaller
66687- : new NodeTypingsInstaller(logger, host, installerEventPort, globalTypingsCacheLocation, host.newLine), Buffer.byteLength, process.hrtime, logger, canUseEvents) || this;
66730+ function IOSession(host, cancellationToken, installerEventPort, canUseEvents, useSingleInferredProject, disableAutomaticTypingAcquisition, globalTypingsCacheLocation, telemetryEnabled, logger) {
66731+ var _this;
66732+ var typingsInstaller = disableAutomaticTypingAcquisition
66733+ ? undefined
66734+ : new NodeTypingsInstaller(telemetryEnabled, logger, host, installerEventPort, globalTypingsCacheLocation, host.newLine);
66735+ _this = _super.call(this, host, cancellationToken, useSingleInferredProject, typingsInstaller || server.nullTypingsInstaller, Buffer.byteLength, process.hrtime, logger, canUseEvents) || this;
66736+ if (telemetryEnabled && typingsInstaller) {
66737+ typingsInstaller.setTelemetrySender(_this);
66738+ }
66739+ return _this;
6668866740 }
6668966741 IOSession.prototype.exit = function () {
6669066742 this.logger.info("Exiting...");
@@ -66864,17 +66916,16 @@ var ts;
6686466916 ;
6686566917 var eventPort;
6686666918 {
66867- var index = sys.args.indexOf("--eventPort");
66868- if (index >= 0 && index < sys.args.length - 1) {
66869- var v = parseInt(sys.args[index + 1]);
66870- if (!isNaN(v)) {
66871- eventPort = v;
66872- }
66919+ var str = server.findArgument("--eventPort");
66920+ var v = str && parseInt(str);
66921+ if (!isNaN(v)) {
66922+ eventPort = v;
6687366923 }
6687466924 }
66875- var useSingleInferredProject = sys.args.indexOf("--useSingleInferredProject") >= 0;
66876- var disableAutomaticTypingAcquisition = sys.args.indexOf("--disableAutomaticTypingAcquisition") >= 0;
66877- var ioSession = new IOSession(sys, cancellationToken, eventPort, eventPort === undefined, useSingleInferredProject, disableAutomaticTypingAcquisition, getGlobalTypingsCacheLocation(), logger);
66925+ var useSingleInferredProject = server.hasArgument("--useSingleInferredProject");
66926+ var disableAutomaticTypingAcquisition = server.hasArgument("--disableAutomaticTypingAcquisition");
66927+ var telemetryEnabled = server.hasArgument(server.Arguments.EnableTelemetry);
66928+ var ioSession = new IOSession(sys, cancellationToken, eventPort, eventPort === undefined, useSingleInferredProject, disableAutomaticTypingAcquisition, getGlobalTypingsCacheLocation(), telemetryEnabled, logger);
6687866929 process.on("uncaughtException", function (err) {
6687966930 ioSession.logError(err, "unknown");
6688066931 });
0 commit comments