@vxrn/vite-plugin-metro 1.14.4 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/babel-plugins/import-meta-env-plugin.cjs +55 -37
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +111 -94
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/cjs/env/platformEnv.cjs +21 -14
- package/dist/cjs/env/platformEnv.native.js +30 -20
- package/dist/cjs/env/platformEnv.native.js.map +1 -1
- package/dist/cjs/index.cjs +16 -14
- package/dist/cjs/index.native.js +16 -14
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +25 -19
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +39 -29
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +103 -92
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +111 -104
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.cjs +17 -13
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +23 -19
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/metro-config/types.cjs +7 -5
- package/dist/cjs/metro-config/types.native.js +7 -5
- package/dist/cjs/metro-config/types.native.js.map +1 -1
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +37 -25
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +49 -33
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/cjs/plugins/metroPlugin.cjs +184 -126
- package/dist/cjs/plugins/metroPlugin.native.js +193 -140
- package/dist/cjs/plugins/metroPlugin.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.cjs +34 -30
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js +56 -44
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/assetPathUtils.cjs +26 -15
- package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js +22 -13
- package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/buildBundle.cjs +36 -26
- package/dist/cjs/rn-commands/bundle/buildBundle.native.js +42 -32
- package/dist/cjs/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.cjs +52 -41
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js +57 -46
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.cjs +23 -15
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js +30 -19
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.cjs +28 -26
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js +28 -26
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.cjs +26 -24
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js +26 -24
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.cjs +22 -16
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js +16 -14
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/index.cjs +14 -12
- package/dist/cjs/rn-commands/bundle/index.native.js +14 -12
- package/dist/cjs/rn-commands/bundle/index.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/saveAssets.cjs +69 -51
- package/dist/cjs/rn-commands/bundle/saveAssets.native.js +75 -55
- package/dist/cjs/rn-commands/bundle/saveAssets.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/types.cjs +7 -5
- package/dist/cjs/rn-commands/bundle/types.native.js +7 -5
- package/dist/cjs/rn-commands/bundle/types.native.js.map +1 -1
- package/dist/cjs/rn-commands/index.cjs +24 -22
- package/dist/cjs/rn-commands/index.native.js +24 -22
- package/dist/cjs/rn-commands/index.native.js.map +1 -1
- package/dist/cjs/transformer/babel-core.cjs +12 -10
- package/dist/cjs/transformer/babel-core.native.js +12 -10
- package/dist/cjs/transformer/babel-core.native.js.map +1 -1
- package/dist/cjs/transformer/babel-transformer.cjs +106 -89
- package/dist/cjs/transformer/babel-transformer.native.js +106 -96
- package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
- package/dist/cjs/transformer/loadBabelConfig.cjs +43 -32
- package/dist/cjs/transformer/loadBabelConfig.native.js +51 -41
- package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
- package/dist/cjs/transformer/transformSync.cjs +33 -25
- package/dist/cjs/transformer/transformSync.native.js +38 -30
- package/dist/cjs/transformer/transformSync.native.js.map +1 -1
- package/dist/cjs/transformer/types.cjs +7 -5
- package/dist/cjs/transformer/types.native.js +7 -5
- package/dist/cjs/transformer/types.native.js.map +1 -1
- package/dist/cjs/utils/exit.cjs +95 -53
- package/dist/cjs/utils/exit.native.js +138 -81
- package/dist/cjs/utils/exit.native.js.map +1 -1
- package/dist/cjs/utils/getTerminalReporter.cjs +33 -28
- package/dist/cjs/utils/getTerminalReporter.native.js +40 -33
- package/dist/cjs/utils/getTerminalReporter.native.js.map +1 -1
- package/dist/cjs/utils/metroCacheManager.cjs +82 -46
- package/dist/cjs/utils/metroCacheManager.native.js +96 -57
- package/dist/cjs/utils/metroCacheManager.native.js.map +1 -1
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +21 -17
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +12 -10
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -1
- package/dist/cjs/utils/projectImport.cjs +40 -30
- package/dist/cjs/utils/projectImport.native.js +49 -37
- package/dist/cjs/utils/projectImport.native.js.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +28 -12
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +83 -68
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/esm/env/platformEnv.mjs +9 -4
- package/dist/esm/env/platformEnv.mjs.map +1 -1
- package/dist/esm/env/platformEnv.native.js +18 -10
- package/dist/esm/env/platformEnv.native.js.map +1 -1
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +13 -9
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +27 -19
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +75 -66
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +83 -78
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +5 -3
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +11 -9
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +22 -12
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +34 -20
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/esm/plugins/metroPlugin.mjs +152 -96
- package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
- package/dist/esm/plugins/metroPlugin.native.js +158 -107
- package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs +7 -5
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js +29 -19
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/assetPathUtils.mjs +14 -5
- package/dist/esm/rn-commands/bundle/assetPathUtils.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/assetPathUtils.native.js +10 -3
- package/dist/esm/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundle.mjs +19 -11
- package/dist/esm/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundle.native.js +25 -17
- package/dist/esm/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs +23 -14
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js +27 -18
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs +11 -5
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js +18 -9
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs +2 -2
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js +2 -2
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs +2 -2
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js +2 -2
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs +8 -4
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js +2 -2
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/saveAssets.mjs +39 -23
- package/dist/esm/rn-commands/bundle/saveAssets.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/saveAssets.native.js +45 -27
- package/dist/esm/rn-commands/bundle/saveAssets.native.js.map +1 -1
- package/dist/esm/transformer/babel-transformer.mjs +84 -69
- package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
- package/dist/esm/transformer/babel-transformer.native.js +94 -86
- package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
- package/dist/esm/transformer/loadBabelConfig.mjs +17 -8
- package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
- package/dist/esm/transformer/loadBabelConfig.native.js +19 -11
- package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
- package/dist/esm/transformer/transformSync.mjs +9 -3
- package/dist/esm/transformer/transformSync.mjs.map +1 -1
- package/dist/esm/transformer/transformSync.native.js +14 -8
- package/dist/esm/transformer/transformSync.native.js.map +1 -1
- package/dist/esm/utils/exit.mjs +68 -28
- package/dist/esm/utils/exit.mjs.map +1 -1
- package/dist/esm/utils/exit.native.js +111 -56
- package/dist/esm/utils/exit.native.js.map +1 -1
- package/dist/esm/utils/getTerminalReporter.mjs +7 -4
- package/dist/esm/utils/getTerminalReporter.mjs.map +1 -1
- package/dist/esm/utils/getTerminalReporter.native.js +14 -9
- package/dist/esm/utils/getTerminalReporter.native.js.map +1 -1
- package/dist/esm/utils/metroCacheManager.mjs +67 -33
- package/dist/esm/utils/metroCacheManager.mjs.map +1 -1
- package/dist/esm/utils/metroCacheManager.native.js +80 -43
- package/dist/esm/utils/metroCacheManager.native.js.map +1 -1
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +9 -7
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +1 -1
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -1
- package/dist/esm/utils/projectImport.mjs +14 -6
- package/dist/esm/utils/projectImport.mjs.map +1 -1
- package/dist/esm/utils/projectImport.native.js +23 -13
- package/dist/esm/utils/projectImport.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,29 +2,44 @@ import { ChildProcess } from "child_process";
|
|
|
2
2
|
import process from "process";
|
|
3
3
|
import colors from "picocolors";
|
|
4
4
|
function _instanceof(left, right) {
|
|
5
|
-
|
|
5
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
6
|
+
return !!right[Symbol.hasInstance](left);
|
|
7
|
+
} else {
|
|
8
|
+
return left instanceof right;
|
|
9
|
+
}
|
|
6
10
|
}
|
|
7
11
|
var debug = function () {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
for (var _len = arguments.length, _ = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
13
|
+
_[_key] = arguments[_key];
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
var PRE_EXIT_SIGNALS = ["SIGHUP", "SIGINT", "SIGTERM", "SIGBREAK"];
|
|
17
|
+
var queue = [];
|
|
18
|
+
var unsubscribe = null;
|
|
13
19
|
function installExitHooks(asyncExitHook) {
|
|
14
|
-
|
|
20
|
+
if (!queue.length) {
|
|
21
|
+
unsubscribe = attachMasterListener();
|
|
22
|
+
}
|
|
23
|
+
queue.push(asyncExitHook);
|
|
24
|
+
return function () {
|
|
15
25
|
var index = queue.indexOf(asyncExitHook);
|
|
16
|
-
index >= 0
|
|
26
|
+
if (index >= 0) {
|
|
27
|
+
queue.splice(index, 1);
|
|
28
|
+
}
|
|
29
|
+
if (!queue.length) {
|
|
30
|
+
unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe();
|
|
31
|
+
}
|
|
17
32
|
};
|
|
18
33
|
}
|
|
19
34
|
function createExitHook(signal) {
|
|
20
35
|
return guardAsync(async function () {
|
|
21
36
|
var _process_exitCode;
|
|
22
37
|
debug(`pre-exit (signal: ${signal}, queue length: ${queue.length})`);
|
|
23
|
-
var _iteratorNormalCompletion =
|
|
24
|
-
_didIteratorError =
|
|
38
|
+
var _iteratorNormalCompletion = true,
|
|
39
|
+
_didIteratorError = false,
|
|
25
40
|
_iteratorError = void 0;
|
|
26
41
|
try {
|
|
27
|
-
for (var _iterator = Object.entries(queue)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
42
|
+
for (var _iterator = Object.entries(queue)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
28
43
|
var [index, hookAsync] = _step.value;
|
|
29
44
|
try {
|
|
30
45
|
await hookAsync(signal);
|
|
@@ -33,73 +48,101 @@ function createExitHook(signal) {
|
|
|
33
48
|
}
|
|
34
49
|
}
|
|
35
50
|
} catch (err) {
|
|
36
|
-
_didIteratorError =
|
|
51
|
+
_didIteratorError = true;
|
|
52
|
+
_iteratorError = err;
|
|
37
53
|
} finally {
|
|
38
54
|
try {
|
|
39
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
55
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
56
|
+
_iterator.return();
|
|
57
|
+
}
|
|
40
58
|
} finally {
|
|
41
|
-
if (_didIteratorError)
|
|
59
|
+
if (_didIteratorError) {
|
|
60
|
+
throw _iteratorError;
|
|
61
|
+
}
|
|
42
62
|
}
|
|
43
63
|
}
|
|
44
|
-
debug(`post-exit (code: ${(_process_exitCode = process.exitCode) !== null && _process_exitCode !== void 0 ? _process_exitCode : 0})`)
|
|
64
|
+
debug(`post-exit (code: ${(_process_exitCode = process.exitCode) !== null && _process_exitCode !== void 0 ? _process_exitCode : 0})`);
|
|
65
|
+
process.exit();
|
|
45
66
|
});
|
|
46
67
|
}
|
|
47
68
|
function attachMasterListener() {
|
|
48
|
-
var hooks = []
|
|
49
|
-
|
|
50
|
-
_didIteratorError =
|
|
69
|
+
var hooks = [];
|
|
70
|
+
var _iteratorNormalCompletion = true,
|
|
71
|
+
_didIteratorError = false,
|
|
51
72
|
_iteratorError = void 0;
|
|
52
73
|
try {
|
|
53
|
-
for (var _iterator = PRE_EXIT_SIGNALS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
54
|
-
var signal = _step.value
|
|
55
|
-
|
|
56
|
-
hooks.push([signal, hook])
|
|
74
|
+
for (var _iterator = PRE_EXIT_SIGNALS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
75
|
+
var signal = _step.value;
|
|
76
|
+
var hook = createExitHook(signal);
|
|
77
|
+
hooks.push([signal, hook]);
|
|
78
|
+
process.on(signal, hook);
|
|
57
79
|
}
|
|
58
80
|
} catch (err) {
|
|
59
|
-
_didIteratorError =
|
|
81
|
+
_didIteratorError = true;
|
|
82
|
+
_iteratorError = err;
|
|
60
83
|
} finally {
|
|
61
84
|
try {
|
|
62
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
85
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
86
|
+
_iterator.return();
|
|
87
|
+
}
|
|
63
88
|
} finally {
|
|
64
|
-
if (_didIteratorError)
|
|
89
|
+
if (_didIteratorError) {
|
|
90
|
+
throw _iteratorError;
|
|
91
|
+
}
|
|
65
92
|
}
|
|
66
93
|
}
|
|
67
94
|
return function () {
|
|
68
|
-
var _iteratorNormalCompletion2 =
|
|
69
|
-
_didIteratorError2 =
|
|
95
|
+
var _iteratorNormalCompletion2 = true,
|
|
96
|
+
_didIteratorError2 = false,
|
|
70
97
|
_iteratorError2 = void 0;
|
|
71
98
|
try {
|
|
72
|
-
for (var _iterator2 = hooks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 =
|
|
99
|
+
for (var _iterator2 = hooks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
73
100
|
var [signal2, hook2] = _step2.value;
|
|
74
101
|
process.removeListener(signal2, hook2);
|
|
75
102
|
}
|
|
76
103
|
} catch (err) {
|
|
77
|
-
_didIteratorError2 =
|
|
104
|
+
_didIteratorError2 = true;
|
|
105
|
+
_iteratorError2 = err;
|
|
78
106
|
} finally {
|
|
79
107
|
try {
|
|
80
|
-
!_iteratorNormalCompletion2 && _iterator2.return != null
|
|
108
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
109
|
+
_iterator2.return();
|
|
110
|
+
}
|
|
81
111
|
} finally {
|
|
82
|
-
if (_didIteratorError2)
|
|
112
|
+
if (_didIteratorError2) {
|
|
113
|
+
throw _iteratorError2;
|
|
114
|
+
}
|
|
83
115
|
}
|
|
84
116
|
}
|
|
85
117
|
};
|
|
86
118
|
}
|
|
87
119
|
function ensureProcessExitsAfterDelay() {
|
|
88
120
|
var waitUntilExitMs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1e4,
|
|
89
|
-
startedAtMs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Date.now()
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
121
|
+
startedAtMs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Date.now();
|
|
122
|
+
var expectedResources = [process.stdout.isTTY ? "TTYWrap" : "PipeWrap", process.stderr.isTTY ? "TTYWrap" : "PipeWrap", process.stdin.isTTY ? "TTYWrap" : "PipeWrap"];
|
|
123
|
+
var activeResources = process.getActiveResourcesInfo();
|
|
124
|
+
var unexpectedActiveResources = activeResources.filter(function (activeResource) {
|
|
125
|
+
var index = expectedResources.indexOf(activeResource);
|
|
126
|
+
if (index >= 0) {
|
|
127
|
+
expectedResources.splice(index, 1);
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
});
|
|
132
|
+
var canExitProcess = !unexpectedActiveResources.length;
|
|
133
|
+
if (canExitProcess) {
|
|
134
|
+
return debug("no active resources detected, process can safely exit");
|
|
135
|
+
}
|
|
136
|
+
debug(`process is trying to exit, but is stuck on unexpected active resources:`, unexpectedActiveResources);
|
|
99
137
|
var elapsedTime = Date.now() - startedAtMs;
|
|
100
|
-
if (elapsedTime > waitUntilExitMs)
|
|
138
|
+
if (elapsedTime > waitUntilExitMs) {
|
|
139
|
+
debug("active handles detected past the exit delay, forcefully exiting:", activeResources);
|
|
140
|
+
tryWarnActiveProcesses();
|
|
141
|
+
return process.exit(0);
|
|
142
|
+
}
|
|
101
143
|
var timeoutId = setTimeout(function () {
|
|
102
|
-
clearTimeout(timeoutId)
|
|
144
|
+
clearTimeout(timeoutId);
|
|
145
|
+
ensureProcessExitsAfterDelay(waitUntilExitMs, startedAtMs);
|
|
103
146
|
}, 100);
|
|
104
147
|
}
|
|
105
148
|
function tryWarnActiveProcesses() {
|
|
@@ -108,29 +151,41 @@ function tryWarnActiveProcesses() {
|
|
|
108
151
|
var children = process._getActiveHandles().filter(function (handle) {
|
|
109
152
|
return _instanceof(handle, ChildProcess);
|
|
110
153
|
});
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
154
|
+
if (children.length) {
|
|
155
|
+
activeProcesses = children.map(function (child) {
|
|
156
|
+
return child.spawnargs.join(" ");
|
|
157
|
+
});
|
|
158
|
+
}
|
|
114
159
|
} catch (error) {
|
|
115
160
|
debug("failed to get active process information:", error);
|
|
116
161
|
}
|
|
117
|
-
if (!activeProcesses.length)
|
|
162
|
+
if (!activeProcesses.length) {
|
|
163
|
+
warn("Something prevented Expo from exiting, forcefully exiting now.");
|
|
164
|
+
} else {
|
|
118
165
|
var singularOrPlural = activeProcesses.length === 1 ? "1 process" : `${activeProcesses.length} processes`;
|
|
119
|
-
warn(`Detected ${singularOrPlural} preventing process from exiting, forcefully exiting now.`)
|
|
120
|
-
-
|
|
166
|
+
warn(`Detected ${singularOrPlural} preventing process from exiting, forcefully exiting now.`);
|
|
167
|
+
warn(" - " + activeProcesses.join("\n - "));
|
|
121
168
|
}
|
|
122
169
|
}
|
|
123
170
|
function guardAsync(fn) {
|
|
124
|
-
var invoked =
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
171
|
+
var invoked = false;
|
|
172
|
+
var returnValue;
|
|
173
|
+
var guard = async function () {
|
|
174
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
175
|
+
args[_key] = arguments[_key];
|
|
176
|
+
}
|
|
177
|
+
if (!invoked) {
|
|
178
|
+
invoked = true;
|
|
179
|
+
returnValue = await fn(...args);
|
|
180
|
+
}
|
|
181
|
+
return returnValue;
|
|
182
|
+
};
|
|
130
183
|
return guard;
|
|
131
184
|
}
|
|
132
185
|
function warn() {
|
|
133
|
-
for (var _len = arguments.length, message = new Array(_len), _key = 0; _key < _len; _key++)
|
|
186
|
+
for (var _len = arguments.length, message = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
187
|
+
message[_key] = arguments[_key];
|
|
188
|
+
}
|
|
134
189
|
console.warn(...message.map(function (value) {
|
|
135
190
|
return colors.yellow(value);
|
|
136
191
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ChildProcess","process","colors","_instanceof","left","right","Symbol","hasInstance","debug","_len","arguments","length","_","Array","_key","PRE_EXIT_SIGNALS","queue","unsubscribe","installExitHooks","asyncExitHook","attachMasterListener","push","index","indexOf","splice","createExitHook","signal","guardAsync","_process_exitCode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","hookAsync","value","error","err","return","exitCode","exit","hooks","hook","on","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","signal2","hook2","removeListener"],"sources":["../../../src/utils/exit.ts"],"sourcesContent":[null],"mappings":"AAMA,SAASA,YAAA,QAAoB;AAC7B,OAAOC,OAAA,MAAa;AAEpB,OAAOC,MAAA,MAAY;AAEnB,SAAMC,WAAaA,CAAAC,IAAW,EAAAC,KAAA;EAAC,
|
|
1
|
+
{"version":3,"names":["ChildProcess","process","colors","_instanceof","left","right","Symbol","hasInstance","debug","_len","arguments","length","_","Array","_key","PRE_EXIT_SIGNALS","queue","unsubscribe","installExitHooks","asyncExitHook","attachMasterListener","push","index","indexOf","splice","createExitHook","signal","guardAsync","_process_exitCode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","hookAsync","value","error","err","return","exitCode","exit","hooks","hook","on","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","signal2","hook2","removeListener","ensureProcessExitsAfterDelay","waitUntilExitMs","startedAtMs","Date","now"],"sources":["../../../src/utils/exit.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -5,21 +5,24 @@ async function getTerminalReporter(projectRoot) {
|
|
|
5
5
|
Terminal,
|
|
6
6
|
TerminalReporter
|
|
7
7
|
} = await projectImport(projectRoot, "metro");
|
|
8
|
-
let metroWelcomeMessagePrinted =
|
|
8
|
+
let metroWelcomeMessagePrinted = false;
|
|
9
9
|
const terminal = new Terminal(process.stdout);
|
|
10
|
-
terminal._log = terminal.log
|
|
10
|
+
terminal._log = terminal.log;
|
|
11
|
+
terminal.log = (message, ...rest) => {
|
|
11
12
|
if (!metroWelcomeMessagePrinted) {
|
|
12
13
|
const match = message.match(/Welcome to Metro.+v(\d+\.\d+\.\d+)/);
|
|
13
14
|
if (match) {
|
|
14
15
|
const version = match[1];
|
|
15
|
-
|
|
16
|
+
metroWelcomeMessagePrinted = true;
|
|
17
|
+
return terminal._log(colors.dim(`
|
|
16
18
|
Using Metro Bundler v${version}`), ...rest);
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
return terminal._log(message, ...rest);
|
|
20
22
|
};
|
|
21
23
|
const terminalReporter = new TerminalReporter(terminal);
|
|
22
|
-
|
|
24
|
+
terminalReporter._logInitializing = () => {};
|
|
25
|
+
return terminalReporter;
|
|
23
26
|
}
|
|
24
27
|
export { getTerminalReporter };
|
|
25
28
|
//# sourceMappingURL=getTerminalReporter.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["colors","projectImport","getTerminalReporter","projectRoot","Terminal","TerminalReporter","metroWelcomeMessagePrinted","terminal","process","stdout","_log","log","message","rest","match","version","dim","terminalReporter","_logInitializing"],"sources":["../../../src/utils/getTerminalReporter.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAOA,MAAA,MAAY;AAEnB,SAASC,aAAA,QAAqB;AAE9B,eAAsBC,oBAAoBC,WAAA,EAAqB;EAC7D,MAAM;IAAEC,QAAA;IAAUC;EAAiB,IAAI,MAAMJ,aAAA,CAG1CE,WAAA,EAAa,OAAO;EAEvB,IAAIG,0BAAA,GAA6B;EAEjC,MAAMC,QAAA,GAAW,IAAIH,QAAA,CAASI,OAAA,CAAQC,MAAM;EAC1CF,QAAA,CAAiBG,IAAA,GAAOH,QAAA,CAASI,GAAA
|
|
1
|
+
{"version":3,"names":["colors","projectImport","getTerminalReporter","projectRoot","Terminal","TerminalReporter","metroWelcomeMessagePrinted","terminal","process","stdout","_log","log","message","rest","match","version","dim","terminalReporter","_logInitializing"],"sources":["../../../src/utils/getTerminalReporter.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAOA,MAAA,MAAY;AAEnB,SAASC,aAAA,QAAqB;AAE9B,eAAsBC,oBAAoBC,WAAA,EAAqB;EAC7D,MAAM;IAAEC,QAAA;IAAUC;EAAiB,IAAI,MAAMJ,aAAA,CAG1CE,WAAA,EAAa,OAAO;EAEvB,IAAIG,0BAAA,GAA6B;EAEjC,MAAMC,QAAA,GAAW,IAAIH,QAAA,CAASI,OAAA,CAAQC,MAAM;EAC1CF,QAAA,CAAiBG,IAAA,GAAOH,QAAA,CAASI,GAAA;EACnCJ,QAAA,CAASI,GAAA,GAAM,CAACC,OAAA,KAAYC,IAAA,KAAS;IAGnC,IAAI,CAACP,0BAAA,EAA4B;MAC/B,MAAMQ,KAAA,GAAQF,OAAA,CAAQE,KAAA,CAAM,oCAAoC;MAChE,IAAIA,KAAA,EAAO;QACT,MAAMC,OAAA,GAAUD,KAAA,CAAM,CAAC;QACvBR,0BAAA,GAA6B;QAC7B,OAAQC,QAAA,CAAiBG,IAAA,CACvBV,MAAA,CAAOgB,GAAA,CAAI;AAAA,yBAA4BD,OAAO,EAAE,GAChD,GAAGF,IACL;MACF;IACF;IAEA,OAAQN,QAAA,CAAiBG,IAAA,CAAKE,OAAA,EAAS,GAAGC,IAAI;EAChD;EAGA,MAAMI,gBAAA,GAAmB,IAAIZ,gBAAA,CAAiBE,QAAQ;EAIpDU,gBAAA,CAAyBC,gBAAA,GAAmB,MAAM,CAAC;EAErD,OAAOD,gBAAA;AACT","ignoreList":[]}
|
|
@@ -2,25 +2,30 @@ import colors from "picocolors";
|
|
|
2
2
|
import { projectImport } from "./projectImport.native.js";
|
|
3
3
|
async function getTerminalReporter(projectRoot) {
|
|
4
4
|
var {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
terminal._log = terminal.log
|
|
11
|
-
|
|
5
|
+
Terminal,
|
|
6
|
+
TerminalReporter
|
|
7
|
+
} = await projectImport(projectRoot, "metro");
|
|
8
|
+
var metroWelcomeMessagePrinted = false;
|
|
9
|
+
var terminal = new Terminal(process.stdout);
|
|
10
|
+
terminal._log = terminal.log;
|
|
11
|
+
terminal.log = function (message) {
|
|
12
|
+
for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
13
|
+
rest[_key - 1] = arguments[_key];
|
|
14
|
+
}
|
|
12
15
|
if (!metroWelcomeMessagePrinted) {
|
|
13
16
|
var match = message.match(/Welcome to Metro.+v(\d+\.\d+\.\d+)/);
|
|
14
17
|
if (match) {
|
|
15
18
|
var version = match[1];
|
|
16
|
-
|
|
19
|
+
metroWelcomeMessagePrinted = true;
|
|
20
|
+
return terminal._log(colors.dim(`
|
|
17
21
|
Using Metro Bundler v${version}`), ...rest);
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
return terminal._log(message, ...rest);
|
|
21
25
|
};
|
|
22
26
|
var terminalReporter = new TerminalReporter(terminal);
|
|
23
|
-
|
|
27
|
+
terminalReporter._logInitializing = function () {};
|
|
28
|
+
return terminalReporter;
|
|
24
29
|
}
|
|
25
30
|
export { getTerminalReporter };
|
|
26
31
|
//# sourceMappingURL=getTerminalReporter.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["colors","projectImport","getTerminalReporter","projectRoot","Terminal","TerminalReporter","metroWelcomeMessagePrinted","terminal","process","stdout","_log","log","message","_len","arguments","length","rest","Array","_key","match","version","dim","terminalReporter","_logInitializing"],"sources":["../../../src/utils/getTerminalReporter.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAOA,MAAA,MAAY;AAEnB,SAASC,aAAA,QAAqB;AAE9B,eAAsBC,oBAAoBC,WAAA,EAAqB;EAC7D;
|
|
1
|
+
{"version":3,"names":["colors","projectImport","getTerminalReporter","projectRoot","Terminal","TerminalReporter","metroWelcomeMessagePrinted","terminal","process","stdout","_log","log","message","_len","arguments","length","rest","Array","_key","match","version","dim","terminalReporter","_logInitializing"],"sources":["../../../src/utils/getTerminalReporter.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAOA,MAAA,MAAY;AAEnB,SAASC,aAAA,QAAqB;AAE9B,eAAsBC,oBAAoBC,WAAA,EAAqB;EAC7D;IAAMC,QAAE;IAAAC;EAAU,IAAiB,MAAIJ,aAAM,CAAAE,WAG1C,SAAa;EAEhB,IAAIG,0BAAA,GAA6B;EAEjC,IAAAC,QAAM,OAAWH,QAAI,CAAAI,OAAS,CAAAC,MAAQ;EACpCF,QAAA,CAAiBG,IAAA,GAAOH,QAAA,CAASI,GAAA;EACnCJ,QAAA,CAASI,GAAA,GAAM,UAACC,OAAY;IAG1B,KAAK,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAA4BC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAC/BF,IAAA,CAAAE,IAAM,KAAQ,GAAAJ,SAAQ,CAAAI,IAAM;IAC5B;IACE,KAAAZ,0BAAuB;MACvB,IAAAa,KAAA,GAAAP,OAAA,CAAAO,KAAA,qCAA6B;MAC7B,IAAAA,KAAQ;QAAiB,IACvBC,OAAO,GAAID,KAAA;QAAAb,0BAAqC;QAAA,OAC7CC,QAAA,CAAAG,IAAA,CAAAV,MAAA,CAAAqB,GAAA;AAAA,yBACLD,OAAA,QAAAJ,IAAA;MACF;IACF;IAEA,OAAQT,QAAA,CAAiBG,IAAA,CAAKE,OAAA,EAAS,GAAGI,IAAI;EAChD;EAGA,IAAAM,gBAAM,OAAmBjB,gBAAI,CAAAE,QAAiB;EAI5Ce,gBAAA,CAAyBC,gBAAA,GAAmB,YAAM,CAAC;EAErD,OAAOD,gBAAA;AACT","ignoreList":[]}
|
|
@@ -2,15 +2,18 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync } from "node
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { createDebugger } from "@vxrn/debug";
|
|
4
4
|
const {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
debug
|
|
6
|
+
} = createDebugger("vite-plugin-metro:cache");
|
|
7
|
+
const CACHE_METADATA_FILE = "_vite_metro_metadata.json";
|
|
8
8
|
function getMetroCacheDir(root) {
|
|
9
9
|
return join(root, "node_modules", ".cache", "vite-plugin-metro");
|
|
10
10
|
}
|
|
11
11
|
function getMetroCachePaths(root) {
|
|
12
12
|
const paths = [];
|
|
13
|
-
|
|
13
|
+
paths.push(join(root, "node_modules", ".cache", "metro"));
|
|
14
|
+
paths.push(join(root, "node_modules", ".cache", "babel-loader"));
|
|
15
|
+
paths.push(join(root, "node_modules", ".cache", "haste-map"));
|
|
16
|
+
return paths;
|
|
14
17
|
}
|
|
15
18
|
function readCacheMetadata(cacheDir) {
|
|
16
19
|
const metadataPath = join(cacheDir, CACHE_METADATA_FILE);
|
|
@@ -22,45 +25,76 @@ function readCacheMetadata(cacheDir) {
|
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
function writeCacheMetadata(cacheDir, metadata) {
|
|
25
|
-
existsSync(cacheDir)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
if (!existsSync(cacheDir)) {
|
|
29
|
+
mkdirSync(cacheDir, {
|
|
30
|
+
recursive: true
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
writeFileSync(join(cacheDir, CACHE_METADATA_FILE), JSON.stringify(metadata, null, 2));
|
|
28
34
|
}
|
|
29
35
|
function clearMetroCache(root) {
|
|
30
36
|
const paths = getMetroCachePaths(root);
|
|
31
|
-
for (const cachePath of paths)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
for (const cachePath of paths) {
|
|
38
|
+
if (existsSync(cachePath)) {
|
|
39
|
+
try {
|
|
40
|
+
rmSync(cachePath, {
|
|
41
|
+
recursive: true,
|
|
42
|
+
force: true
|
|
43
|
+
});
|
|
44
|
+
debug?.(`Cleared cache: ${cachePath}`);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
debug?.(`Failed to clear cache ${cachePath}: ${e}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
38
49
|
}
|
|
39
50
|
process.env.METRO_RESET_CACHE = "1";
|
|
40
51
|
}
|
|
41
52
|
const PLUGIN_VERSION = "1";
|
|
42
53
|
function checkAndClearMetroCacheFromVite(server, logger) {
|
|
43
54
|
const {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (!depsOptimizer)
|
|
55
|
+
root
|
|
56
|
+
} = server.config;
|
|
57
|
+
const cacheDir = getMetroCacheDir(root);
|
|
58
|
+
const depsOptimizer = server.environments.client?.depsOptimizer;
|
|
59
|
+
if (!depsOptimizer) {
|
|
60
|
+
debug?.("No depsOptimizer available, skipping Metro cache check");
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
49
63
|
const {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
let shouldClear =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
lockfileHash,
|
|
65
|
+
configHash
|
|
66
|
+
} = depsOptimizer.metadata;
|
|
67
|
+
const currentMetadata = {
|
|
68
|
+
lockfileHash,
|
|
69
|
+
configHash,
|
|
70
|
+
pluginVersion: PLUGIN_VERSION
|
|
71
|
+
};
|
|
72
|
+
const cachedMetadata = readCacheMetadata(cacheDir);
|
|
73
|
+
let shouldClear = false;
|
|
74
|
+
let reason = "";
|
|
75
|
+
if (!cachedMetadata) {
|
|
76
|
+
writeCacheMetadata(cacheDir, currentMetadata);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (cachedMetadata.pluginVersion !== PLUGIN_VERSION) {
|
|
80
|
+
shouldClear = true;
|
|
81
|
+
reason = "vite-plugin-metro was updated";
|
|
82
|
+
} else if (cachedMetadata.lockfileHash !== lockfileHash) {
|
|
83
|
+
shouldClear = true;
|
|
84
|
+
reason = "lockfile has changed";
|
|
85
|
+
} else if (cachedMetadata.configHash !== configHash) {
|
|
86
|
+
shouldClear = true;
|
|
87
|
+
reason = "vite config has changed";
|
|
88
|
+
}
|
|
89
|
+
if (shouldClear) {
|
|
90
|
+
logger.info(`Clearing Metro cache because ${reason}`, {
|
|
91
|
+
timestamp: true
|
|
92
|
+
});
|
|
93
|
+
clearMetroCache(root);
|
|
94
|
+
writeCacheMetadata(cacheDir, currentMetadata);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
64
98
|
}
|
|
65
99
|
export { checkAndClearMetroCacheFromVite };
|
|
66
100
|
//# sourceMappingURL=metroCacheManager.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","mkdirSync","readFileSync","writeFileSync","rmSync","join","createDebugger","debug","CACHE_METADATA_FILE","getMetroCacheDir","root","getMetroCachePaths","paths","push","readCacheMetadata","cacheDir","metadataPath","JSON","parse","writeCacheMetadata","metadata","recursive","stringify","clearMetroCache","cachePath","force","e","process","env","METRO_RESET_CACHE","PLUGIN_VERSION","checkAndClearMetroCacheFromVite","server","logger","config","depsOptimizer","environments","client","lockfileHash","configHash","currentMetadata","pluginVersion","cachedMetadata","shouldClear","reason","info","timestamp"],"sources":["../../../src/utils/metroCacheManager.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,SAAA,EAAWC,YAAA,EAAcC,aAAA,EAAeC,MAAA,QAAc;AAC3E,SAASC,IAAA,QAAY;AAErB,SAASC,cAAA,QAAsB;AAE/B,MAAM;
|
|
1
|
+
{"version":3,"names":["existsSync","mkdirSync","readFileSync","writeFileSync","rmSync","join","createDebugger","debug","CACHE_METADATA_FILE","getMetroCacheDir","root","getMetroCachePaths","paths","push","readCacheMetadata","cacheDir","metadataPath","JSON","parse","writeCacheMetadata","metadata","recursive","stringify","clearMetroCache","cachePath","force","e","process","env","METRO_RESET_CACHE","PLUGIN_VERSION","checkAndClearMetroCacheFromVite","server","logger","config","depsOptimizer","environments","client","lockfileHash","configHash","currentMetadata","pluginVersion","cachedMetadata","shouldClear","reason","info","timestamp"],"sources":["../../../src/utils/metroCacheManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|