@vxrn/vite-plugin-metro 1.13.3 → 1.13.5-1774961348274

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.
@@ -46,6 +46,36 @@ const importMetaEnvPlugin = (0, import_helper_plugin_utils.declare)((api, option
46
46
  ...options.env,
47
47
  ...platformEnv
48
48
  };
49
+ function tryEliminateDeadBranch(path) {
50
+ const parent = path.parentPath;
51
+ if (parent) {
52
+ if (parent.isBinaryExpression()) {
53
+ const result = parent.evaluate();
54
+ result.confident && (parent.replaceWith(t.valueToNode(result.value)), tryEliminateDeadBranch(parent));
55
+ return;
56
+ }
57
+ if (parent.isUnaryExpression()) {
58
+ const result = parent.evaluate();
59
+ result.confident && (parent.replaceWith(t.valueToNode(result.value)), tryEliminateDeadBranch(parent));
60
+ return;
61
+ }
62
+ if (parent.isIfStatement() && parent.get("test") === path) {
63
+ const result = path.evaluate();
64
+ if (result.confident) if (result.value) {
65
+ const consequent = parent.node.consequent;
66
+ t.isBlockStatement(consequent) ? parent.replaceWithMultiple(consequent.body) : parent.replaceWith(consequent);
67
+ } else {
68
+ const alternate = parent.node.alternate;
69
+ alternate ? t.isBlockStatement(alternate) ? parent.replaceWithMultiple(alternate.body) : parent.replaceWith(alternate) : parent.remove();
70
+ }
71
+ return;
72
+ }
73
+ if (parent.isConditionalExpression() && parent.get("test") === path) {
74
+ const result = path.evaluate();
75
+ result.confident && parent.replaceWith(result.value ? parent.node.consequent : parent.node.alternate);
76
+ }
77
+ }
78
+ }
49
79
  return {
50
80
  name: "import-meta-env",
51
81
  visitor: {
@@ -66,7 +96,7 @@ const importMetaEnvPlugin = (0, import_helper_plugin_utils.declare)((api, option
66
96
  const envKey = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
67
97
  if (!envKey) return;
68
98
  const value = env[envKey];
69
- path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value));
99
+ path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value)), tryEliminateDeadBranch(path);
70
100
  return;
71
101
  }
72
102
  if (t.isMemberExpression(node.object) && t.isIdentifier(node.object.object, {
@@ -77,7 +107,7 @@ const importMetaEnvPlugin = (0, import_helper_plugin_utils.declare)((api, option
77
107
  const envKey = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
78
108
  if (!envKey || !(envKey in env)) return;
79
109
  const value = env[envKey];
80
- path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value));
110
+ path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value)), tryEliminateDeadBranch(path);
81
111
  }
82
112
  }
83
113
  }
@@ -50,6 +50,36 @@ var import_helper_plugin_utils = require("@babel/helper-plugin-utils"),
50
50
  ...options.env,
51
51
  ...platformEnv
52
52
  };
53
+ function tryEliminateDeadBranch(path) {
54
+ var parent = path.parentPath;
55
+ if (parent) {
56
+ if (parent.isBinaryExpression()) {
57
+ var result = parent.evaluate();
58
+ result.confident && (parent.replaceWith(t.valueToNode(result.value)), tryEliminateDeadBranch(parent));
59
+ return;
60
+ }
61
+ if (parent.isUnaryExpression()) {
62
+ var result1 = parent.evaluate();
63
+ result1.confident && (parent.replaceWith(t.valueToNode(result1.value)), tryEliminateDeadBranch(parent));
64
+ return;
65
+ }
66
+ if (parent.isIfStatement() && parent.get("test") === path) {
67
+ var result2 = path.evaluate();
68
+ if (result2.confident) if (result2.value) {
69
+ var consequent = parent.node.consequent;
70
+ t.isBlockStatement(consequent) ? parent.replaceWithMultiple(consequent.body) : parent.replaceWith(consequent);
71
+ } else {
72
+ var alternate = parent.node.alternate;
73
+ alternate ? t.isBlockStatement(alternate) ? parent.replaceWithMultiple(alternate.body) : parent.replaceWith(alternate) : parent.remove();
74
+ }
75
+ return;
76
+ }
77
+ if (parent.isConditionalExpression() && parent.get("test") === path) {
78
+ var result3 = path.evaluate();
79
+ result3.confident && parent.replaceWith(result3.value ? parent.node.consequent : parent.node.alternate);
80
+ }
81
+ }
82
+ }
53
83
  return {
54
84
  name: "import-meta-env",
55
85
  visitor: {
@@ -74,7 +104,7 @@ var import_helper_plugin_utils = require("@babel/helper-plugin-utils"),
74
104
  var envKey = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
75
105
  if (!envKey) return;
76
106
  var value = env[envKey];
77
- path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value));
107
+ path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value)), tryEliminateDeadBranch(path);
78
108
  return;
