react-native-bundle-discovery 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +69 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -197,6 +197,70 @@ function createSerializer({
|
|
|
197
197
|
return customSerializer;
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
+
/**
|
|
201
|
+
* Usage:
|
|
202
|
+
*
|
|
203
|
+
* ```js
|
|
204
|
+
* // metro.config.js
|
|
205
|
+
* const { createResolveRequest } = require("react-native-bundle-discovery");
|
|
206
|
+
* const resolveRequest = createResolveRequest({
|
|
207
|
+
* removePromisePolyfill: true,
|
|
208
|
+
* });
|
|
209
|
+
* const config = {
|
|
210
|
+
* resolver: {
|
|
211
|
+
* resolveRequest,
|
|
212
|
+
* },
|
|
213
|
+
* };
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
const empty = { type: "empty" };
|
|
217
|
+
const createResolveRequest = ({
|
|
218
|
+
removePromisePolyfill = false, // Remove useless polyfill (Hermes already has Promise)
|
|
219
|
+
removeOldRenderer = false, // Should be true when new ARCH is enabled
|
|
220
|
+
removeNewRenderer = false, // Should be true when new ARCH is disabled
|
|
221
|
+
removeUTFSequence = false, // Remove useless code
|
|
222
|
+
} = {}) => {
|
|
223
|
+
const resolveRequest = (context, ...rest) => {
|
|
224
|
+
const result = context.resolveRequest(context, ...rest);
|
|
225
|
+
if (context.dev) {
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
if (
|
|
229
|
+
removeUTFSequence &&
|
|
230
|
+
result?.filePath?.endsWith("/react-native/Libraries/UTFSequence.js")
|
|
231
|
+
) {
|
|
232
|
+
return empty;
|
|
233
|
+
}
|
|
234
|
+
if (
|
|
235
|
+
removePromisePolyfill &&
|
|
236
|
+
result?.filePath?.endsWith("/react-native/Libraries/Promise.js")
|
|
237
|
+
) {
|
|
238
|
+
return empty;
|
|
239
|
+
}
|
|
240
|
+
if (
|
|
241
|
+
removeOldRenderer &&
|
|
242
|
+
result?.filePath?.endsWith(
|
|
243
|
+
"/react-native/Libraries/Renderer/shims/ReactNative.js",
|
|
244
|
+
)
|
|
245
|
+
) {
|
|
246
|
+
return empty;
|
|
247
|
+
}
|
|
248
|
+
if (
|
|
249
|
+
removeNewRenderer &&
|
|
250
|
+
result?.filePath?.endsWith(
|
|
251
|
+
"/react-native/Libraries/Renderer/shims/ReactFabric.js",
|
|
252
|
+
)
|
|
253
|
+
) {
|
|
254
|
+
return empty;
|
|
255
|
+
}
|
|
256
|
+
return result;
|
|
257
|
+
};
|
|
258
|
+
return resolveRequest;
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* @deprecated Use `createResolveRequest` instead.
|
|
263
|
+
*/
|
|
200
264
|
const createProcessModuleFilter =
|
|
201
265
|
({
|
|
202
266
|
removePromisePolyfill = false, // Remove useless polyfill (Hermes already has Promise)
|
|
@@ -237,4 +301,8 @@ const createProcessModuleFilter =
|
|
|
237
301
|
return true;
|
|
238
302
|
};
|
|
239
303
|
|
|
240
|
-
module.exports = {
|
|
304
|
+
module.exports = {
|
|
305
|
+
createResolveRequest,
|
|
306
|
+
createSerializer,
|
|
307
|
+
createProcessModuleFilter,
|
|
308
|
+
};
|
package/package.json
CHANGED