Skip to content

Commit c0f26a4

Browse files
authored
Merge pull request #2195 from florkbr/use-module-interceptors
feat(config-utils): use the module interceptor when using local proxy
2 parents 73a81c8 + 7745c95 commit c0f26a4

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

packages/config-utils/src/feo/check-outgoing-requests.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ export function matchServiceTilesRequest(url: string): boolean {
1010
return !!url.match(/\/api\/chrome-service\/v1\/static\/service-tiles-generated\.json/);
1111
}
1212

13+
export function matchModulesRequest(url: string): boolean {
14+
return !!url.match(/\/api\/chrome-service\/v1\/static\/fed-modules-generated\.json/);
15+
}
16+
1317
export function isInterceptAbleRequest(url: string): boolean {
14-
const checks = [matchNavigationRequest, matchSearchIndexRequest, matchServiceTilesRequest];
18+
const checks = [matchNavigationRequest, matchSearchIndexRequest, matchServiceTilesRequest, matchModulesRequest];
1519
return checks.some((check) => check(url));
1620
}

packages/config-utils/src/feo/modify-response.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,39 @@
11
import 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';
45
import navigationInterceptor from './navigation-interceptor';
56
import searchInterceptor from './search-interceptor';
67
import serviceTilesInterceptor from './service-tiles-interceptor';
78

89
function 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

1516
function 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

2223
function 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+
2937
export 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

Comments
 (0)