79
109
  }
80
110
  if (t.isMemberExpression(node.object) && t.isIdentifier(node.object.object, {
@@ -85,7 +115,7 @@ var import_helper_plugin_utils = require("@babel/helper-plugin-utils"),
85
115
  var envKey1 = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
86
116
  if (!envKey1 || !(envKey1 in env)) return;
87
117
  var value1 = env[envKey1];
88
- path.replaceWith(value1 === void 0 ? t.identifier("undefined") : t.valueToNode(value1));
118
+ path.replaceWith(value1 === void 0 ? t.identifier("undefined") : t.valueToNode(value1)), tryEliminateDeadBranch(path);
89
119
  }
90
120
  }
91
121
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","import_meta_env_plugin_exports","__export","default","import_meta_env_plugin_default","importMetaEnvPlugin","module","exports","import_helper_plugin_utils","require","t","__toESM","import_platformEnv","declare","api","options","assertVersion","platform","caller","platformEnv","getPlatformEnv","metroPlatformToViteEnvironment","env","name","visitor","MemberExpression","path","node","isImportMeta","isMetaProperty","object","meta","property","isIdentifier","envEntries","Object","entries","map","param","key","value2","objectProperty","identifier","valueToNode","replaceWith","objectExpression","isMemberExpression","envKey","isStringLiteral","envKey1","value1"],"sources":["../../../src/babel-plugins/import-meta-env-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","import_meta_env_plugin_exports","__export","default","import_meta_env_plugin_default","importMetaEnvPlugin","module","exports","import_helper_plugin_utils","require","t","__toESM","import_platformEnv","declare","api","options","assertVersion","platform","caller","platformEnv","getPlatformEnv","metroPlatformToViteEnvironment","env","tryEliminateDeadBranch","path","parent","parentPath","isBinaryExpression","result","evaluate","confident","replaceWith","valueToNode","isUnaryExpression","result1","isIfStatement","get","result2","consequent","node","isBlockStatement","replaceWithMultiple","body","alternate","remove","isConditionalExpression","result3","name","visitor","MemberExpression","isImportMeta","isMetaProperty","object","meta","property","isIdentifier","envEntries","Object","entries","map","param","key","value2","objectProperty","identifier","objectExpression","isMemberExpression","envKey","isStringLiteral","envKey1","value1"],"sources":["../../../src/babel-plugins/import-meta-env-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,36 @@ const importMetaEnvPlugin = declare((api, options) => {
9
9
  ...options.env,
10
10
  ...platformEnv
11
11
  };
12
+ function tryEliminateDeadBranch(path) {
13
+ const parent = path.parentPath;
14
+ if (parent) {
15
+ if (parent.isBinaryExpression()) {
16
+ const result = parent.evaluate();
17
+ result.confident && (parent.replaceWith(t.valueToNode(result.value)), tryEliminateDeadBranch(parent));
18
+ return;
19
+ }
20
+ if (parent.isUnaryExpression()) {
21
+ const result = parent.evaluate();
22
+ result.confident && (parent.replaceWith(t.valueToNode(result.value)), tryEliminateDeadBranch(parent));
23
+ return;
24
+ }
25
+ if (parent.isIfStatement() && parent.get("test") === path) {
26
+ const result = path.evaluate();
27
+ if (result.confident) if (result.value) {
28
+ const consequent = parent.node.consequent;
29
+ t.isBlockStatement(consequent) ? parent.replaceWithMultiple(consequent.body) : parent.replaceWith(consequent);
30
+ } else {
31
+ const alternate = parent.node.alternate;
32
+ alternate ? t.isBlockStatement(alternate) ? parent.replaceWithMultiple(alternate.body) : parent.replaceWith(alternate) : parent.remove();
33
+ }
34
+ return;
35
+ }
36
+ if (parent.isConditionalExpression() && parent.get("test") === path) {
37
+ const result = path.evaluate();
38
+ result.confident && parent.replaceWith(result.value ? parent.node.consequent : parent.node.alternate);
39
+ }
40
+ }
41
+ }
12
42
  return {
13
43
  name: "import-meta-env",
14
44
  visitor: {
@@ -29,7 +59,7 @@ const importMetaEnvPlugin = declare((api, options) => {
29
59
  const envKey = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
30
60
  if (!envKey) return;
31
61
  const value = env[envKey];
32
- path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value));
62
+ path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value)), tryEliminateDeadBranch(path);
33
63
  return;
34
64
  }
35
65
  if (t.isMemberExpression(node.object) && t.isIdentifier(node.object.object, {
@@ -40,7 +70,7 @@ const importMetaEnvPlugin = declare((api, options) => {
40
70
  const envKey = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
41
71
  if (!envKey || !(envKey in env)) return;
42
72
  const value = env[envKey];
43
- path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value));
73
+ path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value)), tryEliminateDeadBranch(path);
44
74
  }
45
75
  }
