@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.
- package/dist/cjs/babel-plugins/import-meta-env-plugin.cjs +32 -2
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +32 -2
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +32 -2
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +32 -2
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/package.json +2 -2
- package/src/babel-plugins/import-meta-env-plugin.ts +66 -0
- package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
|
@@ -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","
|
|
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","
|
|
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","
|
|
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
|
+
"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.
|
|
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,
|
|
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"}
|