@expo/cli 0.14.0 → 0.16.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/build/bin/cli +13 -5
- package/build/bin/cli.map +1 -1
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/rest/cache/response.js.map +1 -1
- package/build/src/api/rest/client.js +2 -2
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/user/actions.js +1 -1
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/customize/typescript.js +3 -1
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +5 -3
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +92 -18
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +3 -3
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +97 -0
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -0
- package/build/src/export/exportApp.js +106 -130
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +93 -38
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +1 -1
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportHermes.js +0 -90
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +165 -101
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +13 -5
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +84 -57
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/index.js +9 -7
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +101 -0
- package/build/src/export/metroAssetLocalPath.js.map +1 -0
- package/build/src/export/persistMetroAssets.js +115 -31
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +7 -0
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +1 -1
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +168 -43
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +1 -1
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/writeContents.js +8 -106
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/install/applyPlugins.js +52 -0
- package/build/src/install/applyPlugins.js.map +1 -0
- package/build/src/install/checkPackages.js +2 -2
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +84 -0
- package/build/src/install/fixPackages.js.map +1 -0
- package/build/src/install/installAsync.js +50 -60
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +79 -0
- package/build/src/install/installExpoPackage.js.map +1 -0
- package/build/src/prebuild/clearNativeFolder.js +1 -1
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +3 -3
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +21 -30
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +45 -16
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +2 -2
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +6 -6
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +49 -36
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +2 -2
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/run/hints.js +4 -0
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +101 -0
- package/build/src/run/index.js.map +1 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +2 -2
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +22 -7
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +66 -0
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +22 -33
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +54 -19
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +14 -10
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +6 -1
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +63 -0
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
- package/build/src/start/server/getStaticRenderFunctions.js +25 -23
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +76 -69
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +6 -2
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +18 -1
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/bundleApiRoutes.js +5 -3
- package/build/src/start/server/metro/bundleApiRoutes.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +80 -46
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +152 -0
- package/build/src/start/server/metro/createJResolver.js.map +1 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js +15 -2
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/{inspector-proxy/device.js → debugging/InspectorDevice.js} +10 -38
- package/build/src/start/server/metro/debugging/InspectorDevice.js.map +1 -0
- package/build/src/start/server/metro/debugging/InspectorProxy.js +116 -0
- package/build/src/start/server/metro/debugging/InspectorProxy.js.map +1 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +45 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -0
- package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/NetworkResponse.js +3 -4
- package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +1 -0
- package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/VscodeDebuggerGetPossibleBreakpoints.js +5 -6
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/VscodeDebuggerScriptParsed.js +3 -2
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +1 -0
- package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/VscodeDebuggerSetBreakpointByUrl.js +3 -2
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +24 -0
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/VscodeRuntimeGetProperties.js +5 -4
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +1 -0
- package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js +20 -0
- package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +1 -0
- package/build/src/start/server/metro/externals.js +25 -3
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +40 -15
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +3 -2
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/router.js +5 -6
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +17 -27
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +59 -0
- package/build/src/start/server/metro/serializeHtml.js.map +1 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +1 -2
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +237 -214
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +114 -40
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +61 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js +2 -2
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +22 -66
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +23 -2
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +30 -26
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +7 -7
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +5 -2
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +3 -2
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +8 -7
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +176 -0
- package/build/src/start/server/middleware/metroOptions.js.map +1 -0
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +1 -1
- package/build/src/start/server/type-generation/__typetests__/route.test.js +11 -3
- package/build/src/start/server/type-generation/__typetests__/route.test.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +6 -4
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/utils/analytics/getMetroDebugProperties.js +1 -2
- package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
- package/build/src/utils/analytics/getMetroProperties.js +1 -2
- package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
- package/build/src/utils/analytics/rudderstackClient.js +2 -2
- package/build/src/utils/args.js +4 -2
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/cocoapods.js +1 -1
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +11 -1
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/dir.js +18 -8
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/env.js +10 -1
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +2 -4
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/prompts.js +1 -28
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +3 -11
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +22 -12
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/package.json +19 -18
- package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
- package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
- package/static/template/index.html +14 -95
- package/build/src/export/printBundleSizes.js +0 -101
- package/build/src/export/printBundleSizes.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/device.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/NetworkResponse.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/PageReload.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerScriptParsed.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/VscodeRuntimeGetProperties.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/handlers/types.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/index.js +0 -27
- package/build/src/start/server/metro/inspector-proxy/index.js.map +0 -1
- package/build/src/start/server/metro/inspector-proxy/proxy.js +0 -169
- package/build/src/start/server/metro/inspector-proxy/proxy.js.map +0 -1
- package/build/src/start/server/metro/resolveFromProject.js +0 -90
- package/build/src/start/server/metro/resolveFromProject.js.map +0 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +0 -64
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +0 -1
- /package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/PageReload.js +0 -0
- /package/build/src/start/server/metro/{inspector-proxy/handlers → debugging/inspectorHandlers}/types.js +0 -0
|
@@ -8,13 +8,12 @@ exports.shouldAliasAssetRegistryForWeb = shouldAliasAssetRegistryForWeb;
|
|
|
8
8
|
exports.shouldAliasModule = shouldAliasModule;
|
|
9
9
|
exports.withMetroMultiPlatformAsync = withMetroMultiPlatformAsync;
|
|
10
10
|
var _fs = _interopRequireDefault(require("fs"));
|
|
11
|
+
var metroResolver = _interopRequireWildcard(require("metro-resolver"));
|
|
11
12
|
var _path = _interopRequireDefault(require("path"));
|
|
12
13
|
var _resolveFrom = _interopRequireDefault(require("resolve-from"));
|
|
13
14
|
var _createExpoMetroResolver = require("./createExpoMetroResolver");
|
|
14
15
|
var _externals = require("./externals");
|
|
15
16
|
var _metroErrors = require("./metroErrors");
|
|
16
|
-
var _resolveFromProject = require("./resolveFromProject");
|
|
17
|
-
var _router = require("./router");
|
|
18
17
|
var _withMetroResolvers = require("./withMetroResolvers");
|
|
19
18
|
var _log = require("../../../log");
|
|
20
19
|
var _fileNotifier = require("../../../utils/FileNotifier");
|
|
@@ -29,22 +28,43 @@ function _interopRequireDefault(obj) {
|
|
|
29
28
|
default: obj
|
|
30
29
|
};
|
|
31
30
|
}
|
|
31
|
+
function _interopRequireWildcard(obj) {
|
|
32
|
+
if (obj && obj.__esModule) {
|
|
33
|
+
return obj;
|
|
34
|
+
} else {
|
|
35
|
+
var newObj = {};
|
|
36
|
+
if (obj != null) {
|
|
37
|
+
for(var key in obj){
|
|
38
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
39
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
40
|
+
if (desc.get || desc.set) {
|
|
41
|
+
Object.defineProperty(newObj, key, desc);
|
|
42
|
+
} else {
|
|
43
|
+
newObj[key] = obj[key];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
newObj.default = obj;
|
|
49
|
+
return newObj;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
32
52
|
const debug = require("debug")("expo:start:server:metro:multi-platform");
|
|
33
|
-
function withWebPolyfills(config
|
|
53
|
+
function withWebPolyfills(config) {
|
|
34
54
|
const originalGetPolyfills = config.serializer.getPolyfills ? config.serializer.getPolyfills.bind(config.serializer) : ()=>[]
|
|
35
55
|
;
|
|
36
56
|
const getPolyfills = (ctx)=>{
|
|
37
57
|
if (ctx.platform === "web") {
|
|
38
58
|
return [
|
|
39
59
|
// NOTE: We might need this for all platforms
|
|
40
|
-
_path.default.join(projectRoot, _externals.EXTERNAL_REQUIRE_POLYFILL)
|
|
60
|
+
_path.default.join(config.projectRoot, _externals.EXTERNAL_REQUIRE_POLYFILL)
|
|
41
61
|
];
|
|
42
62
|
}
|
|
43
63
|
// Generally uses `rn-get-polyfills`
|
|
44
64
|
const polyfills = originalGetPolyfills(ctx);
|
|
45
65
|
return [
|
|
46
66
|
...polyfills,
|
|
47
|
-
_externals.EXTERNAL_REQUIRE_NATIVE_POLYFILL
|
|
67
|
+
_path.default.join(config.projectRoot, _externals.EXTERNAL_REQUIRE_NATIVE_POLYFILL)
|
|
48
68
|
];
|
|
49
69
|
};
|
|
50
70
|
return {
|
|
@@ -71,38 +91,37 @@ function getNodejsExtensions(srcExts) {
|
|
|
71
91
|
nodejsSourceExtensions.splice(jsIndex + 1, 0, ...mjsExts);
|
|
72
92
|
return nodejsSourceExtensions;
|
|
73
93
|
}
|
|
74
|
-
function withExtendedResolver(config, {
|
|
75
|
-
var ref2;
|
|
94
|
+
function withExtendedResolver(config, { tsconfig , isTsconfigPathsEnabled , isFastResolverEnabled , isExporting }) {
|
|
95
|
+
var ref5, ref1, ref2, ref3;
|
|
76
96
|
if (isFastResolverEnabled) {
|
|
77
97
|
_log.Log.warn(`Experimental bundling features are enabled.`);
|
|
78
98
|
}
|
|
79
99
|
// Get the `transformer.assetRegistryPath`
|
|
80
100
|
// this needs to be unified since you can't dynamically
|
|
81
101
|
// swap out the transformer based on platform.
|
|
82
|
-
const assetRegistryPath = _fs.default.realpathSync(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
try {
|
|
86
|
-
reactNativeWebAppContainer = _fs.default.realpathSync(// This is the native asset registry alias for native.
|
|
87
|
-
_path.default.resolve((0, _resolveFrom).default(projectRoot, "expo-router/build/fork/react-native-web-container")));
|
|
88
|
-
} catch {}
|
|
89
|
-
const isWebEnabled = platforms.includes("web");
|
|
90
|
-
var ref1;
|
|
102
|
+
const assetRegistryPath = _fs.default.realpathSync(_path.default.resolve((0, _resolveFrom).default(config.projectRoot, "@react-native/assets-registry/registry.js")));
|
|
103
|
+
const defaultResolver = metroResolver.resolve;
|
|
104
|
+
var ref4;
|
|
91
105
|
const resolver = isFastResolverEnabled ? (0, _createExpoMetroResolver).createFastResolver({
|
|
92
|
-
preserveSymlinks: (
|
|
93
|
-
|
|
94
|
-
|
|
106
|
+
preserveSymlinks: (ref4 = (ref5 = config.resolver) == null ? void 0 : ref5.unstable_enableSymlinks) != null ? ref4 : true,
|
|
107
|
+
blockList: Array.isArray((ref1 = config.resolver) == null ? void 0 : ref1.blockList) ? (ref2 = config.resolver) == null ? void 0 : ref2.blockList : [
|
|
108
|
+
(ref3 = config.resolver) == null ? void 0 : ref3.blockList
|
|
109
|
+
]
|
|
110
|
+
}) : defaultResolver;
|
|
95
111
|
const aliases = {
|
|
96
112
|
web: {
|
|
97
113
|
"react-native": "react-native-web",
|
|
98
114
|
"react-native/index": "react-native-web"
|
|
99
115
|
}
|
|
100
116
|
};
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
117
|
+
const universalAliases = [];
|
|
118
|
+
// This package is currently always installed as it is included in the `expo` package.
|
|
119
|
+
if (_resolveFrom.default.silent(config.projectRoot, "@expo/vector-icons")) {
|
|
120
|
+
debug("Enabling alias: react-native-vector-icons -> @expo/vector-icons");
|
|
121
|
+
universalAliases.push([
|
|
122
|
+
/^react-native-vector-icons(\/.*)?/,
|
|
123
|
+
"@expo/vector-icons$1"
|
|
124
|
+
]);
|
|
106
125
|
}
|
|
107
126
|
const preferredMainFields = {
|
|
108
127
|
// Defaults from Expo Webpack. Most packages using `react-native` don't support web
|
|
@@ -114,208 +133,213 @@ function withExtendedResolver(config, { projectRoot , tsconfig , platforms , isT
|
|
|
114
133
|
"main"
|
|
115
134
|
]
|
|
116
135
|
};
|
|
117
|
-
var _paths1;
|
|
136
|
+
var _paths1, _baseUrl1;
|
|
118
137
|
let tsConfigResolve = (tsconfig == null ? void 0 : tsconfig.paths) ? _resolveWithTsConfigPaths.resolveWithTsConfigPaths.bind(_resolveWithTsConfigPaths.resolveWithTsConfigPaths, {
|
|
119
138
|
paths: (_paths1 = tsconfig.paths) != null ? _paths1 : {},
|
|
120
|
-
baseUrl: tsconfig.baseUrl
|
|
139
|
+
baseUrl: (_baseUrl1 = tsconfig.baseUrl) != null ? _baseUrl1 : config.projectRoot,
|
|
140
|
+
hasBaseUrl: !!tsconfig.baseUrl
|
|
121
141
|
}) : null;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
// TODO: Move this to be a transform key for invalidation.
|
|
143
|
+
if (!isExporting && (0, _interactive).isInteractive()) {
|
|
144
|
+
if (isTsconfigPathsEnabled) {
|
|
145
|
+
// TODO: We should track all the files that used imports and invalidate them
|
|
146
|
+
// currently the user will need to save all the files that use imports to
|
|
147
|
+
// use the new aliases.
|
|
148
|
+
const configWatcher = new _fileNotifier.FileNotifier(config.projectRoot, [
|
|
149
|
+
"./tsconfig.json",
|
|
150
|
+
"./jsconfig.json",
|
|
151
|
+
]);
|
|
152
|
+
configWatcher.startObserving(()=>{
|
|
153
|
+
debug("Reloading tsconfig.json");
|
|
154
|
+
(0, _loadTsConfigPaths).loadTsConfigPathsAsync(config.projectRoot).then((tsConfigPaths)=>{
|
|
155
|
+
if ((tsConfigPaths == null ? void 0 : tsConfigPaths.paths) && !!Object.keys(tsConfigPaths.paths).length) {
|
|
156
|
+
debug("Enabling tsconfig.json paths support");
|
|
157
|
+
var _paths, _baseUrl;
|
|
158
|
+
tsConfigResolve = _resolveWithTsConfigPaths.resolveWithTsConfigPaths.bind(_resolveWithTsConfigPaths.resolveWithTsConfigPaths, {
|
|
159
|
+
paths: (_paths = tsConfigPaths.paths) != null ? _paths : {},
|
|
160
|
+
baseUrl: (_baseUrl = tsConfigPaths.baseUrl) != null ? _baseUrl : config.projectRoot,
|
|
161
|
+
hasBaseUrl: !!tsConfigPaths.baseUrl
|
|
162
|
+
});
|
|
163
|
+
} else {
|
|
164
|
+
debug("Disabling tsconfig.json paths support");
|
|
165
|
+
tsConfigResolve = null;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
144
168
|
});
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
|
|
169
|
+
// TODO: This probably prevents the process from exiting.
|
|
170
|
+
(0, _exit).installExitHooks(()=>{
|
|
171
|
+
configWatcher.stopObserving();
|
|
172
|
+
});
|
|
173
|
+
} else {
|
|
174
|
+
debug("Skipping tsconfig.json paths support");
|
|
175
|
+
}
|
|
152
176
|
}
|
|
153
177
|
let nodejsSourceExtensions = null;
|
|
154
|
-
const shimsFolder = _path.default.join(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
// Adjust nodejs source extensions to sort mjs after js, including platform variants.
|
|
173
|
-
if (nodejsSourceExtensions === null) {
|
|
174
|
-
nodejsSourceExtensions = getNodejsExtensions(context.sourceExts);
|
|
178
|
+
const shimsFolder = _path.default.join(config.projectRoot, _externals.METRO_SHIMS_FOLDER);
|
|
179
|
+
function getStrictResolver({ resolveRequest , ...context }, platform) {
|
|
180
|
+
return function doResolve(moduleName) {
|
|
181
|
+
return resolver(context, moduleName, platform);
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function getOptionalResolver(context, platform) {
|
|
185
|
+
const doResolve = getStrictResolver(context, platform);
|
|
186
|
+
return function optionalResolve(moduleName) {
|
|
187
|
+
try {
|
|
188
|
+
return doResolve(moduleName);
|
|
189
|
+
} catch (error) {
|
|
190
|
+
// If the error is directly related to a resolver not being able to resolve a module, then
|
|
191
|
+
// we can ignore the error and try the next resolver. Otherwise, we should throw the error.
|
|
192
|
+
const isResolutionError = (0, _metroErrors).isFailedToResolveNameError(error) || (0, _metroErrors).isFailedToResolvePathError(error);
|
|
193
|
+
if (!isResolutionError) {
|
|
194
|
+
throw error;
|
|
175
195
|
}
|
|
176
|
-
context.sourceExts = nodejsSourceExtensions;
|
|
177
196
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
197
|
+
return null;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
const metroConfigWithCustomResolver = (0, _withMetroResolvers).withMetroResolvers(config, [
|
|
201
|
+
// tsconfig paths
|
|
202
|
+
(context, moduleName, platform)=>{
|
|
203
|
+
var ref;
|
|
204
|
+
return (ref = tsConfigResolve == null ? void 0 : tsConfigResolve({
|
|
205
|
+
originModulePath: context.originModulePath,
|
|
206
|
+
moduleName
|
|
207
|
+
}, getOptionalResolver(context, platform))) != null ? ref : null;
|
|
208
|
+
},
|
|
209
|
+
// Node.js externals support
|
|
210
|
+
(context, moduleName, platform)=>{
|
|
211
|
+
var // In browser runtimes, we want to either resolve a local node module by the same name, or shim the module to
|
|
212
|
+
// prevent crashing when Node.js built-ins are imported.
|
|
213
|
+
ref;
|
|
214
|
+
// This is a web-only feature, we may extend the shimming to native platforms in the future.
|
|
215
|
+
if (platform !== "web") {
|
|
216
|
+
return null;
|
|
182
217
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (platform && platform in extraNodeModules) {
|
|
187
|
-
context.extraNodeModules = {
|
|
188
|
-
...extraNodeModules[platform],
|
|
189
|
-
...context.extraNodeModules
|
|
190
|
-
};
|
|
218
|
+
const moduleId = (0, _externals).isNodeExternal(moduleName);
|
|
219
|
+
if (!moduleId) {
|
|
220
|
+
return null;
|
|
191
221
|
}
|
|
192
|
-
if ((
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
]
|
|
222
|
+
if (((ref = context.customResolverOptions) == null ? void 0 : ref.environment) !== "node") {
|
|
223
|
+
// Perform optional resolve first. If the module doesn't exist (no module in the node_modules)
|
|
224
|
+
// then we can mock the file to use an empty module.
|
|
225
|
+
const result = getOptionalResolver(context, platform)(moduleName);
|
|
226
|
+
return result != null ? result : {
|
|
227
|
+
// In this case, mock the file to use an empty module.
|
|
228
|
+
type: "empty"
|
|
200
229
|
};
|
|
201
230
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
mainFields = preferredMainFields[platform];
|
|
214
|
-
}
|
|
215
|
-
function doResolve(moduleName) {
|
|
216
|
-
return resolver({
|
|
217
|
-
...context,
|
|
218
|
-
resolveRequest: undefined,
|
|
219
|
-
mainFields,
|
|
220
|
-
// Passing `mainFields` directly won't be considered (in certain version of Metro)
|
|
221
|
-
// we need to extend the `getPackageMainPath` directly to
|
|
222
|
-
// use platform specific `mainFields`.
|
|
223
|
-
// @ts-ignore
|
|
224
|
-
getPackageMainPath (packageJsonPath) {
|
|
225
|
-
// @ts-expect-error: mainFields is not on type
|
|
226
|
-
const package_ = context.moduleCache.getPackage(packageJsonPath);
|
|
227
|
-
return package_.getMain(mainFields);
|
|
228
|
-
}
|
|
229
|
-
}, moduleName, platform);
|
|
231
|
+
const redirectedModuleName = (0, _externals).getNodeExternalModuleId(context.originModulePath, moduleId);
|
|
232
|
+
debug(`Redirecting Node.js external "${moduleId}" to "${redirectedModuleName}"`);
|
|
233
|
+
return getStrictResolver(context, platform)(redirectedModuleName);
|
|
234
|
+
},
|
|
235
|
+
// Basic moduleId aliases
|
|
236
|
+
(context, moduleName, platform)=>{
|
|
237
|
+
// Conditionally remap `react-native` to `react-native-web` on web in
|
|
238
|
+
// a way that doesn't require Babel to resolve the alias.
|
|
239
|
+
if (platform && platform in aliases && aliases[platform][moduleName]) {
|
|
240
|
+
const redirectedModuleName = aliases[platform][moduleName];
|
|
241
|
+
return getStrictResolver(context, platform)(redirectedModuleName);
|
|
230
242
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}
|
|
243
|
+
for (const [matcher, alias] of universalAliases){
|
|
244
|
+
const match = moduleName.match(matcher);
|
|
245
|
+
if (match) {
|
|
246
|
+
var ref;
|
|
247
|
+
const aliasedModule = alias.replace(/\$(\d+)/g, (_, index)=>(ref = match[parseInt(index, 10)]) != null ? ref : ""
|
|
248
|
+
);
|
|
249
|
+
const doResolve = getStrictResolver(context, platform);
|
|
250
|
+
debug(`Alias "${moduleName}" to "${aliasedModule}"`);
|
|
251
|
+
return doResolve(aliasedModule);
|
|
241
252
|
}
|
|
242
|
-
return null;
|
|
243
253
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
254
|
+
return null;
|
|
255
|
+
},
|
|
256
|
+
// HACK(EvanBacon):
|
|
257
|
+
// React Native uses `event-target-shim` incorrectly and this causes the native runtime
|
|
258
|
+
// to fail to load. This is a temporary workaround until we can fix this upstream.
|
|
259
|
+
// https://github.com/facebook/react-native/pull/38628
|
|
260
|
+
(context, moduleName, platform)=>{
|
|
261
|
+
if (platform !== "web" && moduleName === "event-target-shim") {
|
|
262
|
+
debug("For event-target-shim to use js:", context.originModulePath);
|
|
263
|
+
const doResolve = getStrictResolver(context, platform);
|
|
264
|
+
return doResolve("event-target-shim/dist/event-target-shim.js");
|
|
252
265
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
266
|
+
return null;
|
|
267
|
+
},
|
|
268
|
+
// TODO: Reduce these as much as possible in the future.
|
|
269
|
+
// Complex post-resolution rewrites.
|
|
270
|
+
(context, moduleName, platform)=>{
|
|
271
|
+
const doResolve = getStrictResolver(context, platform);
|
|
272
|
+
const result = doResolve(moduleName);
|
|
273
|
+
if (result.type !== "sourceFile") {
|
|
274
|
+
return result;
|
|
258
275
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
(
|
|
263
|
-
//
|
|
264
|
-
|
|
265
|
-
result != null ? result : result = optionalResolve(moduleName1);
|
|
266
|
-
if (!result) {
|
|
267
|
-
// In this case, mock the file to use an empty module.
|
|
268
|
-
return {
|
|
269
|
-
type: "empty"
|
|
270
|
-
};
|
|
271
|
-
}
|
|
276
|
+
// Replace the web resolver with the original one.
|
|
277
|
+
// This is basically an alias for web-only.
|
|
278
|
+
// TODO: Drop this in favor of the standalone asset registry module.
|
|
279
|
+
if (shouldAliasAssetRegistryForWeb(platform, result)) {
|
|
280
|
+
// @ts-expect-error: `readonly` for some reason.
|
|
281
|
+
result.filePath = assetRegistryPath;
|
|
272
282
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
result.filePath = assetRegistryPath;
|
|
280
|
-
}
|
|
281
|
-
// React Native Web adds a couple extra divs for no reason, these
|
|
282
|
-
// make static rendering much harder as we expect the root element to be `<html>`.
|
|
283
|
-
// This resolution will alias to a simple in-out component to avoid React Native web.
|
|
284
|
-
if (// Only apply the transform if expo-router is present.
|
|
285
|
-
reactNativeWebAppContainer && shouldAliasModule({
|
|
286
|
-
platform,
|
|
287
|
-
result
|
|
288
|
-
}, {
|
|
289
|
-
platform: "web",
|
|
290
|
-
output: "react-native-web/dist/exports/AppRegistry/AppContainer.js"
|
|
291
|
-
})) {
|
|
283
|
+
if (platform === "web" && result.filePath.includes("node_modules")) {
|
|
284
|
+
// Replace with static shims
|
|
285
|
+
const normalName = normalizeSlashes(result.filePath)// Drop everything up until the `node_modules` folder.
|
|
286
|
+
.replace(/.*node_modules\//, "");
|
|
287
|
+
const shimPath = _path.default.join(shimsFolder, normalName);
|
|
288
|
+
if (_fs.default.existsSync(shimPath)) {
|
|
292
289
|
// @ts-expect-error: `readonly` for some reason.
|
|
293
|
-
result.filePath =
|
|
294
|
-
} else if (platform === "web" && result.filePath.includes("node_modules")) {
|
|
295
|
-
// Replace with static shims
|
|
296
|
-
const normalName = normalizeSlashes(result.filePath)// Drop everything up until the `node_modules` folder.
|
|
297
|
-
.replace(/.*node_modules\//, "");
|
|
298
|
-
const shimPath = _path.default.join(shimsFolder, normalName);
|
|
299
|
-
if (_fs.default.existsSync(shimPath)) {
|
|
300
|
-
// @ts-expect-error: `readonly` for some reason.
|
|
301
|
-
result.filePath = shimPath;
|
|
302
|
-
}
|
|
290
|
+
result.filePath = shimPath;
|
|
303
291
|
}
|
|
304
292
|
}
|
|
305
293
|
return result;
|
|
306
294
|
},
|
|
307
295
|
]);
|
|
296
|
+
// Ensure we mutate the resolution context to include the custom resolver options for server and web.
|
|
297
|
+
const metroConfigWithCustomContext = (0, _withMetroResolvers).withMetroMutatedResolverContext(metroConfigWithCustomResolver, (immutableContext, moduleName, platform)=>{
|
|
298
|
+
var ref;
|
|
299
|
+
const context = {
|
|
300
|
+
...immutableContext,
|
|
301
|
+
preferNativePlatform: platform !== "web"
|
|
302
|
+
};
|
|
303
|
+
if (((ref = context.customResolverOptions) == null ? void 0 : ref.environment) === "node") {
|
|
304
|
+
// Adjust nodejs source extensions to sort mjs after js, including platform variants.
|
|
305
|
+
if (nodejsSourceExtensions === null) {
|
|
306
|
+
nodejsSourceExtensions = getNodejsExtensions(context.sourceExts);
|
|
307
|
+
}
|
|
308
|
+
context.sourceExts = nodejsSourceExtensions;
|
|
309
|
+
context.unstable_enablePackageExports = true;
|
|
310
|
+
context.unstable_conditionNames = [
|
|
311
|
+
"node",
|
|
312
|
+
"require"
|
|
313
|
+
];
|
|
314
|
+
context.unstable_conditionsByPlatform = {};
|
|
315
|
+
// Node.js runtimes should only be importing main at the moment.
|
|
316
|
+
// This is a temporary fix until we can support the package.json exports.
|
|
317
|
+
context.mainFields = [
|
|
318
|
+
"main",
|
|
319
|
+
"module"
|
|
320
|
+
];
|
|
321
|
+
} else {
|
|
322
|
+
// Non-server changes
|
|
323
|
+
if (!_env.env.EXPO_METRO_NO_MAIN_FIELD_OVERRIDE && platform && platform in preferredMainFields) {
|
|
324
|
+
context.mainFields = preferredMainFields[platform];
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return context;
|
|
328
|
+
});
|
|
329
|
+
return (0, _withMetroResolvers).withMetroErrorReportingResolver(metroConfigWithCustomContext);
|
|
308
330
|
}
|
|
309
331
|
function shouldAliasAssetRegistryForWeb(platform, result) {
|
|
310
332
|
return platform === "web" && (result == null ? void 0 : result.type) === "sourceFile" && typeof (result == null ? void 0 : result.filePath) === "string" && normalizeSlashes(result.filePath).endsWith("react-native-web/dist/modules/AssetRegistry/index.js");
|
|
311
333
|
}
|
|
312
334
|
function shouldAliasModule(input, alias) {
|
|
313
|
-
var ref,
|
|
314
|
-
return input.platform === alias.platform && ((ref = input.result) == null ? void 0 : ref.type) === "sourceFile" && typeof ((
|
|
335
|
+
var ref, ref6;
|
|
336
|
+
return input.platform === alias.platform && ((ref = input.result) == null ? void 0 : ref.type) === "sourceFile" && typeof ((ref6 = input.result) == null ? void 0 : ref6.filePath) === "string" && normalizeSlashes(input.result.filePath).endsWith(alias.output);
|
|
315
337
|
}
|
|
316
|
-
async function withMetroMultiPlatformAsync(projectRoot, { config , platformBundlers , isTsconfigPathsEnabled , webOutput ,
|
|
317
|
-
|
|
318
|
-
|
|
338
|
+
async function withMetroMultiPlatformAsync(projectRoot, { config , platformBundlers , isTsconfigPathsEnabled , webOutput , isFastResolverEnabled , isExporting }) {
|
|
339
|
+
if (!config.projectRoot) {
|
|
340
|
+
// @ts-expect-error: read-only types
|
|
341
|
+
config.projectRoot = projectRoot;
|
|
342
|
+
}
|
|
319
343
|
var _EXPO_PUBLIC_PROJECT_ROOT;
|
|
320
344
|
// Required for @expo/metro-runtime to format paths in the web LogBox.
|
|
321
345
|
process.env.EXPO_PUBLIC_PROJECT_ROOT = (_EXPO_PUBLIC_PROJECT_ROOT = process.env.EXPO_PUBLIC_PROJECT_ROOT) != null ? _EXPO_PUBLIC_PROJECT_ROOT : projectRoot;
|
|
@@ -326,12 +350,19 @@ async function withMetroMultiPlatformAsync(projectRoot, { config , platformBundl
|
|
|
326
350
|
// Enable static rendering in runtime space.
|
|
327
351
|
process.env.EXPO_PUBLIC_USE_STATIC = "1";
|
|
328
352
|
}
|
|
329
|
-
//
|
|
330
|
-
|
|
331
|
-
|
|
353
|
+
// This is used for running Expo CLI in development against projects outside the monorepo.
|
|
354
|
+
if (!isDirectoryIn(__dirname, projectRoot)) {
|
|
355
|
+
if (!config.watchFolders) {
|
|
356
|
+
// @ts-expect-error: watchFolders is readonly
|
|
357
|
+
config.watchFolders = [];
|
|
358
|
+
}
|
|
359
|
+
// @ts-expect-error: watchFolders is readonly
|
|
360
|
+
config.watchFolders.push(_path.default.join(require.resolve("metro-runtime/package.json"), "../.."));
|
|
361
|
+
}
|
|
332
362
|
// @ts-expect-error
|
|
333
363
|
config.transformer._expoRouterWebRendering = webOutput;
|
|
334
|
-
//
|
|
364
|
+
// @ts-expect-error: Invalidate the cache when the location of expo-router changes on-disk.
|
|
365
|
+
config.transformer._expoRouterPath = _resolveFrom.default.silent(projectRoot, "expo-router");
|
|
335
366
|
if (platformBundlers.web === "metro") {
|
|
336
367
|
await new _webSupportProjectPrerequisite.WebSupportProjectPrerequisite(projectRoot).assertAsync();
|
|
337
368
|
}
|
|
@@ -339,16 +370,8 @@ async function withMetroMultiPlatformAsync(projectRoot, { config , platformBundl
|
|
|
339
370
|
if (isTsconfigPathsEnabled) {
|
|
340
371
|
tsconfig = await (0, _loadTsConfigPaths).loadTsConfigPathsAsync(projectRoot);
|
|
341
372
|
}
|
|
373
|
+
await (0, _externals).setupShimFiles(projectRoot);
|
|
342
374
|
await (0, _externals).setupNodeExternals(projectRoot);
|
|
343
|
-
return withMetroMultiPlatform(projectRoot, {
|
|
344
|
-
config,
|
|
345
|
-
platformBundlers,
|
|
346
|
-
tsconfig,
|
|
347
|
-
isTsconfigPathsEnabled,
|
|
348
|
-
isFastResolverEnabled
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
function withMetroMultiPlatform(projectRoot, { config , platformBundlers , isTsconfigPathsEnabled , tsconfig , isFastResolverEnabled }) {
|
|
352
375
|
let expoConfigPlatforms = Object.entries(platformBundlers).filter(([, bundler])=>bundler === "metro"
|
|
353
376
|
).map(([platform])=>platform
|
|
354
377
|
);
|
|
@@ -359,16 +382,16 @@ function withMetroMultiPlatform(projectRoot, { config , platformBundlers , isTsc
|
|
|
359
382
|
}
|
|
360
383
|
// @ts-expect-error: typed as `readonly`.
|
|
361
384
|
config.resolver.platforms = expoConfigPlatforms;
|
|
362
|
-
|
|
363
|
-
config = withWebPolyfills(config, projectRoot);
|
|
364
|
-
}
|
|
385
|
+
config = withWebPolyfills(config);
|
|
365
386
|
return withExtendedResolver(config, {
|
|
366
|
-
projectRoot,
|
|
367
387
|
tsconfig,
|
|
388
|
+
isExporting,
|
|
368
389
|
isTsconfigPathsEnabled,
|
|
369
|
-
platforms: expoConfigPlatforms,
|
|
370
390
|
isFastResolverEnabled
|
|
371
391
|
});
|
|
372
392
|
}
|
|
393
|
+
function isDirectoryIn(a, b) {
|
|
394
|
+
return b.startsWith(a) && b.length > a.length;
|
|
395
|
+
}
|
|
373
396
|
|
|
374
397
|
//# sourceMappingURL=withMetroMultiPlatform.js.map
|