vxrn 1.2.72 → 1.2.73-1769198278225

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 (43) hide show
  1. package/dist/config/mergeUserConfig.js +12 -8
  2. package/dist/config/mergeUserConfig.js.map +1 -1
  3. package/dist/config/mergeUserConfig.mjs +4 -2
  4. package/dist/config/mergeUserConfig.mjs.map +1 -1
  5. package/dist/config/mergeUserConfig.native.js +10 -2
  6. package/dist/config/mergeUserConfig.native.js.map +1 -1
  7. package/dist/config/mergeUserConfig.test.js +80 -0
  8. package/dist/config/mergeUserConfig.test.js.map +6 -0
  9. package/dist/config/mergeUserConfig.test.mjs +83 -0
  10. package/dist/config/mergeUserConfig.test.mjs.map +1 -0
  11. package/dist/config/mergeUserConfig.test.native.js +90 -0
  12. package/dist/config/mergeUserConfig.test.native.js.map +1 -0
  13. package/dist/plugins/autoDepOptimizePlugin.js +10 -6
  14. package/dist/plugins/autoDepOptimizePlugin.js.map +1 -1
  15. package/dist/plugins/autoDepOptimizePlugin.mjs +12 -6
  16. package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
  17. package/dist/plugins/autoDepOptimizePlugin.native.js +18 -6
  18. package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
  19. package/dist/plugins/autoDepOptimizePlugin.test.js +19 -0
  20. package/dist/plugins/autoDepOptimizePlugin.test.js.map +6 -0
  21. package/dist/plugins/autoDepOptimizePlugin.test.mjs +25 -0
  22. package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +1 -0
  23. package/dist/plugins/autoDepOptimizePlugin.test.native.js +35 -0
  24. package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +1 -0
  25. package/dist/plugins/defaultDepOptimizePlugin.js +1 -1
  26. package/dist/plugins/defaultDepOptimizePlugin.js.map +1 -1
  27. package/dist/plugins/defaultDepOptimizePlugin.mjs +1 -1
  28. package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
  29. package/dist/plugins/defaultDepOptimizePlugin.native.js +1 -1
  30. package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
  31. package/package.json +12 -12
  32. package/src/config/mergeUserConfig.test.ts +126 -0
  33. package/src/config/mergeUserConfig.ts +16 -8
  34. package/src/plugins/autoDepOptimizePlugin.test.ts +42 -0
  35. package/src/plugins/autoDepOptimizePlugin.ts +19 -5
  36. package/src/plugins/defaultDepOptimizePlugin.ts +2 -1
  37. package/types/config/mergeUserConfig.d.ts.map +1 -1
  38. package/types/config/mergeUserConfig.test.d.ts +2 -0
  39. package/types/config/mergeUserConfig.test.d.ts.map +1 -0
  40. package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
  41. package/types/plugins/autoDepOptimizePlugin.test.d.ts +2 -0
  42. package/types/plugins/autoDepOptimizePlugin.test.d.ts.map +1 -0
  43. package/types/plugins/defaultDepOptimizePlugin.d.ts.map +1 -1
@@ -10,7 +10,15 @@ function mergeUserConfig(optimizeDeps, serverConfig, userViteConfig) {
10
10
  return serverConfig;
11
11
  }
