react-native-bundle-discovery 2.0.0 → 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.
Files changed (2) hide show
  1. package/index.js +69 -1
  2. 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 = { createSerializer, createProcessModuleFilter };
304
+ module.exports = {
305
+ createResolveRequest,
306
+ createSerializer,
307
+ createProcessModuleFilter,
308
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bundle-discovery",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "main": "index.js",
5
5
  "repository": "git@github.com:retyui/react-native-bundle-discovery.git",
6
6
  "author": "David <4661784+retyui@users.noreply.github.com>",