46
76
  }
@@ -1 +1 @@
1
- {"version":3,"names":["declare","t","getPlatformEnv","metroPlatformToViteEnvironment","importMetaEnvPlugin","api","options","assertVersion","platform","caller","platformEnv","env","name","visitor","MemberExpression","path","node","isMetaProperty","object","meta","property","isIdentifier","envEntries","Object","entries","map","key","value","objectProperty","identifier","valueToNode","replaceWith","objectExpression","isMemberExpression","envKey","isStringLiteral","import_meta_env_plugin_default"],"sources":["../../../src/babel-plugins/import-meta-env-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,YAAYC,CAAA,MAAO;AAEnB,SAASC,cAAA,EAAgBC,8BAAA,QAAsC;AAexD,MAAMC,mBAAA,GAAsBJ,OAAA,CAAuB,CAACK,GAAA,EAAKC,OAAA,KAAuB;EACrFD,GAAA,CAAIE,aAAA,CAAc,CAAC;EAEnB,MAAMC,QAAA,GAAWH,GAAA,CAAII,MAAA,CAAQA,MAAA,IAAYA,MAAA,EAAgBD,QAAQ;IAI3DE,WAAA,GAAcR,cAAA,CAAeC,8BAAA,CAA+BK,QAAQ,CAAC;IAGrEG,GAAA,GAAoD;MACxD,GAAGL,OAAA,CAAQK,GAAA;MACX,GAAGD;IACL;EAEA,OAAO;IACLE,IAAA,EAAM;IACNC,OAAA,EAAS;MACPC,iBAAiBC,IAAA,EAAM;QACrB,MAAM;UAAEC;QAAK,IAAID,IAAA;QAQjB,IALEd,CAAA,CAAEgB,cAAA,CAAeD,IAAA,CAAKE,MAAM,KAC5BF,IAAA,CAAKE,MAAA,CAAOC,IAAA,CAAKP,IAAA,KAAS,YAC1BI,IAAA,CAAKE,MAAA,CAAOE,QAAA,CAASR,IAAA,KAAS,UAGZX,CAAA,CAAEoB,YAAA,CAAaL,IAAA,CAAKI,QAAA,EAAU;UAAER,IAAA,EAAM;QAAM,CAAC,GAAG;UAClE,MAAMU,UAAA,GAAaC,MAAA,CAAOC,OAAA,CAAQb,GAAG,EAAEc,GAAA,CAAI,CAAC,CAACC,GAAA,EAAKC,KAAK,MACrD1B,CAAA,CAAE2B,cAAA,CACA3B,CAAA,CAAE4B,UAAA,CAAWH,GAAG,GAChBC,KAAA,KAAU,SAAY1B,CAAA,CAAE4B,UAAA,CAAW,WAAW,IAAI5B,CAAA,CAAE6B,WAAA,CAAYH,KAAK,CACvE,CACF;UACAZ,IAAA,CAAKgB,WAAA,CAAY9B,CAAA,CAAE+B,gBAAA,CAAiBV,UAAU,CAAC;UAC/C;QACF;QAGA,IACErB,CAAA,CAAEgC,kBAAA,CAAmBjB,IAAA,CAAKE,MAAM,KAChCjB,CAAA,CAAEgB,cAAA,CAAeD,IAAA,CAAKE,MAAA,CAAOA,MAAM,KACnCF,IAAA,CAAKE,MAAA,CAAOA,MAAA,CAAOC,IAAA,CAAKP,IAAA,KAAS,YACjCI,IAAA,CAAKE,MAAA,CAAOA,MAAA,CAAOE,QAAA,CAASR,IAAA,KAAS,UACrCX,CAAA,CAAEoB,YAAA,CAAaL,IAAA,CAAKE,MAAA,CAAOE,QAAA,EAAU;UAAER,IAAA,EAAM;QAAM,CAAC,GACpD;UACA,MAAMsB,MAAA,GAASjC,CAAA,CAAEoB,YAAA,CAAaL,IAAA,CAAKI,QAAQ,IACvCJ,IAAA,CAAKI,QAAA,CAASR,IAAA,GACdX,CAAA,CAAEkC,eAAA,CAAgBnB,IAAA,CAAKI,QAAQ,IAC7BJ,IAAA,CAAKI,QAAA,CAASO,KAAA,GACd;UAEN,IAAI,CAACO,MAAA,EAAQ;UAEb,MAAMP,KAAA,GAAQhB,GAAA,CAAIuB,MAAM;UACxBnB,IAAA,CAAKgB,WAAA,CACHJ,KAAA,KAAU,SAAY1B,CAAA,CAAE4B,UAAA,CAAW,WAAW,IAAI5B,CAAA,CAAE6B,WAAA,CAAYH,KAAK,CACvE;UACA;QACF;QAGA,IACE1B,CAAA,CAAEgC,kBAAA,CAAmBjB,IAAA,CAAKE,MAAM,KAChCjB,CAAA,CAAEoB,YAAA,CAAaL,IAAA,CAAKE,MAAA,CAAOA,MAAA,EAAQ;UAAEN,IAAA,EAAM;QAAU,CAAC,KACtDX,CAAA,CAAEoB,YAAA,CAAaL,IAAA,CAAKE,MAAA,CAAOE,QAAA,EAAU;UAAER,IAAA,EAAM;QAAM,CAAC,GACpD;UACA,MAAMsB,MAAA,GAASjC,CAAA,CAAEoB,YAAA,CAAaL,IAAA,CAAKI,QAAQ,IACvCJ,IAAA,CAAKI,QAAA,CAASR,IAAA,GACdX,CAAA,CAAEkC,eAAA,CAAgBnB,IAAA,CAAKI,QAAQ,IAC7BJ,IAAA,CAAKI,QAAA,CAASO,KAAA,GACd;UAEN,IAAI,CAACO,MAAA,IAAU,EAAEA,MAAA,IAAUvB,GAAA,GAAM;UAEjC,MAAMgB,KAAA,GAAQhB,GAAA,CAAIuB,MAAM;UACxBnB,IAAA,CAAKgB,WAAA,CACHJ,KAAA,KAAU,SAAY1B,CAAA,CAAE4B,UAAA,CAAW,WAAW,IAAI5B,CAAA,CAAE6B,WAAA,CAAYH,KAAK,CACvE;QACF;MACF;IACF;EACF;AACF,CAAC;AAED,IAAOS,8BAAA,GAAQhC,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["declare","t","getPlatformEnv","metroPlatformToViteEnvironment","importMetaEnvPlugin","api","options","assertVersion","platform","caller","platformEnv","env","tryEliminateDeadBranch","path","parent","parentPath","isBinaryExpression","result","evaluate","confident","replaceWith","valueToNode","value","isUnaryExpression","isIfStatement","get","consequent","node","isBlockStatement","replaceWithMultiple","body","alternate","remove","isConditionalExpression","name","visitor","MemberExpression","isMetaProperty","object","meta","property","isIdentifier","envEntries","Object","entries","map","key","objectProperty","identifier","objectExpression","isMemberExpression","envKey","isStringLiteral","import_meta_env_plugin_default"],"sources":["../../../src/babel-plugins/import-meta-env-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,36 @@ var importMetaEnvPlugin = declare(function (api, options) {
11
11
  ...options.env,
12
12
  ...platformEnv
13
13
  };
14
+ function tryEliminateDeadBranch(path) {
15
+ var parent = path.parentPath;
16
+ if (parent) {
17
+ if (parent.isBinaryExpression()) {
18
+ var result = parent.evaluate();
19
+ result.confident && (parent.replaceWith(t.valueToNode(result.value)), tryEliminateDeadBranch(parent));
20
+ return;
21
+ }
22
+ if (parent.isUnaryExpression()) {
23
+ var result1 = parent.evaluate();
24
+ result1.confident && (parent.replaceWith(t.valueToNode(result1.value)), tryEliminateDeadBranch(parent));
25
+ return;
26
+ }
27
+ if (parent.isIfStatement() && parent.get("test") === path) {
28
+ var result2 = path.evaluate();
29
+ if (result2.confident) if (result2.value) {
30
+ var consequent = parent.node.consequent;
31
+ t.isBlockStatement(consequent) ? parent.replaceWithMultiple(consequent.body) : parent.replaceWith(consequent);
32
+ } else {
33
+ var alternate = parent.node.alternate;
34
+ alternate ? t.isBlockStatement(alternate) ? parent.replaceWithMultiple(alternate.body) : parent.replaceWith(alternate) : parent.remove();
35
+ }
36
+ return;
37
+ }
38
+ if (parent.isConditionalExpression() && parent.get("test") === path) {
39
+ var result3 = path.evaluate();
40
+ result3.confident && parent.replaceWith(result3.value ? parent.node.consequent : parent.node.alternate);
41
+ }
42
+ }
43
+ }
14
44
  return {
15
45
  name: "import-meta-env",
16
46
  visitor: {
@@ -35,7 +65,7 @@ var importMetaEnvPlugin = declare(function (api, options) {
35
65
  var envKey = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
36
66
  if (!envKey) return;
37
67
  var value = env[envKey];
38
- path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value));
68
+ path.replaceWith(value === void 0 ? t.identifier("undefined") : t.valueToNode(value)), tryEliminateDeadBranch(path);
39
69
  return;
40
70
  }
41
71
  if (t.isMemberExpression(node.object) && t.isIdentifier(node.object.object, {
@@ -46,7 +76,7 @@ var importMetaEnvPlugin = declare(function (api, options) {
46
76
  var envKey1 = t.isIdentifier(node.property) ? node.property.name : t.isStringLiteral(node.property) ? node.property.value : null;
47
77
  if (!envKey1 || !(envKey1 in env)) return;
48
78
  var value1 = env[envKey1];
49
- path.replaceWith(value1 === void 0 ? t.identifier("undefined") : t.valueToNode(value1));
79
+ path.replaceWith(value1 === void 0 ? t.identifier("undefined") : t.valueToNode(value1)), tryEliminateDeadBranch(path);
50
80
  }
51
81
  }
52
82
  }
@@ -1 +1 @@
1
- {"version":3,"names":["declare","t","getPlatformEnv","metroPlatformToViteEnvironment","importMetaEnvPlugin","api","options","assertVersion","platform","caller","platformEnv","env","name","visitor","MemberExpression","path","node","isImportMeta","isMetaProperty","object","meta","property","isIdentifier","envEntries","Object","entries","map","param","key","value2","objectProperty","identifier","valueToNode","replaceWith","objectExpression","isMemberExpression","envKey","isStringLiteral","value","envKey1","value1"],"sources":["../../../src/babel-plugins/import-meta-env-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["declare","t","getPlatformEnv","metroPlatformToViteEnvironment","importMetaEnvPlugin","api","options","assertVersion","platform","caller","platformEnv","env","tryEliminateDeadBranch","path","parent","parentPath","isBinaryExpression","result","evaluate","confident","replaceWith","valueToNode","value","isUnaryExpression","result1","isIfStatement","get","result2","consequent","node","isBlockStatement","replaceWithMultiple","body","alternate","remove","isConditionalExpression","result3","name","visitor","MemberExpression","isImportMeta","isMetaProperty","object","meta","property","isIdentifier","envEntries","Object","entries","map","param","key","value2","objectProperty","identifier","objectExpression","isMemberExpression","envKey","isStringLiteral","envKey1","value1"],"sources":["../../../src/babel-plugins/import-meta-env-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxrn/vite-plugin-metro",
3
- "version": "1.13.3",
3
+ "version": "1.13.5-1774961348274",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "dist/cjs",
@@ -61,7 +61,7 @@
61
61
  "@babel/core": "^7.28.5",
62
62
  "@babel/helper-plugin-utils": "^7.27.1",
63
63
  "@babel/types": "^7.28.5",
64
- "@vxrn/debug": "1.13.3",
64
+ "@vxrn/debug": "1.13.5-1774961348274",
65
65
  "babel-preset-expo": "*",
66
66
  "launch-editor": "^2.10.0",
67
67
  "micromatch": "^4.0.8",
@@ -31,6 +31,70 @@ export const importMetaEnvPlugin = declare<PluginOptions>((api, options): Plugin
31
31
  ...platformEnv,
32
32
  }
33
33
 
34
+ // after inlining env values, try to evaluate and eliminate dead if/ternary branches
35
+ // so metro doesn't try to resolve imports inside dead code
36
+ function tryEliminateDeadBranch(path: any) {
37
+ const parent = path.parentPath
38
+ if (!parent) return
39
+
40
+ // handle binary expressions: "ios" === "ssr" → false
41
+ if (parent.isBinaryExpression()) {
42
+ const result = parent.evaluate()
43
+ if (result.confident) {
44
+ parent.replaceWith(t.valueToNode(result.value))
45
+ tryEliminateDeadBranch(parent)
46
+ }
47
+ return
48
+ }
49
+
50
+ // handle unary expressions: !"" → true
51
+ if (parent.isUnaryExpression()) {
52
+ const result = parent.evaluate()
53
+ if (result.confident) {
54
+ parent.replaceWith(t.valueToNode(result.value))
55
+ tryEliminateDeadBranch(parent)
56
+ }
57
+ return
58
+ }
59
+
60
+ // handle if statements: if (false) { ... } else { ... }
61
+ if (parent.isIfStatement() && parent.get('test') === path) {
62
+ const result = path.evaluate()
63
+ if (result.confident) {
64
+ if (result.value) {
65
+ // condition is truthy — keep consequent, remove alternate
66
+ const consequent = parent.node.consequent
67
+ if (t.isBlockStatement(consequent)) {
68
+ parent.replaceWithMultiple(consequent.body)
69
+ } else {
70
+ parent.replaceWith(consequent)
71
+ }
72
+ } else {
73
+ // condition is falsy — keep alternate (or remove entirely)
74
+ const alternate = parent.node.alternate
75
+ if (alternate) {
76
+ if (t.isBlockStatement(alternate)) {
77
+ parent.replaceWithMultiple(alternate.body)
78
+ } else {
79
+ parent.replaceWith(alternate)
80
+ }
81
+ } else {
82
+ parent.remove()
83
+ }
84
+ }
85
+ }
86
+ return
87
+ }
88
+
89
+ // handle ternary: false ? a : b → b
90
+ if (parent.isConditionalExpression() && parent.get('test') === path) {
91
+ const result = path.evaluate()
92
+ if (result.confident) {
93
+ parent.replaceWith(result.value ? parent.node.consequent : parent.node.alternate)
94
+ }
95
+ }
96
+ }
97
+
34
98
  return {
35
99
  name: 'import-meta-env',
36
100
  visitor: {
@@ -74,6 +138,7 @@ export const importMetaEnvPlugin = declare<PluginOptions>((api, options): Plugin
74
138
  path.replaceWith(
75
139
  value === undefined ? t.identifier('undefined') : t.valueToNode(value)
76
140
  )
141
+ tryEliminateDeadBranch(path)
77
142
  return
78
143
  }
79
144
 
@@ -95,6 +160,7 @@ export const importMetaEnvPlugin = declare<PluginOptions>((api, options): Plugin
95
160
  path.replaceWith(
96
161
  value === undefined ? t.identifier('undefined') : t.valueToNode(value)
97
162
  )
163
+ tryEliminateDeadBranch(path)
98
164
  }
99
165
  },
100
166
  },
@@ -1 +1 @@
1
- {"version":3,"file":"import-meta-env-plugin.d.ts","sourceRoot":"","sources":["../../src/babel-plugins/import-meta-env-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;CACnD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,0HAmF9B,CAAA;AAEF,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"import-meta-env-plugin.d.ts","sourceRoot":"","sources":["../../src/babel-plugins/import-meta-env-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;CACnD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,0HAqJ9B,CAAA;AAEF,eAAe,mBAAmB,CAAA"}