@vxrn/vite-plugin-metro 2.0.0-beta.33.1 → 2.0.0-beta.45.1
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 +84 -102
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.cjs +108 -0
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +90 -107
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/cjs/env/platformEnv.cjs +55 -57
- package/dist/cjs/env/platformEnv.native.cjs +93 -0
- package/dist/cjs/env/platformEnv.native.js +72 -75
- package/dist/cjs/env/platformEnv.native.js.map +1 -1
- package/dist/cjs/index.cjs +22 -24
- package/dist/cjs/index.native.cjs +41 -0
- package/dist/cjs/index.native.js +22 -23
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +48 -51
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.cjs +101 -0
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +88 -94
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +249 -256
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +295 -0
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +260 -266
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.cjs +38 -44
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.cjs +53 -0
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +39 -44
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/metro-config/types.cjs +9 -11
- package/dist/cjs/metro-config/types.native.cjs +18 -0
- package/dist/cjs/metro-config/types.native.js +9 -10
- package/dist/cjs/metro-config/types.native.js.map +1 -1
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +44 -56
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.cjs +62 -0
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +45 -63
- package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/cjs/plugins/metroPlugin.cjs +210 -248
- package/dist/cjs/plugins/metroPlugin.native.cjs +242 -0
- package/dist/cjs/plugins/metroPlugin.native.js +216 -253
- package/dist/cjs/plugins/metroPlugin.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.cjs +56 -65
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.cjs +121 -0
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js +94 -106
- package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/assetPathUtils.cjs +51 -55
- package/dist/cjs/rn-commands/bundle/assetPathUtils.native.cjs +72 -0
- package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js +51 -54
- package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/buildBundle.cjs +37 -46
- package/dist/cjs/rn-commands/bundle/buildBundle.native.cjs +57 -0
- package/dist/cjs/rn-commands/bundle/buildBundle.native.js +39 -47
- package/dist/cjs/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.cjs +57 -68
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.cjs +81 -0
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js +59 -70
- package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.cjs +37 -39
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.cjs +70 -0
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js +56 -59
- package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.cjs +20 -29
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.cjs +39 -0
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js +20 -28
- package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.cjs +20 -33
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.cjs +38 -0
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js +20 -32
- package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.cjs +23 -32
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.cjs +38 -0
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js +23 -31
- package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/index.cjs +15 -17
- package/dist/cjs/rn-commands/bundle/index.native.cjs +30 -0
- package/dist/cjs/rn-commands/bundle/index.native.js +15 -16
- package/dist/cjs/rn-commands/bundle/index.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/saveAssets.cjs +85 -96
- package/dist/cjs/rn-commands/bundle/saveAssets.native.cjs +129 -0
- package/dist/cjs/rn-commands/bundle/saveAssets.native.js +102 -114
- package/dist/cjs/rn-commands/bundle/saveAssets.native.js.map +1 -1
- package/dist/cjs/rn-commands/bundle/types.cjs +9 -11
- package/dist/cjs/rn-commands/bundle/types.native.cjs +18 -0
- package/dist/cjs/rn-commands/bundle/types.native.js +9 -10
- package/dist/cjs/rn-commands/bundle/types.native.js.map +1 -1
- package/dist/cjs/rn-commands/index.cjs +17 -26
- package/dist/cjs/rn-commands/index.native.cjs +32 -0
- package/dist/cjs/rn-commands/index.native.js +17 -25
- package/dist/cjs/rn-commands/index.native.js.map +1 -1
- package/dist/cjs/transformer/babel-core.cjs +16 -18
- package/dist/cjs/transformer/babel-core.native.cjs +30 -0
- package/dist/cjs/transformer/babel-core.native.js +16 -17
- package/dist/cjs/transformer/babel-core.native.js.map +1 -1
- package/dist/cjs/transformer/babel-transformer.cjs +101 -152
- package/dist/cjs/transformer/babel-transformer.native.cjs +131 -0
- package/dist/cjs/transformer/babel-transformer.native.js +106 -159
- package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
- package/dist/cjs/transformer/loadBabelConfig.cjs +44 -49
- package/dist/cjs/transformer/loadBabelConfig.native.cjs +64 -0
- package/dist/cjs/transformer/loadBabelConfig.native.js +48 -52
- package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
- package/dist/cjs/transformer/metroNativeWorker.cjs +1442 -1480
- package/dist/cjs/transformer/metroNativeWorker.native.cjs +2536 -0
- package/dist/cjs/transformer/metroNativeWorker.native.js +2416 -2552
- package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
- package/dist/cjs/transformer/transformSync.cjs +47 -63
- package/dist/cjs/transformer/transformSync.native.cjs +74 -0
- package/dist/cjs/transformer/transformSync.native.js +49 -64
- package/dist/cjs/transformer/transformSync.native.js.map +1 -1
- package/dist/cjs/transformer/types.cjs +9 -11
- package/dist/cjs/transformer/types.native.cjs +18 -0
- package/dist/cjs/transformer/types.native.js +9 -10
- package/dist/cjs/transformer/types.native.js.map +1 -1
- package/dist/cjs/utils/exit.cjs +141 -139
- package/dist/cjs/utils/exit.native.cjs +266 -0
- package/dist/cjs/utils/exit.native.js +228 -241
- package/dist/cjs/utils/exit.native.js.map +1 -1
- package/dist/cjs/utils/getTerminalReporter.cjs +35 -47
- package/dist/cjs/utils/getTerminalReporter.native.cjs +57 -0
- package/dist/cjs/utils/getTerminalReporter.native.js +38 -49
- package/dist/cjs/utils/getTerminalReporter.native.js.map +1 -1
- package/dist/cjs/utils/metroCacheManager.cjs +84 -99
- package/dist/cjs/utils/metroCacheManager.native.cjs +130 -0
- package/dist/cjs/utils/metroCacheManager.native.js +102 -118
- package/dist/cjs/utils/metroCacheManager.native.js.map +1 -1
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +24 -28
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.cjs +37 -0
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +24 -27
- package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -1
- package/dist/cjs/utils/projectImport.cjs +40 -51
- package/dist/cjs/utils/projectImport.native.cjs +64 -0
- package/dist/cjs/utils/projectImport.native.js +41 -58
- package/dist/cjs/utils/projectImport.native.js.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +72 -86
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +78 -92
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/esm/env/platformEnv.mjs +40 -39
- package/dist/esm/env/platformEnv.mjs.map +1 -1
- package/dist/esm/env/platformEnv.native.js +57 -58
- package/dist/esm/env/platformEnv.native.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.mjs +3 -3
- package/dist/esm/index.native.js +3 -3
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +35 -33
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +75 -77
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +233 -231
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +244 -242
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +26 -26
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +27 -27
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/metro-config/types.mjs +0 -2
- package/dist/esm/metro-config/types.native.js +0 -2
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +32 -38
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +33 -46
- package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/esm/plugins/metroPlugin.mjs +195 -222
- package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
- package/dist/esm/plugins/metroPlugin.native.js +201 -228
- package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs +38 -38
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js +76 -80
- package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/assetPathUtils.mjs +38 -37
- package/dist/esm/rn-commands/bundle/assetPathUtils.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/assetPathUtils.native.js +38 -37
- package/dist/esm/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundle.mjs +25 -28
- package/dist/esm/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundle.native.js +27 -30
- package/dist/esm/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs +43 -43
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js +45 -46
- package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs +24 -21
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js +43 -42
- package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs +5 -3
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js +5 -3
- package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs +5 -7
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js +5 -7
- package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs +11 -14
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js +11 -14
- package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/index.mjs +2 -2
- package/dist/esm/rn-commands/bundle/index.native.js +2 -2
- package/dist/esm/rn-commands/bundle/saveAssets.mjs +70 -70
- package/dist/esm/rn-commands/bundle/saveAssets.mjs.map +1 -1
- package/dist/esm/rn-commands/bundle/saveAssets.native.js +87 -89
- package/dist/esm/rn-commands/bundle/saveAssets.native.js.map +1 -1
- package/dist/esm/rn-commands/bundle/types.mjs +0 -2
- package/dist/esm/rn-commands/bundle/types.native.js +0 -2
- package/dist/esm/rn-commands/index.mjs +2 -2
- package/dist/esm/rn-commands/index.native.js +2 -2
- package/dist/esm/transformer/babel-core.mjs +2 -2
- package/dist/esm/transformer/babel-core.native.js +2 -2
- package/dist/esm/transformer/babel-transformer.mjs +108 -144
- package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
- package/dist/esm/transformer/babel-transformer.native.js +114 -155
- package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
- package/dist/esm/transformer/loadBabelConfig.mjs +29 -23
- package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
- package/dist/esm/transformer/loadBabelConfig.native.js +33 -27
- package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.mjs +1405 -1434
- package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.native.js +2379 -2507
- package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
- package/dist/esm/transformer/transformSync.mjs +32 -37
- package/dist/esm/transformer/transformSync.mjs.map +1 -1
- package/dist/esm/transformer/transformSync.native.js +34 -39
- package/dist/esm/transformer/transformSync.native.js.map +1 -1
- package/dist/esm/transformer/types.mjs +0 -2
- package/dist/esm/transformer/types.native.js +0 -2
- package/dist/esm/utils/exit.mjs +123 -112
- package/dist/esm/utils/exit.mjs.map +1 -1
- package/dist/esm/utils/exit.native.js +210 -215
- package/dist/esm/utils/exit.native.js.map +1 -1
- package/dist/esm/utils/getTerminalReporter.mjs +20 -21
- package/dist/esm/utils/getTerminalReporter.mjs.map +1 -1
- package/dist/esm/utils/getTerminalReporter.native.js +23 -24
- package/dist/esm/utils/getTerminalReporter.native.js.map +1 -1
- package/dist/esm/utils/metroCacheManager.mjs +73 -82
- package/dist/esm/utils/metroCacheManager.mjs.map +1 -1
- package/dist/esm/utils/metroCacheManager.native.js +91 -102
- package/dist/esm/utils/metroCacheManager.native.js.map +1 -1
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +11 -10
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +1 -1
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +11 -10
- package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +1 -1
- package/dist/esm/utils/projectImport.mjs +23 -25
- package/dist/esm/utils/projectImport.mjs.map +1 -1
- package/dist/esm/utils/projectImport.native.js +24 -33
- package/dist/esm/utils/projectImport.native.js.map +1 -1
- package/package.json +5 -6
- package/src/metro-config/getMetroConfigFromViteConfig.ts +46 -10
- package/src/transformer/loadBabelConfig.ts +2 -0
- package/src/transformer/metroNativeWorker.test.ts +267 -35
- package/src/transformer/metroNativeWorker.ts +3 -11
- package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
- package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
- package/types/rn-commands/bundle/assetPathUtils.d.ts.map +1 -1
- package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts.map +1 -1
- package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts.map +1 -1
- package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts.map +1 -1
- package/types/rn-commands/bundle/saveAssets.d.ts.map +1 -1
- package/types/transformer/loadBabelConfig.d.ts.map +1 -1
- package/types/transformer/metroNativeWorker.d.ts.map +1 -1
- package/dist/cjs/transformer/metroNativeWorker.test.cjs +0 -897
- package/dist/cjs/transformer/metroNativeWorker.test.native.js +0 -1010
- package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +0 -1
- package/dist/cjs/transformer/transformSync.test.cjs +0 -36
- package/dist/cjs/transformer/transformSync.test.native.js +0 -49
- package/dist/cjs/transformer/transformSync.test.native.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/metro-config/types.mjs.map +0 -1
- package/dist/esm/metro-config/types.native.js.map +0 -1
- package/dist/esm/rn-commands/bundle/index.mjs.map +0 -1
- package/dist/esm/rn-commands/bundle/index.native.js.map +0 -1
- package/dist/esm/rn-commands/bundle/types.mjs.map +0 -1
- package/dist/esm/rn-commands/bundle/types.native.js.map +0 -1
- package/dist/esm/rn-commands/index.mjs.map +0 -1
- package/dist/esm/rn-commands/index.native.js.map +0 -1
- package/dist/esm/transformer/babel-core.mjs.map +0 -1
- package/dist/esm/transformer/babel-core.native.js.map +0 -1
- package/dist/esm/transformer/metroNativeWorker.test.mjs +0 -861
- package/dist/esm/transformer/metroNativeWorker.test.mjs.map +0 -1
- package/dist/esm/transformer/metroNativeWorker.test.native.js +0 -972
- package/dist/esm/transformer/metroNativeWorker.test.native.js.map +0 -1
- package/dist/esm/transformer/transformSync.test.mjs +0 -37
- package/dist/esm/transformer/transformSync.test.mjs.map +0 -1
- package/dist/esm/transformer/transformSync.test.native.js +0 -47
- package/dist/esm/transformer/transformSync.test.native.js.map +0 -1
- package/dist/esm/transformer/types.mjs.map +0 -1
- package/dist/esm/transformer/types.native.js.map +0 -1
- package/types/transformer/metroNativeWorker.test.d.ts +0 -2
- package/types/transformer/metroNativeWorker.test.d.ts.map +0 -1
- package/types/transformer/transformSync.test.d.ts +0 -2
- package/types/transformer/transformSync.test.d.ts.map +0 -1
|
@@ -1,49 +1,44 @@
|
|
|
1
1
|
import * as babel from "./babel-core.mjs";
|
|
2
|
+
|
|
2
3
|
function isTypeScriptSource(fileName) {
|
|
3
|
-
|
|
4
|
+
return fileName?.endsWith(".ts");
|
|
4
5
|
}
|
|
5
6
|
function isTSXSource(fileName) {
|
|
6
|
-
|
|
7
|
+
return fileName?.endsWith(".tsx");
|
|
7
8
|
}
|
|
8
|
-
function transformSync(src, babelConfig, {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// of the ecosystem.
|
|
31
|
-
// However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.
|
|
32
|
-
// We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.
|
|
33
|
-
hermesParser || src.includes(" @flow"))) {
|
|
34
|
-
return parseWithHermes(src, loadedBabelConfig);
|
|
35
|
-
}
|
|
36
|
-
return parseWithBabel(src, loadedBabelConfig);
|
|
9
|
+
function transformSync(src, babelConfig, { hermesParser }) {
|
|
10
|
+
const loadedBabelConfig = babel.loadOptions(babelConfig);
|
|
11
|
+
if (!loadedBabelConfig) return null;
|
|
12
|
+
let hasWorkletsPlugin = false;
|
|
13
|
+
loadedBabelConfig.plugins = loadedBabelConfig.plugins?.filter((plugin) => {
|
|
14
|
+
const workletsPlugin = plugin;
|
|
15
|
+
if (workletsPlugin.key !== "worklets") return true;
|
|
16
|
+
if (workletsPlugin.options && "workletizableModules" in workletsPlugin.options) {
|
|
17
|
+
throw new Error("[vxrn] `workletizableModules` was removed from react-native-worklets. use `importForwarding.moduleNames`.");
|
|
18
|
+
}
|
|
19
|
+
if (hasWorkletsPlugin) return false;
|
|
20
|
+
hasWorkletsPlugin = true;
|
|
21
|
+
return true;
|
|
22
|
+
});
|
|
23
|
+
const isTypeScript = isTypeScriptSource(loadedBabelConfig.filename ?? "") || isTSXSource(loadedBabelConfig.filename ?? "");
|
|
24
|
+
if (isTypeScript) {
|
|
25
|
+
return parseWithBabel(src, loadedBabelConfig);
|
|
26
|
+
}
|
|
27
|
+
if (!isTypeScript && (hermesParser || src.includes(" @flow"))) {
|
|
28
|
+
return parseWithHermes(src, loadedBabelConfig);
|
|
29
|
+
}
|
|
30
|
+
return parseWithBabel(src, loadedBabelConfig);
|
|
37
31
|
}
|
|
38
32
|
function parseWithHermes(src, babelConfig) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
const sourceAst = require("hermes-parser").parse(src, {
|
|
34
|
+
babel: true,
|
|
35
|
+
sourceType: babelConfig.sourceType
|
|
36
|
+
});
|
|
37
|
+
return babel.transformFromAstSync(sourceAst, src, babelConfig);
|
|
44
38
|
}
|
|
45
39
|
function parseWithBabel(src, babelConfig) {
|
|
46
|
-
|
|
40
|
+
return babel.transformSync(src, babelConfig);
|
|
47
41
|
}
|
|
42
|
+
|
|
48
43
|
export { transformSync };
|
|
49
44
|
//# sourceMappingURL=transformSync.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"transformSync.js","names":[],"sources":["esm/transformer/transformSync.js"],"sourcesContent":["import * as babel from \"./babel-core\";\nfunction isTypeScriptSource(fileName) {\n return fileName?.endsWith(\".ts\");\n}\nfunction isTSXSource(fileName) {\n return fileName?.endsWith(\".tsx\");\n}\nfunction transformSync(src, babelConfig, { hermesParser }) {\n const loadedBabelConfig = babel.loadOptions(\n babelConfig\n );\n if (!loadedBabelConfig) return null;\n let hasWorkletsPlugin = false;\n loadedBabelConfig.plugins = loadedBabelConfig.plugins?.filter((plugin) => {\n const workletsPlugin = plugin;\n if (workletsPlugin.key !== \"worklets\") return true;\n if (workletsPlugin.options && \"workletizableModules\" in workletsPlugin.options) {\n throw new Error(\n \"[vxrn] `workletizableModules` was removed from react-native-worklets. use `importForwarding.moduleNames`.\"\n );\n }\n if (hasWorkletsPlugin) return false;\n hasWorkletsPlugin = true;\n return true;\n });\n const isTypeScript = isTypeScriptSource(loadedBabelConfig.filename ?? \"\") || isTSXSource(loadedBabelConfig.filename ?? \"\");\n if (isTypeScript) {\n return parseWithBabel(src, loadedBabelConfig);\n }\n if (!isTypeScript && // The Hermes parser doesn't support comments or babel proposals such as export default from, meaning it has lower compatibility with larger parts\n // of the ecosystem.\n // However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.\n // We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.\n (hermesParser || src.includes(\" @flow\"))) {\n return parseWithHermes(src, loadedBabelConfig);\n }\n return parseWithBabel(src, loadedBabelConfig);\n}\nfunction parseWithHermes(src, babelConfig) {\n const sourceAst = require(\"hermes-parser\").parse(src, {\n babel: true,\n sourceType: babelConfig.sourceType\n });\n return babel.transformFromAstSync(sourceAst, src, babelConfig);\n}\nfunction parseWithBabel(src, babelConfig) {\n return babel.transformSync(src, babelConfig);\n}\nexport {\n transformSync\n};\n//# sourceMappingURL=transformSync.js.map\n"],"mappings":";;;;;;;;;;AACA,SAAS,mBAAmB,UAAU;CACpC,OAAO,UAAU,SAAS,KAAK;AACjC;AACA,SAAS,YAAY,UAAU;CAC7B,OAAO,UAAU,SAAS,MAAM;AAClC;AACA,SAAS,cAAc,KAAK,aAAa,EAAE,gBAAgB;CACzD,MAAM,oBAAoB,MAAM,YAC9B,WACF;CACA,IAAI,CAAC,mBAAmB,OAAO;CAC/B,IAAI,oBAAoB;CACxB,kBAAkB,UAAU,kBAAkB,SAAS,QAAQ,WAAW;EACxE,MAAM,iBAAiB;EACvB,IAAI,eAAe,QAAQ,YAAY,OAAO;EAC9C,IAAI,eAAe,WAAW,0BAA0B,eAAe,SAAS;GAC9E,MAAM,IAAI,MACR,2GACF;EACF;EACA,IAAI,mBAAmB,OAAO;EAC9B,oBAAoB;EACpB,OAAO;CACT,CAAC;CACD,MAAM,eAAe,mBAAmB,kBAAkB,YAAY,EAAE,KAAK,YAAY,kBAAkB,YAAY,EAAE;CACzH,IAAI,cAAc;EAChB,OAAO,eAAe,KAAK,iBAAiB;CAC9C;CACA,IAAI,CAAC,iBAIJ,gBAAgB,IAAI,SAAS,QAAQ,IAAI;EACxC,OAAO,gBAAgB,KAAK,iBAAiB;CAC/C;CACA,OAAO,eAAe,KAAK,iBAAiB;AAC9C;AACA,SAAS,gBAAgB,KAAK,aAAa;CACzC,MAAM,sBAAoB,eAAe,CAAC,CAAC,MAAM,KAAK;EACpD,OAAO;EACP,YAAY,YAAY;CAC1B,CAAC;CACD,OAAO,MAAM,qBAAqB,WAAW,KAAK,WAAW;AAC/D;AACA,SAAS,eAAe,KAAK,aAAa;CACxC,OAAO,MAAM,cAAc,KAAK,WAAW;AAC7C"}
|
|
@@ -1,52 +1,47 @@
|
|
|
1
1
|
import * as babel from "./babel-core.native.js";
|
|
2
|
+
|
|
2
3
|
function isTypeScriptSource(fileName) {
|
|
3
|
-
|
|
4
|
+
return fileName === null || fileName === void 0 ? void 0 : fileName.endsWith(".ts");
|
|
4
5
|
}
|
|
5
6
|
function isTSXSource(fileName) {
|
|
6
|
-
|
|
7
|
+
return fileName === null || fileName === void 0 ? void 0 : fileName.endsWith(".tsx");
|
|
7
8
|
}
|
|
8
9
|
function transformSync(src, babelConfig, param) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// of the ecosystem.
|
|
34
|
-
// However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.
|
|
35
|
-
// We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.
|
|
36
|
-
hermesParser || src.includes(" @flow"))) {
|
|
37
|
-
return parseWithHermes(src, loadedBabelConfig);
|
|
38
|
-
}
|
|
39
|
-
return parseWithBabel(src, loadedBabelConfig);
|
|
10
|
+
var { hermesParser } = param;
|
|
11
|
+
var _loadedBabelConfig_filename, _loadedBabelConfig_filename1;
|
|
12
|
+
var _loadedBabelConfig_plugins;
|
|
13
|
+
var loadedBabelConfig = babel.loadOptions(babelConfig);
|
|
14
|
+
if (!loadedBabelConfig) return null;
|
|
15
|
+
var hasWorkletsPlugin = false;
|
|
16
|
+
loadedBabelConfig.plugins = (_loadedBabelConfig_plugins = loadedBabelConfig.plugins) === null || _loadedBabelConfig_plugins === void 0 ? void 0 : _loadedBabelConfig_plugins.filter(function(plugin) {
|
|
17
|
+
var workletsPlugin = plugin;
|
|
18
|
+
if (workletsPlugin.key !== "worklets") return true;
|
|
19
|
+
if (workletsPlugin.options && "workletizableModules" in workletsPlugin.options) {
|
|
20
|
+
throw new Error("[vxrn] `workletizableModules` was removed from react-native-worklets. use `importForwarding.moduleNames`.");
|
|
21
|
+
}
|
|
22
|
+
if (hasWorkletsPlugin) return false;
|
|
23
|
+
hasWorkletsPlugin = true;
|
|
24
|
+
return true;
|
|
25
|
+
});
|
|
26
|
+
var isTypeScript = isTypeScriptSource((_loadedBabelConfig_filename = loadedBabelConfig.filename) !== null && _loadedBabelConfig_filename !== void 0 ? _loadedBabelConfig_filename : "") || isTSXSource((_loadedBabelConfig_filename1 = loadedBabelConfig.filename) !== null && _loadedBabelConfig_filename1 !== void 0 ? _loadedBabelConfig_filename1 : "");
|
|
27
|
+
if (isTypeScript) {
|
|
28
|
+
return parseWithBabel(src, loadedBabelConfig);
|
|
29
|
+
}
|
|
30
|
+
if (!isTypeScript && (hermesParser || src.includes(" @flow"))) {
|
|
31
|
+
return parseWithHermes(src, loadedBabelConfig);
|
|
32
|
+
}
|
|
33
|
+
return parseWithBabel(src, loadedBabelConfig);
|
|
40
34
|
}
|
|
41
35
|
function parseWithHermes(src, babelConfig) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
36
|
+
var sourceAst = require("hermes-parser").parse(src, {
|
|
37
|
+
babel: true,
|
|
38
|
+
sourceType: babelConfig.sourceType
|
|
39
|
+
});
|
|
40
|
+
return babel.transformFromAstSync(sourceAst, src, babelConfig);
|
|
47
41
|
}
|
|
48
42
|
function parseWithBabel(src, babelConfig) {
|
|
49
|
-
|
|
43
|
+
return babel.transformSync(src, babelConfig);
|
|
50
44
|
}
|
|
45
|
+
|
|
51
46
|
export { transformSync };
|
|
52
47
|
//# sourceMappingURL=transformSync.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"transformSync.native.js","names":[],"sources":["esm/transformer/transformSync.native.js"],"sourcesContent":["import * as babel from \"./babel-core\";\nfunction isTypeScriptSource(fileName) {\n return fileName === null || fileName === void 0 ? void 0 : fileName.endsWith(\".ts\");\n}\nfunction isTSXSource(fileName) {\n return fileName === null || fileName === void 0 ? void 0 : fileName.endsWith(\".tsx\");\n}\nfunction transformSync(src, babelConfig, param) {\n var { hermesParser } = param;\n var _loadedBabelConfig_filename, _loadedBabelConfig_filename1;\n var _loadedBabelConfig_plugins;\n var loadedBabelConfig = babel.loadOptions(babelConfig);\n if (!loadedBabelConfig) return null;\n var hasWorkletsPlugin = false;\n loadedBabelConfig.plugins = (_loadedBabelConfig_plugins = loadedBabelConfig.plugins) === null || _loadedBabelConfig_plugins === void 0 ? void 0 : _loadedBabelConfig_plugins.filter(function(plugin) {\n var workletsPlugin = plugin;\n if (workletsPlugin.key !== \"worklets\") return true;\n if (workletsPlugin.options && \"workletizableModules\" in workletsPlugin.options) {\n throw new Error(\"[vxrn] `workletizableModules` was removed from react-native-worklets. use `importForwarding.moduleNames`.\");\n }\n if (hasWorkletsPlugin) return false;\n hasWorkletsPlugin = true;\n return true;\n });\n var isTypeScript = isTypeScriptSource((_loadedBabelConfig_filename = loadedBabelConfig.filename) !== null && _loadedBabelConfig_filename !== void 0 ? _loadedBabelConfig_filename : \"\") || isTSXSource((_loadedBabelConfig_filename1 = loadedBabelConfig.filename) !== null && _loadedBabelConfig_filename1 !== void 0 ? _loadedBabelConfig_filename1 : \"\");\n if (isTypeScript) {\n return parseWithBabel(src, loadedBabelConfig);\n }\n if (!isTypeScript && // The Hermes parser doesn't support comments or babel proposals such as export default from, meaning it has lower compatibility with larger parts\n // of the ecosystem.\n // However, React Native ships with flow syntax that isn't supported in Babel so we need to use Hermes for those files.\n // We can try to quickly detect if the file uses flow syntax by checking for the @flow pragma which is present in every React Native file.\n (hermesParser || src.includes(\" @flow\"))) {\n return parseWithHermes(src, loadedBabelConfig);\n }\n return parseWithBabel(src, loadedBabelConfig);\n}\nfunction parseWithHermes(src, babelConfig) {\n var sourceAst = require(\"hermes-parser\").parse(src, {\n babel: true,\n sourceType: babelConfig.sourceType\n });\n return babel.transformFromAstSync(sourceAst, src, babelConfig);\n}\nfunction parseWithBabel(src, babelConfig) {\n return babel.transformSync(src, babelConfig);\n}\nexport {\n transformSync\n};\n//# sourceMappingURL=transformSync.js.map\n"],"mappings":";;;;;;;;;;AACA,SAAS,mBAAmB,UAAU;CACpC,OAAO,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,SAAS,KAAK;AACpF;AACA,SAAS,YAAY,UAAU;CAC7B,OAAO,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,SAAS,MAAM;AACrF;AACA,SAAS,cAAc,KAAK,aAAa,OAAO;CAC9C,IAAI,EAAE,iBAAiB;CACvB,IAAI,6BAA6B;CACjC,IAAI;CACJ,IAAI,oBAAoB,MAAM,YAAY,WAAW;CACrD,IAAI,CAAC,mBAAmB,OAAO;CAC/B,IAAI,oBAAoB;CACxB,kBAAkB,WAAW,6BAA6B,kBAAkB,aAAa,QAAQ,+BAA+B,KAAK,IAAI,KAAK,IAAI,2BAA2B,OAAO,SAAS,QAAQ;EACnM,IAAI,iBAAiB;EACrB,IAAI,eAAe,QAAQ,YAAY,OAAO;EAC9C,IAAI,eAAe,WAAW,0BAA0B,eAAe,SAAS;GAC9E,MAAM,IAAI,MAAM,2GAA2G;EAC7H;EACA,IAAI,mBAAmB,OAAO;EAC9B,oBAAoB;EACpB,OAAO;CACT,CAAC;CACD,IAAI,eAAe,oBAAoB,8BAA8B,kBAAkB,cAAc,QAAQ,gCAAgC,KAAK,IAAI,8BAA8B,EAAE,KAAK,aAAa,+BAA+B,kBAAkB,cAAc,QAAQ,iCAAiC,KAAK,IAAI,+BAA+B,EAAE;CAC1V,IAAI,cAAc;EAChB,OAAO,eAAe,KAAK,iBAAiB;CAC9C;CACA,IAAI,CAAC,iBAIJ,gBAAgB,IAAI,SAAS,QAAQ,IAAI;EACxC,OAAO,gBAAgB,KAAK,iBAAiB;CAC/C;CACA,OAAO,eAAe,KAAK,iBAAiB;AAC9C;AACA,SAAS,gBAAgB,KAAK,aAAa;CACzC,IAAI,sBAAoB,eAAe,CAAC,CAAC,MAAM,KAAK;EAClD,OAAO;EACP,YAAY,YAAY;CAC1B,CAAC;CACD,OAAO,MAAM,qBAAqB,WAAW,KAAK,WAAW;AAC/D;AACA,SAAS,eAAe,KAAK,aAAa;CACxC,OAAO,MAAM,cAAc,KAAK,WAAW;AAC7C"}
|
package/dist/esm/utils/exit.mjs
CHANGED
|
@@ -1,135 +1,146 @@
|
|
|
1
1
|
import { ChildProcess } from "node:child_process";
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
import colors from "picocolors";
|
|
4
|
-
|
|
5
|
-
const
|
|
4
|
+
|
|
5
|
+
const debug = ((..._) => {});
|
|
6
|
+
const PRE_EXIT_SIGNALS = [
|
|
7
|
+
"SIGHUP",
|
|
8
|
+
"SIGINT",
|
|
9
|
+
"SIGTERM",
|
|
10
|
+
"SIGBREAK"
|
|
11
|
+
];
|
|
6
12
|
const queue = [];
|
|
7
13
|
let unsubscribe = null;
|
|
8
14
|
function installExitHooks(asyncExitHook) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
if (!queue.length) {
|
|
16
|
+
unsubscribe = attachMasterListener();
|
|
17
|
+
}
|
|
18
|
+
queue.push(asyncExitHook);
|
|
19
|
+
return () => {
|
|
20
|
+
const index = queue.indexOf(asyncExitHook);
|
|
21
|
+
if (index >= 0) {
|
|
22
|
+
queue.splice(index, 1);
|
|
23
|
+
}
|
|
24
|
+
if (!queue.length) {
|
|
25
|
+
unsubscribe?.();
|
|
26
|
+
}
|
|
27
|
+
};
|
|
22
28
|
}
|
|
23
29
|
function createExitHook(signal) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
return guardAsync(async () => {
|
|
31
|
+
debug(`pre-exit (signal: ${signal}, queue length: ${queue.length})`);
|
|
32
|
+
for (const [index, hookAsync] of Object.entries(queue)) {
|
|
33
|
+
try {
|
|
34
|
+
await hookAsync(signal);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
debug(`Error in exit hook: %O (queue: ${index})`, error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
debug(`post-exit (code: ${process.exitCode ?? 0})`);
|
|
40
|
+
process.exit();
|
|
41
|
+
});
|
|
36
42
|
}
|
|
37
43
|
function attachMasterListener() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
const hooks = [];
|
|
45
|
+
for (const signal of PRE_EXIT_SIGNALS) {
|
|
46
|
+
const hook = createExitHook(signal);
|
|
47
|
+
hooks.push([signal, hook]);
|
|
48
|
+
process.on(signal, hook);
|
|
49
|
+
}
|
|
50
|
+
return () => {
|
|
51
|
+
for (const [signal, hook] of hooks) {
|
|
52
|
+
process.removeListener(signal, hook);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
49
55
|
}
|
|
50
56
|
function ensureProcessExitsAfterDelay(waitUntilExitMs = 1e4, startedAtMs = Date.now()) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
const expectedResources = [
|
|
58
|
+
process.stdout.isTTY ? "TTYWrap" : "PipeWrap",
|
|
59
|
+
process.stderr.isTTY ? "TTYWrap" : "PipeWrap",
|
|
60
|
+
process.stdin.isTTY ? "TTYWrap" : "PipeWrap"
|
|
61
|
+
];
|
|
62
|
+
const activeResources = process.getActiveResourcesInfo();
|
|
63
|
+
const unexpectedActiveResources = activeResources.filter((activeResource) => {
|
|
64
|
+
const index = expectedResources.indexOf(activeResource);
|
|
65
|
+
if (index >= 0) {
|
|
66
|
+
expectedResources.splice(index, 1);
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
});
|
|
71
|
+
const canExitProcess = !unexpectedActiveResources.length;
|
|
72
|
+
if (canExitProcess) {
|
|
73
|
+
return debug("no active resources detected, process can safely exit");
|
|
74
|
+
}
|
|
75
|
+
debug(`process is trying to exit, but is stuck on unexpected active resources:`, unexpectedActiveResources);
|
|
76
|
+
const elapsedTime = Date.now() - startedAtMs;
|
|
77
|
+
const killedChildren = killActiveChildProcesses(elapsedTime < 200 ? "SIGTERM" : "SIGKILL");
|
|
78
|
+
if (killedChildren > 0) {
|
|
79
|
+
const recheck = setTimeout(() => {
|
|
80
|
+
clearTimeout(recheck);
|
|
81
|
+
ensureProcessExitsAfterDelay(waitUntilExitMs, startedAtMs);
|
|
82
|
+
}, 50);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (elapsedTime > waitUntilExitMs) {
|
|
86
|
+
debug("active handles detected past the exit delay, forcefully exiting:", activeResources);
|
|
87
|
+
tryWarnActiveProcesses();
|
|
88
|
+
return process.exit(0);
|
|
89
|
+
}
|
|
90
|
+
const timeoutId = setTimeout(() => {
|
|
91
|
+
clearTimeout(timeoutId);
|
|
92
|
+
ensureProcessExitsAfterDelay(waitUntilExitMs, startedAtMs);
|
|
93
|
+
}, 100);
|
|
84
94
|
}
|
|
85
95
|
function killActiveChildProcesses(signal) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
try {
|
|
97
|
+
const children = process._getActiveHandles().filter((handle) => handle instanceof ChildProcess);
|
|
98
|
+
for (const child of children) {
|
|
99
|
+
try {
|
|
100
|
+
child.kill(signal);
|
|
101
|
+
} catch (err) {
|
|
102
|
+
debug("failed to kill child process:", err);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return children.length;
|
|
106
|
+
} catch (err) {
|
|
107
|
+
debug("failed to enumerate active child processes:", err);
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
100
110
|
}
|
|
101
111
|
function tryWarnActiveProcesses() {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
let activeProcesses = [];
|
|
113
|
+
try {
|
|
114
|
+
const children = process._getActiveHandles().filter((handle) => handle instanceof ChildProcess);
|
|
115
|
+
if (children.length) {
|
|
116
|
+
activeProcesses = children.map((child) => child.spawnargs.join(" "));
|
|
117
|
+
}
|
|
118
|
+
} catch (error) {
|
|
119
|
+
debug("failed to get active process information:", error);
|
|
120
|
+
}
|
|
121
|
+
if (!activeProcesses.length) {
|
|
122
|
+
warn("Something prevented Expo from exiting, forcefully exiting now.");
|
|
123
|
+
} else {
|
|
124
|
+
const singularOrPlural = activeProcesses.length === 1 ? "1 process" : `${activeProcesses.length} processes`;
|
|
125
|
+
warn(`Detected ${singularOrPlural} preventing process from exiting, forcefully exiting now.`);
|
|
126
|
+
warn(" - " + activeProcesses.join("\n - "));
|
|
127
|
+
}
|
|
118
128
|
}
|
|
119
129
|
function guardAsync(fn) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
let invoked = false;
|
|
131
|
+
let returnValue;
|
|
132
|
+
const guard = async (...args) => {
|
|
133
|
+
if (!invoked) {
|
|
134
|
+
invoked = true;
|
|
135
|
+
returnValue = await fn(...args);
|
|
136
|
+
}
|
|
137
|
+
return returnValue;
|
|
138
|
+
};
|
|
139
|
+
return guard;
|
|
130
140
|
}
|
|
131
141
|
function warn(...message) {
|
|
132
|
-
|
|
142
|
+
console.warn(...message.map((value) => colors.yellow(value)));
|
|
133
143
|
}
|
|
144
|
+
|
|
134
145
|
export { ensureProcessExitsAfterDelay, guardAsync, installExitHooks, warn };
|
|
135
146
|
//# sourceMappingURL=exit.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"exit.js","names":[],"sources":["esm/utils/exit.js"],"sourcesContent":["import { ChildProcess } from \"node:child_process\";\nimport process from \"node:process\";\nimport colors from \"picocolors\";\nconst debug = ((..._) => {\n});\nconst PRE_EXIT_SIGNALS = [\"SIGHUP\", \"SIGINT\", \"SIGTERM\", \"SIGBREAK\"];\nconst queue = [];\nlet unsubscribe = null;\nfunction installExitHooks(asyncExitHook) {\n if (!queue.length) {\n unsubscribe = attachMasterListener();\n }\n queue.push(asyncExitHook);\n return () => {\n const index = queue.indexOf(asyncExitHook);\n if (index >= 0) {\n queue.splice(index, 1);\n }\n if (!queue.length) {\n unsubscribe?.();\n }\n };\n}\nfunction createExitHook(signal) {\n return guardAsync(async () => {\n debug(`pre-exit (signal: ${signal}, queue length: ${queue.length})`);\n for (const [index, hookAsync] of Object.entries(queue)) {\n try {\n await hookAsync(signal);\n } catch (error) {\n debug(`Error in exit hook: %O (queue: ${index})`, error);\n }\n }\n debug(`post-exit (code: ${process.exitCode ?? 0})`);\n process.exit();\n });\n}\nfunction attachMasterListener() {\n const hooks = [];\n for (const signal of PRE_EXIT_SIGNALS) {\n const hook = createExitHook(signal);\n hooks.push([signal, hook]);\n process.on(signal, hook);\n }\n return () => {\n for (const [signal, hook] of hooks) {\n process.removeListener(signal, hook);\n }\n };\n}\nfunction ensureProcessExitsAfterDelay(waitUntilExitMs = 1e4, startedAtMs = Date.now()) {\n const expectedResources = [\n process.stdout.isTTY ? \"TTYWrap\" : \"PipeWrap\",\n process.stderr.isTTY ? \"TTYWrap\" : \"PipeWrap\",\n process.stdin.isTTY ? \"TTYWrap\" : \"PipeWrap\"\n ];\n const activeResources = process.getActiveResourcesInfo();\n const unexpectedActiveResources = activeResources.filter((activeResource) => {\n const index = expectedResources.indexOf(activeResource);\n if (index >= 0) {\n expectedResources.splice(index, 1);\n return false;\n }\n return true;\n });\n const canExitProcess = !unexpectedActiveResources.length;\n if (canExitProcess) {\n return debug(\"no active resources detected, process can safely exit\");\n }\n debug(\n `process is trying to exit, but is stuck on unexpected active resources:`,\n unexpectedActiveResources\n );\n const elapsedTime = Date.now() - startedAtMs;\n const killedChildren = killActiveChildProcesses(\n elapsedTime < 200 ? \"SIGTERM\" : \"SIGKILL\"\n );\n if (killedChildren > 0) {\n const recheck = setTimeout(() => {\n clearTimeout(recheck);\n ensureProcessExitsAfterDelay(waitUntilExitMs, startedAtMs);\n }, 50);\n return;\n }\n if (elapsedTime > waitUntilExitMs) {\n debug(\n \"active handles detected past the exit delay, forcefully exiting:\",\n activeResources\n );\n tryWarnActiveProcesses();\n return process.exit(0);\n }\n const timeoutId = setTimeout(() => {\n clearTimeout(timeoutId);\n ensureProcessExitsAfterDelay(waitUntilExitMs, startedAtMs);\n }, 100);\n}\nfunction killActiveChildProcesses(signal) {\n try {\n const children = process._getActiveHandles().filter((handle) => handle instanceof ChildProcess);\n for (const child of children) {\n try {\n child.kill(signal);\n } catch (err) {\n debug(\"failed to kill child process:\", err);\n }\n }\n return children.length;\n } catch (err) {\n debug(\"failed to enumerate active child processes:\", err);\n return 0;\n }\n}\nfunction tryWarnActiveProcesses() {\n let activeProcesses = [];\n try {\n const children = process._getActiveHandles().filter((handle) => handle instanceof ChildProcess);\n if (children.length) {\n activeProcesses = children.map((child) => child.spawnargs.join(\" \"));\n }\n } catch (error) {\n debug(\"failed to get active process information:\", error);\n }\n if (!activeProcesses.length) {\n warn(\"Something prevented Expo from exiting, forcefully exiting now.\");\n } else {\n const singularOrPlural = activeProcesses.length === 1 ? \"1 process\" : `${activeProcesses.length} processes`;\n warn(\n `Detected ${singularOrPlural} preventing process from exiting, forcefully exiting now.`\n );\n warn(\" - \" + activeProcesses.join(\"\\n - \"));\n }\n}\nfunction guardAsync(fn) {\n let invoked = false;\n let returnValue;\n const guard = async (...args) => {\n if (!invoked) {\n invoked = true;\n returnValue = await fn(...args);\n }\n return returnValue;\n };\n return guard;\n}\nfunction warn(...message) {\n console.warn(...message.map((value) => colors.yellow(value)));\n}\nexport {\n ensureProcessExitsAfterDelay,\n guardAsync,\n installExitHooks,\n warn\n};\n//# sourceMappingURL=exit.js.map\n"],"mappings":"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"}
|