@@ -20,6 +20,7 @@ import * as googmodule from './googmodule';
20
20
import { jsdocTransformer , removeTypeAssertions } from './jsdoc_transformer' ;
21
21
import { ModulesManifest } from './modules_manifest' ;
22
22
import { namespaceTransformer } from './ns_transformer' ;
23
+ import { FileSummary , SummaryGenerationProcessorHost } from './summary' ;
23
24
import { isDtsFileName } from './transformer_util' ;
24
25
import * as tsmes from './ts_migration_exports_shim' ;
25
26
import { makeTsickleDeclarationMarkerTransformerFactory } from './tsickle_declaration_marker' ;
@@ -29,10 +30,12 @@ export {pathToModuleName} from './cli_support';
29
30
// Retained here for API compatibility.
30
31
export { getGeneratedExterns } from './externs' ;
31
32
export { FileMap , ModulesManifest } from './modules_manifest' ;
33
+ export { FileSummary , ModuleType , Symbol , Type } from './summary' ;
32
34
33
35
export interface TsickleHost extends googmodule . GoogModuleProcessorHost ,
34
36
tsmes . TsMigrationExportsShimProcessorHost ,
35
- AnnotatorHost {
37
+ AnnotatorHost ,
38
+ SummaryGenerationProcessorHost {
36
39
/**
37
40
* Whether to downlevel decorators
38
41
*/
@@ -79,6 +82,11 @@ export interface TsickleHost extends googmodule.GoogModuleProcessorHost,
79
82
* Whether to add suppressions by default.
80
83
*/
81
84
generateExtraSuppressions : boolean ;
85
+
86
+ /**
87
+ * Whether to generate summaries.
88
+ */
89
+ generateSummary ?: boolean ;
82
90
}
83
91
84
92
@@ -90,6 +98,7 @@ export function mergeEmitResults(emitResults: EmitResult[]): EmitResult {
90
98
{ [ fileName : string ] : { output : string , moduleNamespace : string } } = { } ;
91
99
const modulesManifest = new ModulesManifest ( ) ;
92
100
const tsMigrationExportsShimFiles = new Map < string , string > ( ) ;
101
+ const fileSummaries = new Map < string , FileSummary > ( ) ;
93
102
for ( const er of emitResults ) {
94
103
diagnostics . push ( ...er . diagnostics ) ;
95
104
emitSkipped = emitSkipped || er . emitSkipped ;
@@ -101,6 +110,9 @@ export function mergeEmitResults(emitResults: EmitResult[]): EmitResult {
101
110
for ( const [ k , v ] of er . tsMigrationExportsShimFiles ) {
102
111
tsMigrationExportsShimFiles . set ( k , v ) ;
103
112
}
113
+ for ( const [ k , v ] of er . fileSummaries ) {
114
+ fileSummaries . set ( k , v ) ;
115
+ }
104
116
}
105
117
106
118
return {
@@ -110,6 +122,7 @@ export function mergeEmitResults(emitResults: EmitResult[]): EmitResult {
110
122
externs,
111
123
tsMigrationExportsShimFiles,
112
124
modulesManifest,
125
+ fileSummaries,
113
126
} ;
114
127
}
115
128
@@ -127,6 +140,8 @@ export interface EmitResult extends ts.EmitResult {
127
140
* Filenames are google3 relative.
128
141
*/
129
142
tsMigrationExportsShimFiles : tsmes . TsMigrationExportsShimFileMap ;
143
+
144
+ fileSummaries : Map < string , FileSummary > ;
130
145
}
131
146
132
147
export interface EmitTransformers {
@@ -182,17 +197,19 @@ export function emit(
182
197
modulesManifest : new ModulesManifest ( ) ,
183
198
externs : { } ,
184
199
tsMigrationExportsShimFiles : new Map ( ) ,
200
+ fileSummaries : new Map ( ) ,
185
201
} ;
186
202
}
187
203
188
204
const modulesManifest = new ModulesManifest ( ) ;
189
205
const tsMigrationExportsShimFiles = new Map < string , string > ( ) ;
190
206
const tsickleSourceTransformers : Array < ts . TransformerFactory < ts . SourceFile > > =
191
207
[ ] ;
208
+ const fileSummaries = new Map < string , FileSummary > ( ) ;
192
209
tsickleSourceTransformers . push (
193
210
tsmes . createTsMigrationExportsShimTransformerFactory (
194
211
typeChecker , host , modulesManifest , tsickleDiagnostics ,
195
- tsMigrationExportsShimFiles ) ) ;
212
+ tsMigrationExportsShimFiles , fileSummaries ) ) ;
196
213
197
214
if ( host . transformTypesToClosure ) {
198
215
// Only add @suppress {checkTypes} comments when also adding type
@@ -282,6 +299,7 @@ export function emit(
282
299
diagnostics : [ ...tsDiagnostics , ...tsickleDiagnostics ] ,
283
300
externs,
284
301
tsMigrationExportsShimFiles,
302
+ fileSummaries,
285
303
} ;
286
304
}
287
305
0 commit comments