11import fecLogger , { LogType } from '../fec-logger' ;
2- import { matchNavigationRequest , matchSearchIndexRequest , matchServiceTilesRequest } from './check-outgoing-requests' ;
3- import { ChromeStaticSearchEntry , FrontendCRD , GeneratedBundles , ServicesTilesResponseEntry } from './feo-types' ;
2+ import { matchNavigationRequest , matchSearchIndexRequest , matchServiceTilesRequest , matchModulesRequest } from './check-outgoing-requests' ;
3+ import { ChromeModuleRegistry , ChromeStaticSearchEntry , FrontendCRD , GeneratedBundles , ServicesTilesResponseEntry } from './feo-types' ;
4+ import moduleInterceptor from './module-interceptor' ;
45import navigationInterceptor from './navigation-interceptor' ;
56import searchInterceptor from './search-interceptor' ;
67import serviceTilesInterceptor from './service-tiles-interceptor' ;
78
89function isGeneratedBundles (
9- body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] ,
10+ body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] | ChromeModuleRegistry ,
1011 url : string
1112) : body is GeneratedBundles {
1213 return matchNavigationRequest ( url ) ;
1314}
1415
1516function isSearchIndex (
16- body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] ,
17+ body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] | ChromeModuleRegistry ,
1718 url : string
1819) : body is ChromeStaticSearchEntry [ ] {
1920 return matchSearchIndexRequest ( url ) ;
2021}
2122
2223function isServiceTiles (
23- body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] ,
24+ body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] | ChromeModuleRegistry ,
2425 url : string
2526) : body is ServicesTilesResponseEntry [ ] {
2627 return matchServiceTilesRequest ( url ) ;
2728}
2829
30+ function isModules (
31+ body : GeneratedBundles | ChromeStaticSearchEntry [ ] | ServicesTilesResponseEntry [ ] | ChromeModuleRegistry ,
32+ url : string
33+ ) : body is ChromeModuleRegistry {
34+ return matchModulesRequest ( url ) ;
35+ }
36+
2937export function modifyRequest ( body : string , url : string , frontendCrd : FrontendCRD ) : string {
3038 // intentionally let the parse throw an error to parent to handle unfinished request chunks
3139 const objectToModify = JSON . parse ( body ) ;
@@ -47,6 +55,10 @@ export function modifyRequest(body: string, url: string, frontendCrd: FrontendCR
4755 const staticServicesTiles = objectToModify as ServicesTilesResponseEntry [ ] ;
4856 const result = serviceTilesInterceptor ( staticServicesTiles , frontendCrd ) ;
4957 payload = JSON . stringify ( result ) ;
58+ } else if ( isModules ( objectToModify , url ) ) {
59+ const modules = objectToModify as ChromeModuleRegistry ;
60+ const result = moduleInterceptor ( modules , frontendCrd ) ;
61+ payload = JSON . stringify ( result ) ;
5062 }
5163 return payload ;
5264 } catch ( error ) {
0 commit comments