12
12
  function deepMergeOptimizeDeps(a, b, extraDepsOpt, avoidMergeExternal = !1) {
13
- a.optimizeDeps ||= {}, b.optimizeDeps ||= {}, avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([
13
+ a.optimizeDeps ||= {}, b.optimizeDeps ||= {};
14
+ const excludeSet = new Set(
15
+ uniq([
16
+ ...a.optimizeDeps.exclude || [],
17
+ ...b.optimizeDeps.exclude || [],
18
+ ...extraDepsOpt?.exclude || []
19
+ ])
20
+ );
21
+ avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([
14
22
  ...coerceToArray(a.noExternal || []),
15
23
  ...a.optimizeDeps.include || [],
16
24
  ...b.optimizeDeps.include || [],
@@ -21,19 +29,15 @@ function deepMergeOptimizeDeps(a, b, extraDepsOpt, avoidMergeExternal = !1) {
21
29
  "react-dom",
22
30
  "react-dom/server",
23
31
  "react-dom/client"
24
- ])), a.optimizeDeps.exclude = uniq([
25
- ...a.optimizeDeps.exclude || [],
26
- ...b.optimizeDeps.exclude || [],
27
- ...extraDepsOpt?.exclude || []
28
- ]), a.optimizeDeps.include = uniq([
32
+ ]).filter((dep) => typeof dep != "string" || !excludeSet.has(dep))), a.optimizeDeps.exclude = [...excludeSet], a.optimizeDeps.include = uniq([
29
33
  ...a.optimizeDeps.include || [],
30
34
  ...b.optimizeDeps.include || [],
31
35
  ...extraDepsOpt?.include || []
32
- ]), a.optimizeDeps.needsInterop = uniq([
36
+ ]).filter((dep) => !excludeSet.has(dep)), a.optimizeDeps.needsInterop = uniq([
33
37
  ...a.optimizeDeps.needsInterop || [],
34
38
  ...b.optimizeDeps.needsInterop || [],
35
39
  ...extraDepsOpt?.needsInterop || []
36
- ]), a.optimizeDeps.esbuildOptions = {
40
+ ]).filter((dep) => !excludeSet.has(dep)), a.optimizeDeps.esbuildOptions = {
37
41
  ...a.optimizeDeps.esbuildOptions,
38
42
  ...b.optimizeDeps.esbuildOptions,
39
43
  ...extraDepsOpt?.esbuildOptions
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/config/mergeUserConfig.ts"],
4
- "mappings": "AAAA,SAAS,mBAAgE;AACzE,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AAgBd,SAAS,gBACd,cACA,cACA,gBACA;AACA,MAAI,gBAAgB;AASlB,QARA,eAAe,YAAY,cAAc,cAAc,GAGnD,eAAe,QACjB,aAAa,MAAM,eAAe,MAKlC,aAAa,KAAK,cAClB,aAAa,IAAI,eAAe,MAChC,CAAC,MAAM,QAAQ,aAAa,IAAI,UAAU;AAE1C,YAAM,IAAI,MAAM,yCAAyC;AAO3D,iBAAa,QAAQ,CAAC,GACtB,eAAe,QAAQ,CAAC,GACxB,sBAAsB,aAAa,KAAK,eAAe,KAAK,YAAY,GACxE,sBAAsB,aAAa,KAAK,gBAAgB,YAAY;AAAA,EACtE;AAEA,SAAO;AACT;AAEO,SAAS,sBACd,GACA,GACA,cACA,qBAAqB,IACrB;AACA,IAAE,iBAAiB,CAAC,GACpB,EAAE,iBAAiB,CAAC,GAEf,uBAEC,EAAE,eAAe,MAAQ,EAAE,eAAe,KAC5C,EAAE,aAAa,KAEf,EAAE,aAAa,KAAK;AAAA,IAClB,GAAG,cAAe,EAAE,cAA2B,CAAC,CAAC;AAAA,IACjD,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;AAAA,IACnC,GAAI,cAAc,WAAW,CAAC;AAAA;AAAA,IAG9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,IAIL,EAAE,aAAa,UAAU,KAAK;AAAA,IAC5B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,cAAc,WAAW,CAAC;AAAA,EAChC,CAAC,GAED,EAAE,aAAa,UAAU,KAAK;AAAA,IAC5B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,cAAc,WAAW,CAAC;AAAA,EAChC,CAAC,GAED,EAAE,aAAa,eAAe,KAAK;AAAA,IACjC,GAAI,EAAE,aAAa,gBAAgB,CAAC;AAAA,IACpC,GAAI,EAAE,aAAa,gBAAgB,CAAC;AAAA,IACpC,GAAI,cAAc,gBAAgB,CAAC;AAAA,EACrC,CAAC,GAED,EAAE,aAAa,iBAAiB;AAAA,IAC9B,GAAG,EAAE,aAAa;AAAA,IAClB,GAAG,EAAE,aAAa;AAAA,IAClB,GAAG,cAAc;AAAA,EACnB;AACF;",
4
+ "mappings": "AAAA,SAAS,mBAAgE;AACzE,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AAgBd,SAAS,gBACd,cACA,cACA,gBACA;AACA,MAAI,gBAAgB;AASlB,QARA,eAAe,YAAY,cAAc,cAAc,GAGnD,eAAe,QACjB,aAAa,MAAM,eAAe,MAKlC,aAAa,KAAK,cAClB,aAAa,IAAI,eAAe,MAChC,CAAC,MAAM,QAAQ,aAAa,IAAI,UAAU;AAE1C,YAAM,IAAI,MAAM,yCAAyC;AAO3D,iBAAa,QAAQ,CAAC,GACtB,eAAe,QAAQ,CAAC,GACxB,sBAAsB,aAAa,KAAK,eAAe,KAAK,YAAY,GACxE,sBAAsB,aAAa,KAAK,gBAAgB,YAAY;AAAA,EACtE;AAEA,SAAO;AACT;AAEO,SAAS,sBACd,GACA,GACA,cACA,qBAAqB,IACrB;AACA,IAAE,iBAAiB,CAAC,GACpB,EAAE,iBAAiB,CAAC;AAGpB,QAAM,aAAa,IAAI;AAAA,IACrB,KAAK;AAAA,MACH,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,MAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,MAC/B,GAAI,cAAc,WAAW,CAAC;AAAA,IAChC,CAAC;AAAA,EACH;AAEA,EAAK,uBAEC,EAAE,eAAe,MAAQ,EAAE,eAAe,KAC5C,EAAE,aAAa,KAGf,EAAE,aAAa,KAAK;AAAA,IAClB,GAAG,cAAe,EAAE,cAA2B,CAAC,CAAC;AAAA,IACjD,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC;AAAA,IACnC,GAAI,cAAc,WAAW,CAAC;AAAA;AAAA,IAG9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EAAE,OAAO,CAAC,QAAQ,OAAO,OAAQ,YAAY,CAAC,WAAW,IAAI,GAAG,CAAC,IAItE,EAAE,aAAa,UAAU,CAAC,GAAG,UAAU,GAIvC,EAAE,aAAa,UAAU,KAAK;AAAA,IAC5B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,EAAE,aAAa,WAAW,CAAC;AAAA,IAC/B,GAAI,cAAc,WAAW,CAAC;AAAA,EAChC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC,GAEvC,EAAE,aAAa,eAAe,KAAK;AAAA,IACjC,GAAI,EAAE,aAAa,gBAAgB,CAAC;AAAA,IACpC,GAAI,EAAE,aAAa,gBAAgB,CAAC;AAAA,IACpC,GAAI,cAAc,gBAAgB,CAAC;AAAA,EACrC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC,GAEvC,EAAE,aAAa,iBAAiB;AAAA,IAC9B,GAAG,EAAE,aAAa;AAAA,IAClB,GAAG,EAAE,aAAa;AAAA,IAClB,GAAG,cAAc;AAAA,EACnB;AACF;",
5
5
  "names": []
6
6
  }
@@ -9,9 +9,11 @@ function mergeUserConfig(optimizeDeps, serverConfig, userViteConfig) {
9
9
  return serverConfig;
10
10
  }
11
11
  function deepMergeOptimizeDeps(a, b, extraDepsOpt, avoidMergeExternal = !1) {
12
- a.optimizeDeps ||= {}, b.optimizeDeps ||= {}, avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([...coerceToArray(a.noExternal || []), ...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...coerceToArray(b.noExternal || []), ...(extraDepsOpt?.include || []),
12
+ a.optimizeDeps ||= {}, b.optimizeDeps ||= {};
13
+ const excludeSet = new Set(uniq([...(a.optimizeDeps.exclude || []), ...(b.optimizeDeps.exclude || []), ...(extraDepsOpt?.exclude || [])]));
14
+ avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([...coerceToArray(a.noExternal || []), ...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...coerceToArray(b.noExternal || []), ...(extraDepsOpt?.include || []),
13
15
  // TODO at least move to getOptimizeDeps
14
- "react", "react-dom", "react-dom/server", "react-dom/client"])), a.optimizeDeps.exclude = uniq([...(a.optimizeDeps.exclude || []), ...(b.optimizeDeps.exclude || []), ...(extraDepsOpt?.exclude || [])]), a.optimizeDeps.include = uniq([...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...(extraDepsOpt?.include || [])]), a.optimizeDeps.needsInterop = uniq([...(a.optimizeDeps.needsInterop || []), ...(b.optimizeDeps.needsInterop || []), ...(extraDepsOpt?.needsInterop || [])]), a.optimizeDeps.esbuildOptions = {
16
+ "react", "react-dom", "react-dom/server", "react-dom/client"]).filter(dep => typeof dep != "string" || !excludeSet.has(dep))), a.optimizeDeps.exclude = [...excludeSet], a.optimizeDeps.include = uniq([...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...(extraDepsOpt?.include || [])]).filter(dep => !excludeSet.has(dep)), a.optimizeDeps.needsInterop = uniq([...(a.optimizeDeps.needsInterop || []), ...(b.optimizeDeps.needsInterop || []), ...(extraDepsOpt?.needsInterop || [])]).filter(dep => !excludeSet.has(dep)), a.optimizeDeps.esbuildOptions = {
15
17
  ...a.optimizeDeps.esbuildOptions,
16
18
  ...b.optimizeDeps.esbuildOptions,
17
19
  ...extraDepsOpt?.esbuildOptions
@@ -1 +1 @@
1
- {"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","include","exclude","needsInterop","esbuildOptions"],"sources":["../../src/config/mergeUserConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAgE;AACzE,SAASC,aAAA,QAAqB;AAC9B,SAASC,IAAA,QAAY;AAgBd,SAASC,gBACdC,YAAA,EACAC,YAAA,EACAC,cAAA,EACA;EACA,IAAIA,cAAA,EAAgB;IASlB,IARAD,YAAA,GAAeL,WAAA,CAAYK,YAAA,EAAcC,cAAc,GAGnDA,cAAA,CAAeC,GAAA,KACjBF,YAAA,CAAaE,GAAA,GAAMD,cAAA,CAAeC,GAAA,GAKlCF,YAAA,CAAaG,GAAA,EAAKC,UAAA,IAClBJ,YAAA,CAAaG,GAAA,CAAIC,UAAA,KAAe,MAChC,CAACC,KAAA,CAAMC,OAAA,CAAQN,YAAA,CAAaG,GAAA,CAAIC,UAAU,GAE1C,MAAM,IAAIG,KAAA,CAAM,yCAAyC;IAO3DP,YAAA,CAAaG,GAAA,KAAQ,CAAC,GACtBF,cAAA,CAAeE,GAAA,KAAQ,CAAC,GACxBK,qBAAA,CAAsBR,YAAA,CAAaG,GAAA,EAAKF,cAAA,CAAeE,GAAA,EAAKJ,YAAY,GACxES,qBAAA,CAAsBR,YAAA,CAAaG,GAAA,EAAKF,cAAA,EAAgBF,YAAY;EACtE;EAEA,OAAOC,YAAA;AACT;AAEO,SAASQ,sBACdC,CAAA,EACAC,CAAA,EACAC,YAAA,EACAC,kBAAA,GAAqB,IACrB;EACAH,CAAA,CAAEV,YAAA,KAAiB,CAAC,GACpBW,CAAA,CAAEX,YAAA,KAAiB,CAAC,GAEfa,kBAAA,KAECH,CAAA,CAAEL,UAAA,KAAe,MAAQM,CAAA,CAAEN,UAAA,KAAe,KAC5CK,CAAA,CAAEL,UAAA,GAAa,KAEfK,CAAA,CAAEL,UAAA,GAAaP,IAAA,CAAK,CAClB,GAAGD,aAAA,CAAea,CAAA,CAAEL,UAAA,IAA2B,EAAE,GACjD,IAAIK,CAAA,CAAEV,YAAA,CAAac,OAAA,IAAW,EAAC,GAC/B,IAAIH,CAAA,CAAEX,YAAA,CAAac,OAAA,IAAW,EAAC,GAC/B,GAAGjB,aAAA,CAAcc,CAAA,CAAEN,UAAA,IAAc,EAAE,GACnC,IAAIO,YAAA,EAAcE,OAAA,IAAW,EAAC;EAAA;EAG9B,SACA,aACA,oBACA,mBACD,IAILJ,CAAA,CAAEV,YAAA,CAAae,OAAA,GAAUjB,IAAA,CAAK,CAC5B,IAAIY,CAAA,CAAEV,YAAA,CAAae,OAAA,IAAW,EAAC,GAC/B,IAAIJ,CAAA,CAAEX,YAAA,CAAae,OAAA,IAAW,EAAC,GAC/B,IAAIH,YAAA,EAAcG,OAAA,IAAW,EAAC,EAC/B,GAEDL,CAAA,CAAEV,YAAA,CAAac,OAAA,GAAUhB,IAAA,CAAK,CAC5B,IAAIY,CAAA,CAAEV,YAAA,CAAac,OAAA,IAAW,EAAC,GAC/B,IAAIH,CAAA,CAAEX,YAAA,CAAac,OAAA,IAAW,EAAC,GAC/B,IAAIF,YAAA,EAAcE,OAAA,IAAW,EAAC,EAC/B,GAEDJ,CAAA,CAAEV,YAAA,CAAagB,YAAA,GAAelB,IAAA,CAAK,CACjC,IAAIY,CAAA,CAAEV,YAAA,CAAagB,YAAA,IAAgB,EAAC,GACpC,IAAIL,CAAA,CAAEX,YAAA,CAAagB,YAAA,IAAgB,EAAC,GACpC,IAAIJ,YAAA,EAAcI,YAAA,IAAgB,EAAC,EACpC,GAEDN,CAAA,CAAEV,YAAA,CAAaiB,cAAA,GAAiB;IAC9B,GAAGP,CAAA,CAAEV,YAAA,CAAaiB,cAAA;IAClB,GAAGN,CAAA,CAAEX,YAAA,CAAaiB,cAAA;IAClB,GAAGL,YAAA,EAAcK;EACnB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","excludeSet","Set","exclude","include","filter","dep","has","needsInterop","esbuildOptions"],"sources":["../../src/config/mergeUserConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -13,9 +13,17 @@ function deepMergeOptimizeDeps(a, b, extraDepsOpt) {
13
13
  var avoidMergeExternal = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
14
14
  _a,
15
15
  _b;
16
- (_a = a).optimizeDeps || (_a.optimizeDeps = {}), (_b = b).optimizeDeps || (_b.optimizeDeps = {}), avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([...coerceToArray(a.noExternal || []), ...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...coerceToArray(b.noExternal || []), ...(extraDepsOpt?.include || []),
16
+ (_a = a).optimizeDeps || (_a.optimizeDeps = {}), (_b = b).optimizeDeps || (_b.optimizeDeps = {});
17
+ var excludeSet = new Set(uniq([...(a.optimizeDeps.exclude || []), ...(b.optimizeDeps.exclude || []), ...(extraDepsOpt?.exclude || [])]));
18
+ avoidMergeExternal || (a.noExternal === !0 || b.noExternal === !0 ? a.noExternal = !0 : a.noExternal = uniq([...coerceToArray(a.noExternal || []), ...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...coerceToArray(b.noExternal || []), ...(extraDepsOpt?.include || []),
17
19
  // TODO at least move to getOptimizeDeps
18
- "react", "react-dom", "react-dom/server", "react-dom/client"])), a.optimizeDeps.exclude = uniq([...(a.optimizeDeps.exclude || []), ...(b.optimizeDeps.exclude || []), ...(extraDepsOpt?.exclude || [])]), a.optimizeDeps.include = uniq([...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...(extraDepsOpt?.include || [])]), a.optimizeDeps.needsInterop = uniq([...(a.optimizeDeps.needsInterop || []), ...(b.optimizeDeps.needsInterop || []), ...(extraDepsOpt?.needsInterop || [])]), a.optimizeDeps.esbuildOptions = {
20
+ "react", "react-dom", "react-dom/server", "react-dom/client"]).filter(function (dep) {
21
+ return typeof dep != "string" || !excludeSet.has(dep);
22
+ })), a.optimizeDeps.exclude = [...excludeSet], a.optimizeDeps.include = uniq([...(a.optimizeDeps.include || []), ...(b.optimizeDeps.include || []), ...(extraDepsOpt?.include || [])]).filter(function (dep) {
23
+ return !excludeSet.has(dep);
24
+ }), a.optimizeDeps.needsInterop = uniq([...(a.optimizeDeps.needsInterop || []), ...(b.optimizeDeps.needsInterop || []), ...(extraDepsOpt?.needsInterop || [])]).filter(function (dep) {
25
+ return !excludeSet.has(dep);
26
+ }), a.optimizeDeps.esbuildOptions = {
19
27
  ...a.optimizeDeps.esbuildOptions,
20
28
  ...b.optimizeDeps.esbuildOptions,
21
29
  ...extraDepsOpt?.esbuildOptions
@@ -1 +1 @@
1
- {"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","_serverConfig","_userViteConfig","_serverConfig_ssr","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","arguments","length","_a","_b","include","exclude","needsInterop","esbuildOptions"],"sources":["../../src/config/mergeUserConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["mergeConfig","coerceToArray","uniq","mergeUserConfig","optimizeDeps","serverConfig","userViteConfig","_serverConfig","_userViteConfig","_serverConfig_ssr","css","ssr","noExternal","Array","isArray","Error","deepMergeOptimizeDeps","a","b","extraDepsOpt","avoidMergeExternal","arguments","length","_a","_b","excludeSet","Set","exclude","include","filter","dep","has","needsInterop"],"sources":["../../src/config/mergeUserConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { deepMergeOptimizeDeps } from "./mergeUserConfig";
3
+ describe("deepMergeOptimizeDeps", () => {
4
+ it("filters excluded deps from include list", () => {
5
+ const a = {
6
+ optimizeDeps: {
7
+ include: ["react", "react-native-reanimated", "lodash"],
8
+ exclude: []
9
+ }
10
+ };
11
+ deepMergeOptimizeDeps(a, {
12
+ optimizeDeps: {
13
+ exclude: ["react-native-reanimated"]
14
+ }
15
+ }), expect(a.optimizeDeps.include).toContain("react"), expect(a.optimizeDeps.include).toContain("lodash"), expect(a.optimizeDeps.include).not.toContain("react-native-reanimated"), expect(a.optimizeDeps.exclude).toContain("react-native-reanimated");
16
+ }), it("filters excluded deps from noExternal list", () => {
17
+ const a = {
18
+ optimizeDeps: {
19
+ include: ["react", "react-native-reanimated"]
20
+ },
21
+ noExternal: ["react", "react-native-reanimated"]
22
+ };
23
+ deepMergeOptimizeDeps(a, {
24
+ optimizeDeps: {
25
+ exclude: ["react-native-reanimated"]
26
+ }
27
+ }), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
28
+ }), it("filters excluded deps from needsInterop list", () => {
29
+ const a = {
30
+ optimizeDeps: {
31
+ include: [],
32
+ needsInterop: ["react", "react-native-reanimated"]
33
+ }
34
+ };
35
+ deepMergeOptimizeDeps(a, {
36
+ optimizeDeps: {
37
+ exclude: ["react-native-reanimated"]
38
+ }
39
+ }), expect(a.optimizeDeps.needsInterop).toContain("react"), expect(a.optimizeDeps.needsInterop).not.toContain("react-native-reanimated");
40
+ }), it("merges excludes from all sources", () => {
41
+ const a = {
42
+ optimizeDeps: {
43
+ exclude: ["a"]
44
+ }
45
+ };
46
+ deepMergeOptimizeDeps(a, {
47
+ optimizeDeps: {
48
+ exclude: ["b"]
49
+ }
50
+ }, {
51
+ include: [],
52
+ exclude: ["c"],
53
+ needsInterop: [],
54
+ esbuildOptions: { resolveExtensions: [] }
55
+ }), expect(a.optimizeDeps.exclude).toContain("a"), expect(a.optimizeDeps.exclude).toContain("b"), expect(a.optimizeDeps.exclude).toContain("c");
56
+ }), it("preserves noExternal: true when set", () => {
57
+ const a = {
58
+ optimizeDeps: {},
59
+ noExternal: !0
60
+ };
61
+ deepMergeOptimizeDeps(a, {
62
+ optimizeDeps: {
63
+ exclude: ["react-native-reanimated"]
64
+ }
65
+ }), expect(a.noExternal).toBe(!0);
66
+ }), it("handles RegExp in noExternal", () => {
67
+ const regex = /some-pattern/, a = {
68
+ optimizeDeps: {
69
+ include: ["react", "react-native-reanimated"]
70
+ },
71
+ noExternal: [regex, "react", "react-native-reanimated"]
72
+ };
73
+ deepMergeOptimizeDeps(a, {
74
+ optimizeDeps: {
75
+ exclude: ["react-native-reanimated"]
76
+ }
77
+ }), expect(a.noExternal).toContain(regex), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
78
+ });
79
+ });
80
+ //# sourceMappingURL=mergeUserConfig.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/config/mergeUserConfig.test.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,83 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { deepMergeOptimizeDeps } from "./mergeUserConfig.mjs";
3
+ describe("deepMergeOptimizeDeps", () => {
4
+ it("filters excluded deps from include list", () => {
5
+ const a = {
6
+ optimizeDeps: {
7
+ include: ["react", "react-native-reanimated", "lodash"],
8
+ exclude: []
9
+ }
10
+ };
11
+ deepMergeOptimizeDeps(a, {
12
+ optimizeDeps: {
13
+ exclude: ["react-native-reanimated"]
14
+ }
15
+ }), expect(a.optimizeDeps.include).toContain("react"), expect(a.optimizeDeps.include).toContain("lodash"), expect(a.optimizeDeps.include).not.toContain("react-native-reanimated"), expect(a.optimizeDeps.exclude).toContain("react-native-reanimated");
16
+ }), it("filters excluded deps from noExternal list", () => {
17
+ const a = {
18
+ optimizeDeps: {
19
+ include: ["react", "react-native-reanimated"]
20
+ },
21
+ noExternal: ["react", "react-native-reanimated"]
22
+ };
23
+ deepMergeOptimizeDeps(a, {
24
+ optimizeDeps: {
25
+ exclude: ["react-native-reanimated"]
26
+ }
27
+ }), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
28
+ }), it("filters excluded deps from needsInterop list", () => {
29
+ const a = {
30
+ optimizeDeps: {
31
+ include: [],
32
+ needsInterop: ["react", "react-native-reanimated"]
33
+ }
34
+ };
35
+ deepMergeOptimizeDeps(a, {
36
+ optimizeDeps: {
37
+ exclude: ["react-native-reanimated"]
38
+ }
39
+ }), expect(a.optimizeDeps.needsInterop).toContain("react"), expect(a.optimizeDeps.needsInterop).not.toContain("react-native-reanimated");
40
+ }), it("merges excludes from all sources", () => {
41
+ const a = {
42
+ optimizeDeps: {
43
+ exclude: ["a"]
44
+ }
45
+ };
46
+ deepMergeOptimizeDeps(a, {
47
+ optimizeDeps: {
48
+ exclude: ["b"]
49
+ }
50
+ }, {
51
+ include: [],
52
+ exclude: ["c"],
53
+ needsInterop: [],
54
+ esbuildOptions: {
55
+ resolveExtensions: []
56
+ }
57
+ }), expect(a.optimizeDeps.exclude).toContain("a"), expect(a.optimizeDeps.exclude).toContain("b"), expect(a.optimizeDeps.exclude).toContain("c");
58
+ }), it("preserves noExternal: true when set", () => {
59
+ const a = {
60
+ optimizeDeps: {},
61
+ noExternal: !0
62
+ };
63
+ deepMergeOptimizeDeps(a, {
64
+ optimizeDeps: {
65
+ exclude: ["react-native-reanimated"]
66
+ }
67
+ }), expect(a.noExternal).toBe(!0);
68
+ }), it("handles RegExp in noExternal", () => {
69
+ const regex = /some-pattern/,
70
+ a = {
71
+ optimizeDeps: {
72
+ include: ["react", "react-native-reanimated"]
73
+ },
74
+ noExternal: [regex, "react", "react-native-reanimated"]
75
+ };
76
+ deepMergeOptimizeDeps(a, {
77
+ optimizeDeps: {
78
+ exclude: ["react-native-reanimated"]
79
+ }
80
+ }), expect(a.noExternal).toContain(regex), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
81
+ });
82
+ });
83
+ //# sourceMappingURL=mergeUserConfig.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","deepMergeOptimizeDeps","a","optimizeDeps","include","exclude","toContain","not","noExternal","needsInterop","esbuildOptions","resolveExtensions","toBe","regex"],"sources":["../../src/config/mergeUserConfig.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { deepMergeOptimizeDeps } from "./mergeUserConfig.native.js";
3
+ describe("deepMergeOptimizeDeps", function () {
4
+ it("filters excluded deps from include list", function () {
5
+ var a = {
6
+ optimizeDeps: {
7
+ include: ["react", "react-native-reanimated", "lodash"],
8
+ exclude: []
9
+ }
10
+ },
11
+ b = {
12
+ optimizeDeps: {
13
+ exclude: ["react-native-reanimated"]
14
+ }
15
+ };
16
+ deepMergeOptimizeDeps(a, b), expect(a.optimizeDeps.include).toContain("react"), expect(a.optimizeDeps.include).toContain("lodash"), expect(a.optimizeDeps.include).not.toContain("react-native-reanimated"), expect(a.optimizeDeps.exclude).toContain("react-native-reanimated");
17
+ }), it("filters excluded deps from noExternal list", function () {
18
+ var a = {
19
+ optimizeDeps: {
20
+ include: ["react", "react-native-reanimated"]
21
+ },
22
+ noExternal: ["react", "react-native-reanimated"]
23
+ },
24
+ b = {
25
+ optimizeDeps: {
26
+ exclude: ["react-native-reanimated"]
27
+ }
28
+ };
29
+ deepMergeOptimizeDeps(a, b), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
30
+ }), it("filters excluded deps from needsInterop list", function () {
31
+ var a = {
32
+ optimizeDeps: {
33
+ include: [],
34
+ needsInterop: ["react", "react-native-reanimated"]
35
+ }
36
+ },
37
+ b = {
38
+ optimizeDeps: {
39
+ exclude: ["react-native-reanimated"]
40
+ }
41
+ };
42
+ deepMergeOptimizeDeps(a, b), expect(a.optimizeDeps.needsInterop).toContain("react"), expect(a.optimizeDeps.needsInterop).not.toContain("react-native-reanimated");
43
+ }), it("merges excludes from all sources", function () {
44
+ var a = {
45
+ optimizeDeps: {
46
+ exclude: ["a"]
47
+ }
48
+ },
49
+ b = {
50
+ optimizeDeps: {
51
+ exclude: ["b"]
52
+ }
53
+ },
54
+ extra = {
55
+ include: [],
56
+ exclude: ["c"],
57
+ needsInterop: [],
58
+ esbuildOptions: {
59
+ resolveExtensions: []
60
+ }
61
+ };
62
+ deepMergeOptimizeDeps(a, b, extra), expect(a.optimizeDeps.exclude).toContain("a"), expect(a.optimizeDeps.exclude).toContain("b"), expect(a.optimizeDeps.exclude).toContain("c");
63
+ }), it("preserves noExternal: true when set", function () {
64
+ var a = {
65
+ optimizeDeps: {},
66
+ noExternal: !0
67
+ },
68
+ b = {
69
+ optimizeDeps: {
70
+ exclude: ["react-native-reanimated"]
71
+ }
72
+ };
73
+ deepMergeOptimizeDeps(a, b), expect(a.noExternal).toBe(!0);
74
+ }), it("handles RegExp in noExternal", function () {
75
+ var regex = /some-pattern/,
76
+ a = {
77
+ optimizeDeps: {
78
+ include: ["react", "react-native-reanimated"]
79
+ },
80
+ noExternal: [regex, "react", "react-native-reanimated"]
81
+ },
82
+ b = {
83
+ optimizeDeps: {
84
+ exclude: ["react-native-reanimated"]
85
+ }
86
+ };
87
+ deepMergeOptimizeDeps(a, b), expect(a.noExternal).toContain(regex), expect(a.noExternal).toContain("react"), expect(a.noExternal).not.toContain("react-native-reanimated");
88
+ });
89
+ });
90
+ //# sourceMappingURL=mergeUserConfig.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","deepMergeOptimizeDeps","a","optimizeDeps","include","exclude","b","toContain","not","noExternal","needsInterop","extra","esbuildOptions","resolveExtensions"],"sources":["../../src/config/mergeUserConfig.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,qBAAA,QAA6B;AAEtCH,QAAA,CAAS,yBAAyB,YAAM;EACtCE,EAAA,CAAG,2CAA2C,YAAM;IAClD,IAAAE,CAAA,GAAM;QACJC,YAAA,EAAc;UACZC,OAAA,EAAS,CACT,OAAS,EACX,2BACF,SAOA;UALEC,OAAA;QAAc;MACuB;MACrCC,CAAA;QAGwBH,YAEjB;UAMXE,OAAG,GACK,yBAAI;QACM;MACgC;IAC9CJ,qBACa,CAAAC,CAAA,EAASI,CAAA,GAAAP,MAAA,CAAAG,CAAA,CAAAC,YAAyB,CAAAC,OAAA,EAAAG,SAAA,WAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAC,OAAA,EAAAG,SAAA,YAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAC,OAAA,EAAAI,GAAA,CAAAD,SAAA,6BAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAE,OAAA,EAAAE,SAAA;EAAA,EACjD,EAAAP,EAAA;IAOA,IAAAE,CAAA;QALEC,YAAA,EAAc;UACZC,OAAA,EAAS,CACX,SAKF,yBAAqB;QAKrB;QACEK,UAAA,GACE,SACA,yBAAwB;MAE5B;MAAAH,CAAA;QAOAH,YAAA;UALEE,OAAA,GACE,yBAAU;QAIY;MAI3B;IAGCJ,qBAAU,CAAAC,CAAA,EAAAI,CAAA,GAAAP,MAAA,CAAAG,CAAA,CAAAO,UAAA,EAAAF,SAAA,WAAAR,MAAA,CAAAG,CAAA,CAAAO,UAAA,EAAAD,GAAA,CAAAD,SAAA;EAAA,IACRP,EAAA,+CAAc;IAAA,IACZE,CAAA;QACFC,YAAA;UACFC,OAAA;UAaAM,YAAA,GAXE,SACE,yBAAa;QAEjB;MACc;MACZJ,CAAA;QACAH,YAAU,EAAG;UACbE,OAAA,GACA,yBAAkB;QAUtB;MACE;IAAUJ,qBACO,CAAAC,CAAA,EAAAI,CAAA,GAAAP,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAO,YAAA,EAAAH,SAAA,WAAAR,MAAA,CAAAG,CAAA,CAAAC,YAAA,CAAAO,YAAA,EAAAF,GAAA,CAAAD,SAAA;EAAA,IACfP,EAAA,mCAAY;IACd,IAAAE,CAAA;QAOAC,YAAA;UALEE,OAAA,GACE;QAIsB;MAG3B;MAEDC,CAAA,GAAG;QACDH,YAAc;UAEZE,OAAA,GACE;QAEF;MACF;MAAAM,KAAA;QAOAP,OAAA;QALEC,OAAA,GACE,IACF;QAGwBK,YAGjB;QAGVE,cAAA;UACFC,iBAAA","ignoreList":[]}
@@ -13,12 +13,14 @@ function autoDepOptimizePlugin(props) {
13
13
  return {
14
14
  name,
15
15
  enforce: "pre",
16
- async config(_cfg, env) {
16
+ async config(cfg, env) {
17
17
  debug?.("Config hook called");
18
- const depsConfig = globalThis.__oneOptions?.deps, exclude = depsConfig ? Object.entries(depsConfig).filter(([key, value]) => value === !1).map(([k]) => k) : [], userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude], finalConfig = await getScannedOptimizeDepsConfig({
18
+ const depsConfig = globalThis.__oneOptions?.deps, exclude = depsConfig ? Object.entries(depsConfig).filter(([_, value]) => value === !1).map(([k]) => k) : [], userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude], userViteExcludes = cfg.optimizeDeps?.exclude || [], userSsrExcludes = cfg.ssr?.optimizeDeps?.exclude || [], finalConfig = await getScannedOptimizeDepsConfig({
19
19
  ...props,
20
20
  mode: env.mode,
21
- exclude: [...exclude, ...userExcludes].filter(Boolean)
21
+ exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(
22
+ Boolean
23
+ )
22
24
  });
23
25
  return debugDetails?.(
24
26
  `Final auto-dep-optimize config: ${JSON.stringify(finalConfig, null, 2)}
@@ -30,13 +32,15 @@ from props: ${JSON.stringify(props)}`
30
32
  const getSSRExternalsCachePath = (root) => path.join(getCacheDir(root), "deps-to-pre-bundle-for-ssr-cache.json");
31
33
  async function getScannedOptimizeDepsConfig(props) {
32
34
  const result = await findDepsToOptimize(props);
33
- return props.onScannedDeps?.(result), {
35
+ props.onScannedDeps?.(result);
36
+ const excludeStrings = (Array.isArray(props.exclude) ? props.exclude : [props.exclude]).filter((e) => typeof e == "string"), excludeSet = new Set(excludeStrings), filteredDeps = result.prebundleDeps.filter((dep) => !excludeSet.has(dep));
37
+ return {
34
38
  ssr: {
35
39
  optimizeDeps: {
36
- include: result.prebundleDeps,
40
+ include: filteredDeps,
37
41
  exclude: EXCLUDE_LIST
38
42
  },
39
- noExternal: result.prebundleDeps
43
+ noExternal: filteredDeps
40
44
  }
41
45
  };
42
46
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugins/autoDepOptimizePlugin.ts"],
4
- "mappings": "AAAA,SAAS,sBAAsB;AAC/B,OAAO,aAAa;AACpB,OAAO,UAAU;AACjB,SAAS,oBAAiC;AAE1C;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,aAAa,kBAAkB;AACxC,SAAS,mBAAmB;AAE5B,MAAM,OAAO,0BAEP,EAAE,OAAO,aAAa,IAAI,eAAe,IAAI;AAO5C,SAAS,sBAAsB,OAAgC;AACpE,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IAET,MAAM,OAAO,MAAM,KAAK;AACtB,cAAQ,oBAAoB;AAI5B,YAAM,aADc,WAAW,cACC,MAE1B,UAAU,aACZ,OAAO,QAAQ,UAAU,EACtB,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,UAAU,EAAK,EACxC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IACjB,CAAC,GAEC,eAAe,MAAM,QAAQ,MAAM,OAAO,IAAI,MAAM,UAAU,CAAC,MAAM,OAAO,GAE5E,cAAc,MAAM,6BAA6B;AAAA,QACrD,GAAG;AAAA,QACH,MAAM,IAAI;AAAA,QACV,SAAS,CAAC,GAAG,SAAS,GAAG,YAAY,EAAE,OAAO,OAAO;AAAA,MACvD,CAAC;AAED;AAAA,QACE,mCAAmC,KAAK,UAAU,aAAa,MAAM,CAAC,CAAC;AAAA,cAAiB,KAAK,UAAU,KAAK,CAAC;AAAA,MAC/G,GAEO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,2BAA2B,CAAC,SAChC,KAAK,KAAK,YAAY,IAAI,GAAG,uCAAuC;AAK7E,eAAsB,6BAA6B,OAA8B;AAC/E,QAAM,SAAS,MAAM,mBAAmB,KAAK;AAE7C,eAAM,gBAAgB,MAAM,GAErB;AAAA,IACL,KAAK;AAAA,MACH,cAAc;AAAA,QACZ,SAAS,OAAO;AAAA,QAChB,SAAS;AAAA,MACX;AAAA,MACA,YAAY,OAAO;AAAA,IACrB;AAAA,EACF;AACF;AAEA,IAAI,kBAAyC;AAE7C,eAAsB,mBAAmB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA0B;AACxB,QAAM,gBAAgB,yBAAyB,IAAI,GAC7C,YAAY,QAAQ,KAAK,IAAI,IAAI,GAGjC,UAAU,SAAS,cAGnB,eAAe,SAAS;AAE9B,MAAI,gBAAgB;AAClB,WAAO;AAGT,QAAM,WAAW,MAAM,WAAW,MAAM;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,GAEK,eAAe,WAAW,MAAM,YAAY,QAAQ,IAAI;AAE9D,MAAI;AAEJ,MAAI,gBAAgB,CAAC;AACnB,QAAI;AACF,YAAM;AAAA,QACJ,cAAc;AAAA,QACd,uBAAuB;AAAA,MACzB,IAAI,MAAM,QAAQ,SAAS,aAAa;AAExC,MACE,iBAAiB,sBACf,yBACF,mBAAmB,0BAEnB,QAAQ,uBACR,QAAQ,kCAAkC,aAAa,EAAE;AAAA,IAE7D,SAAS,KAAK;AACZ,cAAQ,GAAG,GAAG,EAAE;AAAA,IAClB;AAGF,QAAM,SAAS,aAAa,SAAS,OAAO;AAE5C,SAAK,UACH,QAAQ,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,OAAO,CAAC,GAE/D,iBACF,kBAAkB,QAGf,WACE,QAAQ,WAAW,eAAe;AAAA,IACrC;AAAA,IACA,uBAAuB;AAAA,EACzB,CAAC,IAIL,QAAQ,yBAAyB,KAAK,IAAI,IAAI,SAAS,IAAI,GAC3D;AAAA,IACE,GAAG,MAAM,cAAc,MAAM,2DAC1B,eACG,KACA,uCAAuC,MAAM,SAAS;AAAA,EAC9D,GAEA;AAAA,IACE,8CAA8C,MAAM,cAAc,KAAK,IAAI,CAAC;AAAA,EAC9E,GAEO;AACT;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -14,15 +14,17 @@ function autoDepOptimizePlugin(props) {
14
14
  return {
15
15
  name,
16
16
  enforce: "pre",
17
- async config(_cfg, env) {
17
+ async config(cfg, env) {
18
18
  debug?.("Config hook called");
19
19
  const depsConfig = globalThis.__oneOptions?.deps,
20
- exclude = depsConfig ? Object.entries(depsConfig).filter(([key, value]) => value === !1).map(([k]) => k) : [],
20
+ exclude = depsConfig ? Object.entries(depsConfig).filter(([_, value]) => value === !1).map(([k]) => k) : [],
21
21
  userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude],
22
+ userViteExcludes = cfg.optimizeDeps?.exclude || [],
23
+ userSsrExcludes = cfg.ssr?.optimizeDeps?.exclude || [],
22
24
  finalConfig = await getScannedOptimizeDepsConfig({
23
25
  ...props,
24
26
  mode: env.mode,
25
- exclude: [...exclude, ...userExcludes].filter(Boolean)
27
+ exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(Boolean)
26
28
  });
27
29
  return debugDetails?.(`Final auto-dep-optimize config: ${JSON.stringify(finalConfig, null, 2)}
28
30
  from props: ${JSON.stringify(props)}`), finalConfig;
@@ -32,13 +34,17 @@ from props: ${JSON.stringify(props)}`), finalConfig;
32
34
  const getSSRExternalsCachePath = root => path.join(getCacheDir(root), "deps-to-pre-bundle-for-ssr-cache.json");
33
35
  async function getScannedOptimizeDepsConfig(props) {
34
36
  const result = await findDepsToOptimize(props);
35
- return props.onScannedDeps?.(result), {
37
+ props.onScannedDeps?.(result);
38
+ const excludeStrings = (Array.isArray(props.exclude) ? props.exclude : [props.exclude]).filter(e => typeof e == "string"),
39
+ excludeSet = new Set(excludeStrings),
40
+ filteredDeps = result.prebundleDeps.filter(dep => !excludeSet.has(dep));
41
+ return {
36
42
  ssr: {
37
43
  optimizeDeps: {
38
- include: result.prebundleDeps,
44
+ include: filteredDeps,
39
45
  exclude: EXCLUDE_LIST
40
46
  },
41
- noExternal: result.prebundleDeps
47
+ noExternal: filteredDeps
42
48
  }
43
49
  };
44
50
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","_cfg","env","depsConfig","globalThis","__oneOptions","deps","exclude","Object","entries","filter","key","value","map","k","userExcludes","Array","isArray","finalConfig","getScannedOptimizeDepsConfig","mode","Boolean","JSON","stringify","getSSRExternalsCachePath","root","join","result","findDepsToOptimize","onScannedDeps","ssr","optimizeDeps","include","prebundleDeps","noExternal","sessionCacheVal","cacheFilePath","startedAt","Date","now","noCache","sessionCache","lockFile","lockFileHash","cachedLockFileHash","depsToPreBundleForSsr","cachedDepsToPreBundle","readJSON","err","outputJSON","length","namespace"],"sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","cfg","env","depsConfig","globalThis","__oneOptions","deps","exclude","Object","entries","filter","_","value","map","k","userExcludes","Array","isArray","userViteExcludes","optimizeDeps","userSsrExcludes","ssr","finalConfig","getScannedOptimizeDepsConfig","mode","Boolean","JSON","stringify","getSSRExternalsCachePath","root","join","result","findDepsToOptimize","onScannedDeps","excludeStrings","e","excludeSet","Set","filteredDeps","prebundleDeps","dep","has","include","noExternal","sessionCacheVal","cacheFilePath","startedAt","Date","now","noCache","sessionCache","lockFile","lockFileHash","cachedLockFileHash","depsToPreBundleForSsr","cachedDepsToPreBundle","readJSON","err","outputJSON","length","namespace"],"sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -14,22 +14,25 @@ function autoDepOptimizePlugin(props) {
14
14
  return {
15
15
  name,
16
16
  enforce: "pre",
17
- async config(_cfg, env) {
17
+ async config(cfg, env) {
18
+ var _cfg_optimizeDeps, _cfg_ssr_optimizeDeps, _cfg_ssr;
18
19
  debug?.("Config hook called");
19
20
  var userOptions = globalThis.__oneOptions,
20
21
  depsConfig = userOptions?.deps,
21
22
  exclude = depsConfig ? Object.entries(depsConfig).filter(function (param) {
22
- var [key, value] = param;
23
+ var [_, value] = param;
23
24
  return value === !1;
24
25
  }).map(function (param) {
25
26
  var [k] = param;
26
27
  return k;
27
28
  }) : [],
28
29
  userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude],
30
+ userViteExcludes = ((_cfg_optimizeDeps = cfg.optimizeDeps) === null || _cfg_optimizeDeps === void 0 ? void 0 : _cfg_optimizeDeps.exclude) || [],
31
+ userSsrExcludes = ((_cfg_ssr = cfg.ssr) === null || _cfg_ssr === void 0 || (_cfg_ssr_optimizeDeps = _cfg_ssr.optimizeDeps) === null || _cfg_ssr_optimizeDeps === void 0 ? void 0 : _cfg_ssr_optimizeDeps.exclude) || [],
29
32
  finalConfig = await getScannedOptimizeDepsConfig({
30
33
  ...props,
31
34
  mode: env.mode,
32
- exclude: [...exclude, ...userExcludes].filter(Boolean)
35
+ exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(Boolean)
33
36
  });
34
37
  return debugDetails?.(`Final auto-dep-optimize config: ${JSON.stringify(finalConfig, null, 2)}
35
38
  from props: ${JSON.stringify(props)}`), finalConfig;
@@ -42,13 +45,22 @@ var getSSRExternalsCachePath = function (root) {
42
45
  async function getScannedOptimizeDepsConfig(props) {
43
46
  var _props_onScannedDeps,
44
47
  result = await findDepsToOptimize(props);
45
- return (_props_onScannedDeps = props.onScannedDeps) === null || _props_onScannedDeps === void 0 || _props_onScannedDeps.call(props, result), {
48
+ (_props_onScannedDeps = props.onScannedDeps) === null || _props_onScannedDeps === void 0 || _props_onScannedDeps.call(props, result);
49
+ var excludeArray = Array.isArray(props.exclude) ? props.exclude : [props.exclude],
50
+ excludeStrings = excludeArray.filter(function (e) {
51
+ return typeof e == "string";
52
+ }),
53
+ excludeSet = new Set(excludeStrings),
54
+ filteredDeps = result.prebundleDeps.filter(function (dep) {
55
+ return !excludeSet.has(dep);
56
+ });
57
+ return {
46
58
  ssr: {
47
59
  optimizeDeps: {
48
- include: result.prebundleDeps,
60
+ include: filteredDeps,
49
61
  exclude: EXCLUDE_LIST
50
62
  },
51
- noExternal: result.prebundleDeps
63
+ noExternal: filteredDeps
52
64
  }
53
65
  };
54
66
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","_cfg","env","userOptions","globalThis","__oneOptions","depsConfig","deps","exclude","Object","entries","filter","param","key","value","map","k","userExcludes","Array","isArray","finalConfig","getScannedOptimizeDepsConfig","mode","Boolean","JSON","stringify","getSSRExternalsCachePath","root","join","_props_onScannedDeps","result","findDepsToOptimize","onScannedDeps","call","ssr","optimizeDeps","include","prebundleDeps","noExternal","sessionCacheVal","cacheFilePath","startedAt","Date","now","noCache","sessionCache","lockFile","lockFileHash","cachedLockFileHash","depsToPreBundleForSsr","cachedDepsToPreBundle","readJSON","err","outputJSON","length","namespace"],"sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createDebugger","FSExtra","path","createFilter","EXCLUDE_LIST","scanDepsToOptimize","getFileHash","lookupFile","getCacheDir","name","debug","debugDetails","autoDepOptimizePlugin","props","enforce","config","cfg","env","_cfg_optimizeDeps","_cfg_ssr_optimizeDeps","_cfg_ssr","userOptions","globalThis","__oneOptions","depsConfig","deps","exclude","Object","entries","filter","param","_","value","map","k","userExcludes","Array","isArray","userViteExcludes","optimizeDeps","userSsrExcludes","ssr","finalConfig","getScannedOptimizeDepsConfig","mode","Boolean","JSON","stringify","getSSRExternalsCachePath","root","join","_props_onScannedDeps","result","findDepsToOptimize","onScannedDeps","call","excludeArray","excludeStrings","e","excludeSet","Set","filteredDeps","prebundleDeps","dep","has","include","noExternal","sessionCacheVal","cacheFilePath","startedAt","Date","now","noCache","sessionCache","lockFile","lockFileHash","cachedLockFileHash","depsToPreBundleForSsr","cachedDepsToPreBundle","readJSON","err","outputJSON"],"sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,cAAA,QAAsB;AAC/B,OAAOC,OAAA,MAAa;AACpB,OAAOC,IAAA,MAAU;AACjB,SAASC,YAAA,QAAiC;AAE1C,SAAAC,YAAA,EAAAC,kBAAA;AAAA,SACEC,WAAA,EAAAC,UAAA;AAAA,SAEAC,WAAA;AAAA,IAAAC,IACK;EAAA;IAAAC,KAAA;IAAAC;EAAA,IAAAX,cAAA,CAAAS,IAAA;AACP,SAASG,qBAAaA,CAAAC,KAAA;EACtB,OAAS;IAETJ,IAAM;IASCK,OAAS;IACd,MAAOC,OAAAC,GAAA,EAAAC,GAAA;MACL,IAAAC,iBAAA,EAAAC,qBAAA,EAAAC,QAAA;MACAV,KAAA,GAAS;MAET,IAAMW,WAAO,GAAKC,UAAK,CAAAC,YAAA;QAAAC,UAAA,GAAAH,WAAA,EAAAI,IAAA;QAAAC,OAAA,GAAAF,UAAA,GAAAG,MAAA,CAAAC,OAAA,CAAAJ,UAAA,EAAAK,MAAA,WAAAC,KAAA;UACrB,KAAAC,CAAQ,EAAAC,KAAA,IAAAF,KAAA;UAIR,OAAME,KAAA,KADc;QAemC,EACrD,CAAAC,GAAG,WAAAH,KAAA;UACH,KAAAI,CAAM,IAAIJ,KAAA;UACV,OAAAI,CAAA;QAAgF,KAC9E;QAAAC,YAAA,GAAAC,KAAA,CAAAC,OAAA,CAAAxB,KAAA,CAAAa,OAAA,IAAAb,KAAA,CAAAa,OAAA,IACFb,KAAA,CAAAa,OAAA,CACD;QAAAY,gBAAA,KAAApB,iBAAA,GAAAF,GAAA,CAAAuB,YAAA,cAAArB,iBAAA,uBAAAA,iBAAA,CAAAQ,OAAA;QAAAc,eAAA,KAAApB,QAAA,GAAAJ,GAAA,CAAAyB,GAAA,cAAArB,QAAA,gBAAAD,qBAAA,GAAAC,QAAA,CAAAmB,YAAA,cAAApB,qBAAA,uBAAAA,qBAAA,CAAAO,OAAA;QAAAgB,WAAA,SAAAC,4BAAA;UAED,GAAA9B,KAAA;UACE+B,IAAA,EAAA3B,GAAA,CAAA2B,IAAA;UAAuElB,OAAiB,GAGnF,GAAAA,OAAA,EACT,GAAAS,YAAA,EACF,GAAAG,gBAAA,EACF,GAAAE,eAAA,CAEa,CAAAX,MAAA,CAAAgB,OAAA;QAMb;MACE,OAAMlC,YAAe,sCAAwBmC,IAAA,CAAAC,SAAA,CAAAL,WAAA;AAE7C,cAAMI,IAAA,CAAAC,SAAgB,CAAAlC,KAAM,MAAA6B,WAAA;IAK5B;EAKA;AAAO;AACA,IAAAM,wBACW,YAAAA,CAAAC,IAAA;EAAA,OACZ/C,IAAA,CAAAgD,IAAS,CAAA1C,WAAA,CAAAyC,IAAA;AAAA;AACA,eACXN,6BAAA9B,KAAA;EAAA,IACAsC,oBAAY;IAAAC,MAAA,SAAAC,kBAAA,CAAAxC,KAAA;EAAA,CAAAsC,oBACd,GAAAtC,KAAA,CAAAyC,aAAA,cAAAH,oBAAA,eAAAA,oBAAA,CAAAI,IAAA,CAAA1C,KAAA,EAAAuC,MAAA;EACF,IAAAI,YAAA,GAAApB,KAAA,CAAAC,OAAA,CAAAxB,KAAA,CAAAa,OAAA,IAAAb,KAAA,CAAAa,OAAA,IACFb,KAAA,CAAAa,OAAA,CAEA;IAAI+B,cAAA,GAAyCD,YAAA,CAAA3B,MAAA,WAAA6B,CAAA;MAE7C,cAAsBA,CAAA;IACpB;IAAAC,UAAA,OAAAC,GAAA,CAAAH,cAAA;IAAAI,YAAA,GAAAT,MAAA,CAAAU,aAAA,CAAAjC,MAAA,WAAAkC,GAAA;MACA,QAAAJ,UAAA,CAAAK,GAAA,CAAAD,GAAA;IACA;EACA;IACwBtB,GAAA;MACxBF,YAAM;QASF0B,OAAA,EAAAJ,YAAgB;QAClBnC,OAAO,EAAAtB;MAGT;MACE8D,UAAA,EAAAL;IACA;EAAA;AACA;AACA,IACDM,eAEK,GAAe;AAErB,eAAId,mBAAAvB,KAAA;EAEJ,IAAI;MAAAmB,IAAA;MAAAL,IAAA;MAAAlB,OAAiB;MAAAuC;IAAA,IAAAnC,KAAA;IAAAsC,aAAA,GAAApB,wBAAA,CAAAC,IAAA;IAAAoB,SAAA,GAAA3D,KAAA,GAAA4D,IAAA,CAAAC,GAAA;IAAAC,OAAA,GAAA5B,IAAA;IAAA6B,YAAA,GAAA7B,IAAA;EACnB,IAAA6B,YAAI,IAAAN,eAAA,EACF,OAAAA,eAAM;EAAA,IAAAO,QACJ,SAAcnE,UAAA,CAAA0C,IAAA,cACd,EAAuB,mBACf,EAEV,gBACE,EAOJ,WAAS,CACP;IAAA0B,YAAW,GAAGD,QAAE,SAAApE,WAAA,CAAAoE,QAAA;IAAA1C,KAAA;EAAA,IAClB2C,YAAA,KAAAH,OAAA,EAGF,IAAM;IAEN,IAAK;MAAAG,YACH,EAAAC,kBAAc;MAAAC,qBAA0B,EAAAC;IAEpC,UAAA7E,OACF,CAAA8E,QAAA,CAAAX,aAAkB,CAGf;IAEDO,YAAA,KAAAC,kBAAA,IAAAE,qBAAA,uBAAAA,qBAAA,KAAA9C,KAAA,GAAA8C,qBAAA,EAAApE,KAAA,qCAAA0D,aAAA;EACA,SAAAY,GAAA;IACDtE,KAIL,MAAQsE,GAAA;EAEN;EAIF,IAEAnD,MAAA,GAAA1B,YAAA,CAAA8D,OAAA,EAAAvC,OAAA;EAAA,OACEM,KAAA,KAAAA,KAAA,SAAA3B,kBAA8C,IAAA4C,IAAM,eAAc,EAAK;IACzEpB;EAGF,IAAA4C,YAAA,KAAAN,eAAA,GAAAnC,KAAA,GAAAwC,OAAA,IAAAvE,OAAA,CAAAgF,UAAA,CAAAb,aAAA","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { describe, expect, it } from "vitest";
2
+ describe("getScannedOptimizeDepsConfig", () => {
3
+ it("filters excluded deps from scanned results", async () => {
4
+ const mockResult = {
5
+ prebundleDeps: ["react", "react-native-reanimated", "lodash"],
6
+ hasReanimated: !0,
7
+ hasNativewind: !1
8
+ }, excludeStrings = ["react-native-reanimated"].filter((e) => typeof e == "string"), excludeSet = new Set(excludeStrings), filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep));
9
+ expect(filteredDeps).toContain("react"), expect(filteredDeps).toContain("lodash"), expect(filteredDeps).not.toContain("react-native-reanimated");
10
+ }), it("handles RegExp exclude patterns (ignores them for dep name filtering)", async () => {
11
+ const mockResult = {
12
+ prebundleDeps: ["react", "react-native-reanimated"],
13
+ hasReanimated: !0,
14
+ hasNativewind: !1
15
+ }, excludeStrings = [/some-pattern/, "react-native-reanimated"].filter((e) => typeof e == "string"), excludeSet = new Set(excludeStrings), filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep));
16
+ expect(filteredDeps).toContain("react"), expect(filteredDeps).not.toContain("react-native-reanimated");
17
+ });
18
+ });
19
+ //# sourceMappingURL=autoDepOptimizePlugin.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugins/autoDepOptimizePlugin.test.ts"],
4
+ "mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAGrC,SAAS,gCAAgC,MAAM;AAC7C,KAAG,8CAA8C,YAAY;AAE3D,UAAM,aAAa;AAAA,MACjB,eAAe,CAAC,SAAS,2BAA2B,QAAQ;AAAA,MAC5D,eAAe;AAAA,MACf,eAAe;AAAA,IACjB,GAIM,iBADe,CAAC,yBAAyB,EACX,OAAO,CAAC,MAAmB,OAAO,KAAM,QAAQ,GAC9E,aAAa,IAAI,IAAI,cAAc,GAEnC,eAAe,WAAW,cAAc,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AAElF,WAAO,YAAY,EAAE,UAAU,OAAO,GACtC,OAAO,YAAY,EAAE,UAAU,QAAQ,GACvC,OAAO,YAAY,EAAE,IAAI,UAAU,yBAAyB;AAAA,EAC9D,CAAC,GAED,GAAG,yEAAyE,YAAY;AACtF,UAAM,aAAa;AAAA,MACjB,eAAe,CAAC,SAAS,yBAAyB;AAAA,MAClD,eAAe;AAAA,MACf,eAAe;AAAA,IACjB,GAIM,iBADoC,CAAC,gBAAgB,yBAAyB,EAChD,OAAO,CAAC,MAAmB,OAAO,KAAM,QAAQ,GAC9E,aAAa,IAAI,IAAI,cAAc,GAEnC,eAAe,WAAW,cAAc,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;AAElF,WAAO,YAAY,EAAE,UAAU,OAAO,GACtC,OAAO,YAAY,EAAE,IAAI,UAAU,yBAAyB;AAAA,EAC9D,CAAC;AACH,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,25 @@
1
+ import { describe, expect, it } from "vitest";
2
+ describe("getScannedOptimizeDepsConfig", () => {
3
+ it("filters excluded deps from scanned results", async () => {
4
+ const mockResult = {
5
+ prebundleDeps: ["react", "react-native-reanimated", "lodash"],
6
+ hasReanimated: !0,
7
+ hasNativewind: !1
8
+ },
9
+ excludeStrings = ["react-native-reanimated"].filter(e => typeof e == "string"),
10
+ excludeSet = new Set(excludeStrings),
11
+ filteredDeps = mockResult.prebundleDeps.filter(dep => !excludeSet.has(dep));
12
+ expect(filteredDeps).toContain("react"), expect(filteredDeps).toContain("lodash"), expect(filteredDeps).not.toContain("react-native-reanimated");
13
+ }), it("handles RegExp exclude patterns (ignores them for dep name filtering)", async () => {
14
+ const mockResult = {
15
+ prebundleDeps: ["react", "react-native-reanimated"],
16
+ hasReanimated: !0,
17
+ hasNativewind: !1
18
+ },
19
+ excludeStrings = [/some-pattern/, "react-native-reanimated"].filter(e => typeof e == "string"),
20
+ excludeSet = new Set(excludeStrings),
21
+ filteredDeps = mockResult.prebundleDeps.filter(dep => !excludeSet.has(dep));
22
+ expect(filteredDeps).toContain("react"), expect(filteredDeps).not.toContain("react-native-reanimated");
23
+ });
24
+ });
25
+ //# sourceMappingURL=autoDepOptimizePlugin.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","mockResult","prebundleDeps","hasReanimated","hasNativewind","excludeStrings","filter","e","excludeSet","Set","filteredDeps","dep","has","toContain","not"],"sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAGrCF,QAAA,CAAS,gCAAgC,MAAM;EAC7CE,EAAA,CAAG,8CAA8C,YAAY;IAE3D,MAAMC,UAAA,GAAa;QACjBC,aAAA,EAAe,CAAC,SAAS,2BAA2B,QAAQ;QAC5DC,aAAA,EAAe;QACfC,aAAA,EAAe;MACjB;MAIMC,cAAA,GADe,CAAC,yBAAyB,EACXC,MAAA,CAAQC,CAAA,IAAmB,OAAOA,CAAA,IAAM,QAAQ;MAC9EC,UAAA,GAAa,IAAIC,GAAA,CAAIJ,cAAc;MAEnCK,YAAA,GAAeT,UAAA,CAAWC,aAAA,CAAcI,MAAA,CAAQK,GAAA,IAAQ,CAACH,UAAA,CAAWI,GAAA,CAAID,GAAG,CAAC;IAElFZ,MAAA,CAAOW,YAAY,EAAEG,SAAA,CAAU,OAAO,GACtCd,MAAA,CAAOW,YAAY,EAAEG,SAAA,CAAU,QAAQ,GACvCd,MAAA,CAAOW,YAAY,EAAEI,GAAA,CAAID,SAAA,CAAU,yBAAyB;EAC9D,CAAC,GAEDb,EAAA,CAAG,yEAAyE,YAAY;IACtF,MAAMC,UAAA,GAAa;QACjBC,aAAA,EAAe,CAAC,SAAS,yBAAyB;QAClDC,aAAA,EAAe;QACfC,aAAA,EAAe;MACjB;MAIMC,cAAA,GADoC,CAAC,gBAAgB,yBAAyB,EAChDC,MAAA,CAAQC,CAAA,IAAmB,OAAOA,CAAA,IAAM,QAAQ;MAC9EC,UAAA,GAAa,IAAIC,GAAA,CAAIJ,cAAc;MAEnCK,YAAA,GAAeT,UAAA,CAAWC,aAAA,CAAcI,MAAA,CAAQK,GAAA,IAAQ,CAACH,UAAA,CAAWI,GAAA,CAAID,GAAG,CAAC;IAElFZ,MAAA,CAAOW,YAAY,EAAEG,SAAA,CAAU,OAAO,GACtCd,MAAA,CAAOW,YAAY,EAAEI,GAAA,CAAID,SAAA,CAAU,yBAAyB;EAC9D,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import { describe, expect, it } from "vitest";
2
+ describe("getScannedOptimizeDepsConfig", function () {
3
+ it("filters excluded deps from scanned results", async function () {
4
+ var mockResult = {
5
+ prebundleDeps: ["react", "react-native-reanimated", "lodash"],
6
+ hasReanimated: !0,
7
+ hasNativewind: !1
8
+ },
9
+ excludeArray = ["react-native-reanimated"],
10
+ excludeStrings = excludeArray.filter(function (e) {
11
+ return typeof e == "string";
12
+ }),
13
+ excludeSet = new Set(excludeStrings),
14
+ filteredDeps = mockResult.prebundleDeps.filter(function (dep) {
15
+ return !excludeSet.has(dep);
16
+ });
17
+ expect(filteredDeps).toContain("react"), expect(filteredDeps).toContain("lodash"), expect(filteredDeps).not.toContain("react-native-reanimated");
18
+ }), it("handles RegExp exclude patterns (ignores them for dep name filtering)", async function () {
19
+ var mockResult = {
20
+ prebundleDeps: ["react", "react-native-reanimated"],
21
+ hasReanimated: !0,
22
+ hasNativewind: !1
23
+ },
24
+ excludeArray = [/some-pattern/, "react-native-reanimated"],
25
+ excludeStrings = excludeArray.filter(function (e) {
26
+ return typeof e == "string";
27
+ }),
28
+ excludeSet = new Set(excludeStrings),
29
+ filteredDeps = mockResult.prebundleDeps.filter(function (dep) {
30
+ return !excludeSet.has(dep);
31
+ });
32
+ expect(filteredDeps).toContain("react"), expect(filteredDeps).not.toContain("react-native-reanimated");
33
+ });
34
+ });
35
+ //# sourceMappingURL=autoDepOptimizePlugin.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","mockResult","prebundleDeps","hasReanimated","hasNativewind","excludeArray","excludeStrings","filter","e","excludeSet","Set","filteredDeps","dep","has"],"sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAGrCF,QAAA,CAAS,gCAAgC,YAAM;EAC7CE,EAAA,CAAG,8CAA8C,kBAAY;IAE3D,IAAAC,UAAM;QACJC,aAAA,EAAe,CACf,SACA,yBAAe,EAKX,SAKN;QAKFC,aAAG;QACDC,aAAM;MAAa;MACjBC,YAAA,GAAgB,CAChB,yBAAe;MACfC,cAAe,GAAAD,YAAA,CAAAE,MAAA,WAAAC,CAAA;QACjB,OAIM,OAAAA,CAAA,IADqC;MAM3C;MAAAC,UAAO,OAAcC,GAAA,CAAAJ,cAAiB;MACtCK,YAAO,GAAAV,UAAkB,CAAAC,aAAU,CAAAK,MAAA,WAAAK,GAAyB;QAC7D,QAAAH,UAAA,CAAAI,GAAA,CAAAD,GAAA;MACF","ignoreList":[]}
@@ -11,7 +11,7 @@ function defaultDepOptimizePlugin() {
11
11
  `[${pluginName}]: Unknown env.command "${env.command}". This plugin should only be used in "build" or "serve" modes.`
12
12
  );
13
13
  const { optimizeDeps } = getOptimizeDeps(env.command);
14
- config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, {}, optimizeDeps);
14
+ config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, config, optimizeDeps);
15
15
  }
16
16
  };
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugins/defaultDepOptimizePlugin.ts"],
4
- "mappings": "AAEA,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AAEtC,MAAM,aAAa;AAUZ,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO,QAAQ,KAAK;AAClB,UAAI,IAAI,YAAY,WAAW,IAAI,YAAY;AAC7C,cAAM,IAAI;AAAA,UACR,IAAI,UAAU,2BAA2B,IAAI,OAAO;AAAA,QACtD;AAGF,YAAM,EAAE,aAAa,IAAI,gBAAgB,IAAI,OAAO;AAUpD,MAAK,OAAO,QAAK,OAAO,MAAM,CAAC,IAC/B,sBAAsB,OAAO,KAAK,CAAC,GAAG,YAAY;AAAA,IACpD;AAAA,EACF;AACF;",
4
+ "mappings": "AAEA,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AAEtC,MAAM,aAAa;AAUZ,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO,QAAQ,KAAK;AAClB,UAAI,IAAI,YAAY,WAAW,IAAI,YAAY;AAC7C,cAAM,IAAI;AAAA,UACR,IAAI,UAAU,2BAA2B,IAAI,OAAO;AAAA,QACtD;AAGF,YAAM,EAAE,aAAa,IAAI,gBAAgB,IAAI,OAAO;AAUpD,MAAK,OAAO,QAAK,OAAO,MAAM,CAAC,IAE/B,sBAAsB,OAAO,KAAK,QAAQ,YAAY;AAAA,IACxD;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -10,7 +10,7 @@ function defaultDepOptimizePlugin() {
10
10
  const {
11
11
  optimizeDeps
12
12
  } = getOptimizeDeps(env.command);
13
- config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, {}, optimizeDeps);
13
+ config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, config, optimizeDeps);
14
14
  }
15
15
  };
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,MAAMC,UAAA,GAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,CACR,IAAIP,UAAU,2BAA2BK,GAAA,CAAIC,OAAO,iEACtD;MAGF,MAAM;QAAEE;MAAa,IAAIV,eAAA,CAAgBO,GAAA,CAAIC,OAAO;MAU/CF,MAAA,CAAOK,GAAA,KAAKL,MAAA,CAAOK,GAAA,GAAM,CAAC,IAC/BV,qBAAA,CAAsBK,MAAA,CAAOK,GAAA,EAAK,CAAC,GAAGD,YAAY;IACpD;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,MAAMC,UAAA,GAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,CACR,IAAIP,UAAU,2BAA2BK,GAAA,CAAIC,OAAO,iEACtD;MAGF,MAAM;QAAEE;MAAa,IAAIV,eAAA,CAAgBO,GAAA,CAAIC,OAAO;MAU/CF,MAAA,CAAOK,GAAA,KAAKL,MAAA,CAAOK,GAAA,GAAM,CAAC,IAE/BV,qBAAA,CAAsBK,MAAA,CAAOK,GAAA,EAAKL,MAAA,EAAQI,YAAY;IACxD;EACF;AACF","ignoreList":[]}
@@ -10,7 +10,7 @@ function defaultDepOptimizePlugin() {
10
10
  var {
11
11
  optimizeDeps
12
12
  } = getOptimizeDeps(env.command);
13
- config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, {}, optimizeDeps);
13
+ config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, config, optimizeDeps);
14
14
  }
15
15
  };
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,IAAAC,UAAM,8BAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,KAAAP,UAAA,2BAAAK,GAAA,CAAAC,OAAA;MAAA,IACR;QAAAE;MAAc,IAAAV,eAAA,CAAAO,GAAA,CAAAC,OAA+B;MAAOF,MACtD,CAAAK,GAAA,KAAAL,MAAA,CAAAK,GAAA,QAAAV,qBAAA,CAAAK,MAAA,CAAAK,GAAA,MAAAD,YAAA;IAGF;EAUA;AACkD;AACpD,SAEJP,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["getOptimizeDeps","deepMergeOptimizeDeps","pluginName","defaultDepOptimizePlugin","name","enforce","config","env","command","Error","optimizeDeps","ssr"],"sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,eAAA,QAAuB;AAChC,SAASC,qBAAA,QAA6B;AAEtC,IAAAC,UAAM,8BAAa;AAUZ,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAMF,UAAA;IACNG,OAAA,EAAS;IACTC,OAAOA,MAAA,EAAQC,GAAA,EAAK;MAClB,IAAIA,GAAA,CAAIC,OAAA,KAAY,WAAWD,GAAA,CAAIC,OAAA,KAAY,SAC7C,MAAM,IAAIC,KAAA,KAAAP,UAAA,2BAAAK,GAAA,CAAAC,OAAA;MAAA,IACR;QAAAE;MAAc,IAAAV,eAAA,CAAAO,GAAA,CAAAC,OAA+B;MAAOF,MACtD,CAAAK,GAAA,KAAAL,MAAA,CAAAK,GAAA,QAAAV,qBAAA,CAAAK,MAAA,CAAAK,GAAA,EAAAL,MAAA,EAAAI,YAAA;IAGF;EAUA;AAEsD;AACxD,SAEJP,wBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxrn",
3
- "version": "1.2.72",
3
+ "version": "1.2.73-1769198278225",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -65,17 +65,17 @@
65
65
  "@hono/node-server": "^1.19.6",
66
66
  "@react-native/dev-middleware": "^0.83.0",
67
67
  "@rollup/plugin-node-resolve": "^15.3.1",
68
- "@vxrn/compiler": "1.2.72",
69
- "@vxrn/debug": "1.2.72",
70
- "@vxrn/query-string": "1.2.72",
71
- "@vxrn/react-native-prebuilt": "1.2.72",
72
- "@vxrn/resolve": "1.2.72",
73
- "@vxrn/safe-area": "1.2.72",
74
- "@vxrn/url-parse": "1.2.72",
75
- "@vxrn/utils": "1.2.72",
76
- "@vxrn/vendor": "1.2.72",
77
- "@vxrn/vite-flow": "1.2.72",
78
- "@vxrn/vite-plugin-metro": "1.2.72",
68
+ "@vxrn/compiler": "1.2.73-1769198278225",
69
+ "@vxrn/debug": "1.2.73-1769198278225",
70
+ "@vxrn/query-string": "1.2.73-1769198278225",
71
+ "@vxrn/react-native-prebuilt": "1.2.73-1769198278225",
72
+ "@vxrn/resolve": "1.2.73-1769198278225",
73
+ "@vxrn/safe-area": "1.2.73-1769198278225",
74
+ "@vxrn/url-parse": "1.2.73-1769198278225",
75
+ "@vxrn/utils": "1.2.73-1769198278225",
76
+ "@vxrn/vendor": "1.2.73-1769198278225",
77
+ "@vxrn/vite-flow": "1.2.73-1769198278225",
78
+ "@vxrn/vite-plugin-metro": "1.2.73-1769198278225",
79
79
  "citty": "^0.1.6",
80
80
  "dotenv": "^17.2.1",
81
81
  "dotenv-expand": "^12.0.2",
@@ -0,0 +1,126 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { deepMergeOptimizeDeps } from './mergeUserConfig'
3
+
4
+ describe('deepMergeOptimizeDeps', () => {
5
+ it('filters excluded deps from include list', () => {
6
+ const a = {
7
+ optimizeDeps: {
8
+ include: ['react', 'react-native-reanimated', 'lodash'],
9
+ exclude: [],
10
+ },
11
+ }
12
+ const b = {
13
+ optimizeDeps: {
14
+ exclude: ['react-native-reanimated'],
15
+ },
16
+ }
17
+
18
+ deepMergeOptimizeDeps(a, b)
19
+
20
+ expect(a.optimizeDeps.include).toContain('react')
21
+ expect(a.optimizeDeps.include).toContain('lodash')
22
+ expect(a.optimizeDeps.include).not.toContain('react-native-reanimated')
23
+ expect(a.optimizeDeps.exclude).toContain('react-native-reanimated')
24
+ })
25
+
26
+ it('filters excluded deps from noExternal list', () => {
27
+ const a = {
28
+ optimizeDeps: {
29
+ include: ['react', 'react-native-reanimated'],
30
+ },
31
+ noExternal: ['react', 'react-native-reanimated'] as (string | RegExp)[],
32
+ }
33
+ const b = {
34
+ optimizeDeps: {
35
+ exclude: ['react-native-reanimated'],
36
+ },
37
+ }
38
+
39
+ deepMergeOptimizeDeps(a, b)
40
+
41
+ expect(a.noExternal).toContain('react')
42
+ expect(a.noExternal).not.toContain('react-native-reanimated')
43
+ })
44
+
45
+ it('filters excluded deps from needsInterop list', () => {
46
+ const a = {
47
+ optimizeDeps: {
48
+ include: [],
49
+ needsInterop: ['react', 'react-native-reanimated'],
50
+ },
51
+ }
52
+ const b = {
53
+ optimizeDeps: {
54
+ exclude: ['react-native-reanimated'],
55
+ },
56
+ }
57
+
58
+ deepMergeOptimizeDeps(a, b)
59
+
60
+ expect(a.optimizeDeps.needsInterop).toContain('react')
61
+ expect(a.optimizeDeps.needsInterop).not.toContain('react-native-reanimated')
62
+ })
63
+
64
+ it('merges excludes from all sources', () => {
65
+ const a = {
66
+ optimizeDeps: {
67
+ exclude: ['a'],
68
+ },
69
+ }
70
+ const b = {
71
+ optimizeDeps: {
72
+ exclude: ['b'],
73
+ },
74
+ }
75
+ const extra = {
76
+ include: [],
77
+ exclude: ['c'],
78
+ needsInterop: [],
79
+ esbuildOptions: { resolveExtensions: [] },
80
+ }
81
+
82
+ deepMergeOptimizeDeps(a, b, extra)
83
+
84
+ expect(a.optimizeDeps.exclude).toContain('a')
85
+ expect(a.optimizeDeps.exclude).toContain('b')
86
+ expect(a.optimizeDeps.exclude).toContain('c')
87
+ })
88
+
89
+ it('preserves noExternal: true when set', () => {
90
+ const a = {
91
+ optimizeDeps: {},
92
+ noExternal: true as const,
93
+ }
94
+ const b = {
95
+ optimizeDeps: {
96
+ exclude: ['react-native-reanimated'],
97
+ },
98
+ }
99
+
100
+ deepMergeOptimizeDeps(a, b)
101
+
102
+ expect(a.noExternal).toBe(true)
103
+ })
104
+
105
+ it('handles RegExp in noExternal', () => {
106
+ const regex = /some-pattern/
107
+ const a = {
108
+ optimizeDeps: {
109
+ include: ['react', 'react-native-reanimated'],
110
+ },
111
+ noExternal: [regex, 'react', 'react-native-reanimated'] as (string | RegExp)[],
112
+ }
113
+ const b = {
114
+ optimizeDeps: {
115
+ exclude: ['react-native-reanimated'],
116
+ },
117
+ }
118
+
119
+ deepMergeOptimizeDeps(a, b)
120
+
121
+ // regex should be preserved
122
+ expect(a.noExternal).toContain(regex)
123
+ expect(a.noExternal).toContain('react')
124
+ expect(a.noExternal).not.toContain('react-native-reanimated')
125
+ })
126
+ })
@@ -60,11 +60,21 @@ export function deepMergeOptimizeDeps(
60
60
  a.optimizeDeps ||= {}
61
61
  b.optimizeDeps ||= {}
62
62
 
63
+ // build exclude set first so we can filter it from other lists
64
+ const excludeSet = new Set(
65
+ uniq([
66
+ ...(a.optimizeDeps.exclude || []),
67
+ ...(b.optimizeDeps.exclude || []),
68
+ ...(extraDepsOpt?.exclude || []),
69
+ ])
70
+ )
71
+
63
72
  if (!avoidMergeExternal) {
64
73
  // If either config has noExternal: true, preserve it (means "bundle everything")
65
74
  if (a.noExternal === true || b.noExternal === true) {
66
75
  a.noExternal = true
67
76
  } else {
77
+ // filter out excluded deps from noExternal
68
78
  a.noExternal = uniq([
69
79
  ...coerceToArray((a.noExternal as string[]) || []),
70
80
  ...(a.optimizeDeps.include || []),
@@ -77,27 +87,25 @@ export function deepMergeOptimizeDeps(
77
87
  'react-dom',
78
88
  'react-dom/server',
79
89
  'react-dom/client',
80
- ])
90
+ ]).filter((dep) => typeof dep !== 'string' || !excludeSet.has(dep))
81
91
  }
82
92
  }
83
93
 
84
- a.optimizeDeps.exclude = uniq([
85
- ...(a.optimizeDeps.exclude || []),
86
- ...(b.optimizeDeps.exclude || []),
87
- ...(extraDepsOpt?.exclude || []),
88
- ])
94
+ a.optimizeDeps.exclude = [...excludeSet]
89
95
 
96
+ // filter out excluded deps from include - esbuild fails if something is both
97
+ // an entry point (include) and external (exclude)
90
98
  a.optimizeDeps.include = uniq([
91
99
  ...(a.optimizeDeps.include || []),
92
100
  ...(b.optimizeDeps.include || []),
93
101
  ...(extraDepsOpt?.include || []),
94
- ])
102
+ ]).filter((dep) => !excludeSet.has(dep))
95
103
 
96
104
  a.optimizeDeps.needsInterop = uniq([
97
105
  ...(a.optimizeDeps.needsInterop || []),
98
106
  ...(b.optimizeDeps.needsInterop || []),
99
107
  ...(extraDepsOpt?.needsInterop || []),
100
- ])
108
+ ]).filter((dep) => !excludeSet.has(dep))
101
109
 
102
110
  a.optimizeDeps.esbuildOptions = {
103
111
  ...a.optimizeDeps.esbuildOptions,
@@ -0,0 +1,42 @@
1
+ import { describe, expect, it } from 'vitest'
2
+ import { getScannedOptimizeDepsConfig } from './autoDepOptimizePlugin'
3
+
4
+ describe('getScannedOptimizeDepsConfig', () => {
5
+ it('filters excluded deps from scanned results', async () => {
6
+ // mock the scanning by passing a fake result
7
+ const mockResult = {
8
+ prebundleDeps: ['react', 'react-native-reanimated', 'lodash'],
9
+ hasReanimated: true,
10
+ hasNativewind: false,
11
+ }
12
+
13
+ // we need to mock findDepsToOptimize, so let's test the filtering logic directly
14
+ const excludeArray = ['react-native-reanimated']
15
+ const excludeStrings = excludeArray.filter((e): e is string => typeof e === 'string')
16
+ const excludeSet = new Set(excludeStrings)
17
+
18
+ const filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep))
19
+
20
+ expect(filteredDeps).toContain('react')
21
+ expect(filteredDeps).toContain('lodash')
22
+ expect(filteredDeps).not.toContain('react-native-reanimated')
23
+ })
24
+
25
+ it('handles RegExp exclude patterns (ignores them for dep name filtering)', async () => {
26
+ const mockResult = {
27
+ prebundleDeps: ['react', 'react-native-reanimated'],
28
+ hasReanimated: true,
29
+ hasNativewind: false,
30
+ }
31
+
32
+ // regexp patterns should be ignored for dep name filtering
33
+ const excludeArray: (string | RegExp)[] = [/some-pattern/, 'react-native-reanimated']
34
+ const excludeStrings = excludeArray.filter((e): e is string => typeof e === 'string')
35
+ const excludeSet = new Set(excludeStrings)
36
+
37
+ const filteredDeps = mockResult.prebundleDeps.filter((dep) => !excludeSet.has(dep))
38
+
39
+ expect(filteredDeps).toContain('react')
40
+ expect(filteredDeps).not.toContain('react-native-reanimated')
41
+ })
42
+ })
@@ -25,7 +25,7 @@ export function autoDepOptimizePlugin(props: FindDepsOptions): Plugin {
25
25
  name,
26
26
  enforce: 'pre',
27
27
 
28
- async config(_cfg, env) {
28
+ async config(cfg, env) {
29
29
  debug?.('Config hook called')
30
30
 
31
31
  // TODO not use global here we should move deps into vxrn
@@ -34,16 +34,22 @@ export function autoDepOptimizePlugin(props: FindDepsOptions): Plugin {
34
34
 
35
35
  const exclude = depsConfig
36
36
  ? Object.entries(depsConfig)
37
- .filter(([key, value]) => value === false)
37
+ .filter(([_, value]) => value === false)
38
38
  .map(([k]) => k)
39
39
  : []
40
40
 
41
41
  const userExcludes = Array.isArray(props.exclude) ? props.exclude : [props.exclude]
42
42
 
43
+ // also respect user's vite config optimizeDeps.exclude
44
+ const userViteExcludes = cfg.optimizeDeps?.exclude || []
45
+ const userSsrExcludes = cfg.ssr?.optimizeDeps?.exclude || []
46
+
43
47
  const finalConfig = await getScannedOptimizeDepsConfig({
44
48
  ...props,
45
49
  mode: env.mode,
46
- exclude: [...exclude, ...userExcludes].filter(Boolean),
50
+ exclude: [...exclude, ...userExcludes, ...userViteExcludes, ...userSsrExcludes].filter(
51
+ Boolean
52
+ ),
47
53
  })
48
54
 
49
55
  debugDetails?.(
@@ -66,13 +72,21 @@ export async function getScannedOptimizeDepsConfig(props: FindDepsOptionsByMode)
66
72
 
67
73
  props.onScannedDeps?.(result)
68
74
 
75
+ // filter out explicitly excluded deps from the scanned results
76
+ // createFilter works on file paths but user exclude may be dep names
77
+ const excludeArray = Array.isArray(props.exclude) ? props.exclude : [props.exclude]
78
+ const excludeStrings = excludeArray.filter((e): e is string => typeof e === 'string')
79
+ const excludeSet = new Set(excludeStrings)
80
+
81
+ const filteredDeps = result.prebundleDeps.filter((dep) => !excludeSet.has(dep))
82
+
69
83
  return {
70
84
  ssr: {
71
85
  optimizeDeps: {
72
- include: result.prebundleDeps,
86
+ include: filteredDeps,
73
87
  exclude: EXCLUDE_LIST,
74
88
  },
75
- noExternal: result.prebundleDeps,
89
+ noExternal: filteredDeps,
76
90
  },
77
91
  }
78
92
  }
@@ -35,7 +35,8 @@ export function defaultDepOptimizePlugin(): Plugin {
35
35
  // so we just call it here to ensure `optimizeDeps` and `noExternal` configs are set as likely
36
36
  // same as in CLI mode.
37
37
  if (!config.ssr) config.ssr = {}
38
- deepMergeOptimizeDeps(config.ssr, {}, optimizeDeps)
38
+ // pass user config so their excludes are respected
39
+ deepMergeOptimizeDeps(config.ssr, config, optimizeDeps)
39
40
  },
40
41
  } satisfies Plugin
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mergeUserConfig.d.ts","sourceRoot":"","sources":["../../src/config/mergeUserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAI/E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,EAAE;QACd,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAC5B,CAAA;CACF,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAAA;CACtE,CAAA;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,UAAU,EACxB,cAAc,CAAC,EAAE,UAAU,GAAG,IAAI,cA8BnC;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,YAAY,CAAC,EAAE,gBAAgB,EAC/B,kBAAkB,UAAQ,QAiD3B"}
1
+ {"version":3,"file":"mergeUserConfig.d.ts","sourceRoot":"","sources":["../../src/config/mergeUserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAI/E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,EAAE;QACd,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAC5B,CAAA;CACF,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAAA;CACtE,CAAA;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,UAAU,EACxB,cAAc,CAAC,EAAE,UAAU,GAAG,IAAI,cA8BnC;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,YAAY,CAAC,EAAE,gBAAgB,EAC/B,kBAAkB,UAAQ,QAyD3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mergeUserConfig.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeUserConfig.test.d.ts","sourceRoot":"","sources":["../../src/config/mergeUserConfig.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"autoDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,6BAA6B,CAAA;AAQpC,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAiCpE;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAA;AAED,KAAK,qBAAqB,GAAG,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/D,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB;;;;;;;;GAc9E;AAID,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE,qBAAqB,2BA2EvB"}
1
+ {"version":3,"file":"autoDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/autoDepOptimizePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,6BAA6B,CAAA;AAQpC,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAuCpE;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,WAEpD,CAAA;AAED,KAAK,qBAAqB,GAAG,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/D,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB;;;;;;;;GAsB9E;AAID,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE,qBAAqB,2BA2EvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=autoDepOptimizePlugin.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoDepOptimizePlugin.test.d.ts","sourceRoot":"","sources":["../../src/plugins/autoDepOptimizePlugin.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AASlC;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAyBjD"}
1
+ {"version":3,"file":"defaultDepOptimizePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/defaultDepOptimizePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AASlC;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA0BjD"}