Skip to content

Commit 81aafc2

Browse files
troZeePiotr Trocki2heal1
authored
fix: passing custom request flag (#4244)
Co-authored-by: Piotr Trocki <[email protected]> Co-authored-by: Hanric <[email protected]>
1 parent 0bf1dea commit 81aafc2

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

packages/metro-core/src/plugin/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ function augmentConfig(
186186
patchHMRClient: flags.unstable_patchHMRClient,
187187
patchInitializeCore: flags.unstable_patchInitializeCore,
188188
},
189+
customResolver: config.resolver.resolveRequest,
189190
}),
190191
},
191192
server: {

packages/metro-core/src/plugin/resolver.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ interface CreateResolveRequestOptions {
3939
};
4040
options: ModuleFederationConfigNormalized;
4141
vmManager: VirtualModuleManager;
42+
customResolver?: CustomResolver;
4243
}
4344

4445
export function createResolveRequest({
@@ -47,6 +48,7 @@ export function createResolveRequest({
4748
hacks,
4849
paths,
4950
isRemote,
51+
customResolver,
5052
}: CreateResolveRequestOptions): CustomResolver {
5153
const hostEntryPathRegex = getEntryPathRegex({
5254
entry: paths.hostEntry,
@@ -116,7 +118,9 @@ export function createResolveRequest({
116118
if ([paths.initHost].includes(context.originModulePath)) {
117119
// init-host contains definition of shared modules so we need to prevent
118120
// circular import of shared module, by allowing import shared dependencies directly
119-
return context.resolveRequest(context, moduleName, platform);
121+
return customResolver
122+
? customResolver(context, moduleName, platform)
123+
: context.resolveRequest(context, moduleName, platform);
120124
}
121125

122126
// shared modules handling in remote-entry.js
@@ -127,7 +131,9 @@ export function createResolveRequest({
127131
const sharedPath = getSharedPath(moduleName, paths.tmpDir);
128132
return { type: 'sourceFile', filePath: sharedPath };
129133
}
130-
return context.resolveRequest(context, moduleName, platform);
134+
return customResolver
135+
? customResolver(context, moduleName, platform)
136+
: context.resolveRequest(context, moduleName, platform);
131137
}
132138

133139
// remote modules
@@ -154,15 +160,19 @@ export function createResolveRequest({
154160

155161
// replace getDevServer module in remote with our own implementation
156162
if (isRemote && moduleName.endsWith('getDevServer')) {
157-
const res = context.resolveRequest(context, moduleName, platform);
163+
const res = customResolver
164+
? customResolver(context, moduleName, platform)
165+
: context.resolveRequest(context, moduleName, platform);
158166
const from = GET_DEV_SERVER_REGEX;
159167
const to = resolveModule('getDevServer.ts');
160168
return replaceModule(from, to)(res);
161169
}
162170

163171
// replace HMRClient module with HMRClientShim when using bundle commands
164172
if (isUsingMFBundleCommand() && moduleName.endsWith('HMRClient')) {
165-
const res = context.resolveRequest(context, moduleName, platform);
173+
const res = customResolver
174+
? customResolver(context, moduleName, platform)
175+
: context.resolveRequest(context, moduleName, platform);
166176
const from = HMR_CLIENT_REGEX;
167177
const to = resolveModule('HMRClientShim.ts');
168178
return replaceModule(from, to)(res);
@@ -175,14 +185,18 @@ export function createResolveRequest({
175185
moduleName.endsWith('HMRClient') &&
176186
context.originModulePath !== resolveModule('HMRClient.ts')
177187
) {
178-
const res = context.resolveRequest(context, moduleName, platform);
188+
const res = customResolver
189+
? customResolver(context, moduleName, platform)
190+
: context.resolveRequest(context, moduleName, platform);
179191
const from = HMR_CLIENT_REGEX;
180192
const to = resolveModule('HMRClient.ts');
181193
// replace HMRClient with our own
182194
return replaceModule(from, to)(res);
183195
}
184196

185-
return context.resolveRequest(context, moduleName, platform);
197+
return customResolver
198+
? customResolver(context, moduleName, platform)
199+
: context.resolveRequest(context, moduleName, platform);
186200
};
187201
}
188202

0 commit comments

Comments
 (0)