Skip to content

Commit 8e8ec9f

Browse files
committed
Update LKG
1 parent f03e04a commit 8e8ec9f

File tree

5 files changed

+281
-155
lines changed

5 files changed

+281
-155
lines changed

lib/protocol.d.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,6 +1611,26 @@ declare namespace ts.server.protocol {
16111611
spans: TextSpan[];
16121612
childItems?: NavigationTree[];
16131613
}
1614+
type TelemetryEventName = "telemetry";
1615+
interface TelemetryEvent extends Event {
1616+
event: TelemetryEventName;
1617+
body: TelemetryEventBody;
1618+
}
1619+
interface TelemetryEventBody {
1620+
telemetryEventName: string;
1621+
payload: any;
1622+
}
1623+
type TypingsInstalledTelemetryEventName = "typingsInstalled";
1624+
interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody {
1625+
telemetryEventName: TypingsInstalledTelemetryEventName;
1626+
payload: TypingsInstalledTelemetryEventPayload;
1627+
}
1628+
interface TypingsInstalledTelemetryEventPayload {
1629+
/**
1630+
* Comma separated list of installed typing packages
1631+
*/
1632+
installedPackages: string;
1633+
}
16141634
interface NavBarResponse extends Response {
16151635
body?: NavigationBarItem[];
16161636
}

lib/tsserver.js

Lines changed: 70 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5868,6 +5868,32 @@ var ts;
58685868
})(JsTyping = ts.JsTyping || (ts.JsTyping = {}));
58695869
})(ts || (ts = {}));
58705870
var 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
});

lib/tsserverlibrary.d.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,23 @@ declare namespace ts.server.protocol {
690690
spans: TextSpan[];
691691
childItems?: NavigationTree[];
692692
}
693+
type TelemetryEventName = "telemetry";
694+
interface TelemetryEvent extends Event {
695+
event: TelemetryEventName;
696+
body: TelemetryEventBody;
697+
}
698+
interface TelemetryEventBody {
699+
telemetryEventName: string;
700+
payload: any;
701+
}
702+
type TypingsInstalledTelemetryEventName = "typingsInstalled";
703+
interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody {
704+
telemetryEventName: TypingsInstalledTelemetryEventName;
705+
payload: TypingsInstalledTelemetryEventPayload;
706+
}
707+
interface TypingsInstalledTelemetryEventPayload {
708+
installedPackages: string;
709+
}
693710
interface NavBarResponse extends Response {
694711
body?: NavigationBarItem[];
695712
}
@@ -8398,6 +8415,18 @@ declare namespace ts.JsTyping {
83988415
filesToWatch: string[];
83998416
};
84008417
}
8418+
declare namespace ts.server {
8419+
const ActionSet: ActionSet;
8420+
const ActionInvalidate: ActionInvalidate;
8421+
const EventInstall: EventInstall;
8422+
namespace Arguments {
8423+
const GlobalCacheLocation = "--globalTypingsCacheLocation";
8424+
const LogFile = "--logFile";
8425+
const EnableTelemetry = "--enableTelemetry";
8426+
}
8427+
function hasArgument(argumentName: string): boolean;
8428+
function findArgument(argumentName: string): string;
8429+
}
84018430
declare namespace ts.server {
84028431
enum LogLevel {
84038432
terse = 0,
@@ -10902,6 +10931,9 @@ declare namespace ts.server {
1090210931
fileName: NormalizedPath;
1090310932
project: Project;
1090410933
}
10934+
interface EventSender {
10935+
event(payload: any, eventName: string): void;
10936+
}
1090510937
namespace CommandNames {
1090610938
const Brace: protocol.CommandTypes.Brace;
1090710939
const BraceFull: protocol.CommandTypes.BraceFull;
@@ -10973,7 +11005,7 @@ declare namespace ts.server {
1097311005
const GetSupportedCodeFixes: protocol.CommandTypes.GetSupportedCodeFixes;
1097411006
}
1097511007
function formatMessage<T extends protocol.Message>(msg: T, logger: server.Logger, byteLength: (s: string, encoding: string) => number, newLine: string): string;
10976-
class Session {
11008+
class Session implements EventSender {
1097711009
private host;
1097811010
protected readonly typingsInstaller: ITypingsInstaller;
1097911011
private byteLength;

lib/tsserverlibrary.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5868,6 +5868,32 @@ var ts;
58685868
})(JsTyping = ts.JsTyping || (ts.JsTyping = {}));
58695869
})(ts || (ts = {}));
58705870
var 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
}

0 commit comments

Comments
 (0)