@@ -20,6 +20,7 @@ import * as googmodule from './googmodule';
2020import { jsdocTransformer , removeTypeAssertions } from './jsdoc_transformer' ;
2121import { ModulesManifest } from './modules_manifest' ;
2222import { namespaceTransformer } from './ns_transformer' ;
23+ import { FileSummary , SummaryGenerationProcessorHost } from './summary' ;
2324import { isDtsFileName } from './transformer_util' ;
2425import * as tsmes from './ts_migration_exports_shim' ;
2526import { makeTsickleDeclarationMarkerTransformerFactory } from './tsickle_declaration_marker' ;
@@ -29,10 +30,12 @@ export {pathToModuleName} from './cli_support';
2930// Retained here for API compatibility.
3031export { getGeneratedExterns } from './externs' ;
3132export { FileMap , ModulesManifest } from './modules_manifest' ;
33+ export { FileSummary , ModuleType , Symbol , Type } from './summary' ;
3234
3335export interface TsickleHost extends googmodule . GoogModuleProcessorHost ,
3436 tsmes . TsMigrationExportsShimProcessorHost ,
35- AnnotatorHost {
37+ AnnotatorHost ,
38+ SummaryGenerationProcessorHost {
3639 /**
3740 * Whether to downlevel decorators
3841 */
@@ -79,6 +82,11 @@ export interface TsickleHost extends googmodule.GoogModuleProcessorHost,
7982 * Whether to add suppressions by default.
8083 */
8184 generateExtraSuppressions : boolean ;
85+
86+ /**
87+ * Whether to generate summaries.
88+ */
89+ generateSummary ?: boolean ;
8290}
8391
8492
@@ -90,6 +98,7 @@ export function mergeEmitResults(emitResults: EmitResult[]): EmitResult {
9098 { [ fileName : string ] : { output : string , moduleNamespace : string } } = { } ;
9199 const modulesManifest = new ModulesManifest ( ) ;
92100 const tsMigrationExportsShimFiles = new Map < string , string > ( ) ;
101+ const fileSummaries = new Map < string , FileSummary > ( ) ;
93102 for ( const er of emitResults ) {
94103 diagnostics . push ( ...er . diagnostics ) ;
95104 emitSkipped = emitSkipped || er . emitSkipped ;
@@ -101,6 +110,9 @@ export function mergeEmitResults(emitResults: EmitResult[]): EmitResult {
101110 for ( const [ k , v ] of er . tsMigrationExportsShimFiles ) {
102111 tsMigrationExportsShimFiles . set ( k , v ) ;
103112 }
113+ for ( const [ k , v ] of er . fileSummaries ) {
114+ fileSummaries . set ( k , v ) ;
115+ }
104116 }
105117
106118 return {
@@ -110,6 +122,7 @@ export function mergeEmitResults(emitResults: EmitResult[]): EmitResult {
110122 externs,
111123 tsMigrationExportsShimFiles,
112124 modulesManifest,
125+ fileSummaries,
113126 } ;
114127}
115128
@@ -127,6 +140,8 @@ export interface EmitResult extends ts.EmitResult {
127140 * Filenames are google3 relative.
128141 */
129142 tsMigrationExportsShimFiles : tsmes . TsMigrationExportsShimFileMap ;
143+
144+ fileSummaries : Map < string , FileSummary > ;
130145}
131146
132147export interface EmitTransformers {
@@ -182,17 +197,19 @@ export function emit(
182197 modulesManifest : new ModulesManifest ( ) ,
183198 externs : { } ,
184199 tsMigrationExportsShimFiles : new Map ( ) ,
200+ fileSummaries : new Map ( ) ,
185201 } ;
186202 }
187203
188204 const modulesManifest = new ModulesManifest ( ) ;
189205 const tsMigrationExportsShimFiles = new Map < string , string > ( ) ;
190206 const tsickleSourceTransformers : Array < ts . TransformerFactory < ts . SourceFile > > =
191207 [ ] ;
208+ const fileSummaries = new Map < string , FileSummary > ( ) ;
192209 tsickleSourceTransformers . push (
193210 tsmes . createTsMigrationExportsShimTransformerFactory (
194211 typeChecker , host , modulesManifest , tsickleDiagnostics ,
195- tsMigrationExportsShimFiles ) ) ;
212+ tsMigrationExportsShimFiles , fileSummaries ) ) ;
196213
197214 if ( host . transformTypesToClosure ) {
198215 // Only add @suppress {checkTypes} comments when also adding type
@@ -282,6 +299,7 @@ export function emit(
282299 diagnostics : [ ...tsDiagnostics , ...tsickleDiagnostics ] ,
283300 externs,
284301 tsMigrationExportsShimFiles,
302+ fileSummaries,
285303 } ;
286304}
287305
0 commit comments