11/* @internal */
22namespace ts {
3- export type PerfLogger = typeof import ( "@microsoft/typescript-etw" ) ; // tslint:disable-line:no-implicit-dependencies
4-
5- export class NullLogger implements PerfLogger {
6- logEvent ( _msg : string ) : void {
7- return ;
8- }
9- logErrEvent ( _msg : string ) : void {
10- return ;
11- }
12- logPerfEvent ( _msg : string ) : void {
13- return ;
14- }
15- logInfoEvent ( _msg : string ) : void {
16- return ;
17- }
18- logStartCommand ( _command : string , _msg : string ) : void {
19- return ;
20- }
21- logStopCommand ( _command : string , _msg : string ) : void {
22- return ;
23- }
24- logStartUpdateProgram ( _msg : string ) : void {
25- return ;
26- }
27- logStopUpdateProgram ( _msg : string ) : void {
28- return ;
29- }
30- logStartUpdateGraph ( ) : void {
31- return ;
32- }
33- logStopUpdateGraph ( ) : void {
34- return ;
35- }
36- logStartResolveModule ( _name : string ) : void {
37- return ;
38- }
39- logStopResolveModule ( _success : string ) : void {
40- return ;
41- }
42- logStartParseSourceFile ( _filename : string ) : void {
43- return ;
44- }
45- logStopParseSourceFile ( ) : void {
46- return ;
47- }
48- logStartReadFile ( _filename : string ) : void {
49- return ;
50- }
51- logStopReadFile ( ) : void {
52- return ;
53- }
54- logStartBindFile ( _filename : string ) : void {
55- return ;
56- }
57- logStopBindFile ( ) : void {
58- return ;
59- }
60- logStartScheduledOperation ( _operationId : string ) : void {
61- return ;
62- }
63- logStopScheduledOperation ( ) : void {
64- return ;
65- }
66- }
3+ type PerfLogger = typeof import ( "@microsoft/typescript-etw" ) ; // tslint:disable-line:no-implicit-dependencies
4+ const nullLogger : PerfLogger = {
5+ logEvent : noop ,
6+ logErrEvent : noop ,
7+ logPerfEvent : noop ,
8+ logInfoEvent : noop ,
9+ logStartCommand : noop ,
10+ logStopCommand : noop ,
11+ logStartUpdateProgram : noop ,
12+ logStopUpdateProgram : noop ,
13+ logStartUpdateGraph : noop ,
14+ logStopUpdateGraph : noop ,
15+ logStartResolveModule : noop ,
16+ logStopResolveModule : noop ,
17+ logStartParseSourceFile : noop ,
18+ logStopParseSourceFile : noop ,
19+ logStartReadFile : noop ,
20+ logStopReadFile : noop ,
21+ logStartBindFile : noop ,
22+ logStopBindFile : noop ,
23+ logStartScheduledOperation : noop ,
24+ logStopScheduledOperation : noop ,
25+ } ;
6726
6827 // Load optional module to enable Event Tracing for Windows
6928 // See https://github.com/microsoft/typescript-etw for more information
@@ -77,5 +36,8 @@ namespace ts {
7736 etwModule = undefined ;
7837 }
7938
80- export const perfLogger : PerfLogger = etwModule ? etwModule : new NullLogger ( ) ;
81- }
39+ /** Performance logger that will generate ETW events if possible */
40+ export const perfLogger : PerfLogger = etwModule ? etwModule : nullLogger ;
41+
42+ perfLogger . logInfoEvent ( `Starting TypeScript v${ versionMajorMinor } with command line: ${ JSON . stringify ( process . argv ) } ` ) ;
43+ }
0 commit comments