@expo/metro-config 0.5.2 → 0.7.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/ExpoMetroConfig.d.ts +1 -4
- package/build/ExpoMetroConfig.js +61 -145
- package/build/ExpoMetroConfig.js.map +1 -1
- package/build/getModulesPaths.js +3 -14
- package/build/getModulesPaths.js.map +1 -1
- package/build/getWatchFolders.js +32 -48
- package/build/getWatchFolders.js.map +1 -1
- package/build/importMetroFromProject.js +0 -13
- package/build/importMetroFromProject.js.map +1 -1
- package/build/transformer/createExoticTransformer.js +21 -24
- package/build/transformer/createExoticTransformer.js.map +1 -1
- package/build/transformer/createMatcher.js +14 -14
- package/build/transformer/createMatcher.js.map +1 -1
- package/build/transformer/createMultiRuleTransformer.d.ts +1 -1
- package/build/transformer/createMultiRuleTransformer.js +78 -101
- package/build/transformer/createMultiRuleTransformer.js.map +1 -1
- package/build/transformer/generateFunctionMap.js +0 -5
- package/build/transformer/generateFunctionMap.js.map +1 -1
- package/build/transformer/getBabelConfig.js +26 -40
- package/build/transformer/getBabelConfig.js.map +1 -1
- package/build/transformer/getCacheKey.js +6 -13
- package/build/transformer/getCacheKey.js.map +1 -1
- package/build/transformer/index.js +0 -12
- package/build/transformer/index.js.map +1 -1
- package/build/transformer/metro-expo-babel-transformer.js +2 -14
- package/build/transformer/metro-expo-babel-transformer.js.map +1 -1
- package/build/transformer/metro-expo-exotic-babel-transformer.js +1 -3
- package/build/transformer/metro-expo-exotic-babel-transformer.js.map +1 -1
- package/package.json +3 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBabelConfig.js","names":["getBabelRC","babelRC","_getBabelRC","projectRoot","options","plugins","projectBabelRCPath","path","resolve","fs","existsSync","extends","experimentalImportSupport","presetOptions","presetPath","resolveFrom","silent","require","presets","jsxRuntime","disableImportExportTransform","enableBabelRuntime","getBabelConfig","filename","extraConfig","babelrc","enableBabelRCLookup","code","highlightCode","config","extraPlugins","inlineRequires","inlineRequiresPlugin","push","concat","dev","hot","mayContainEditableReactComponents","indexOf"],"sources":["../../src/transformer/getBabelConfig.ts"],"sourcesContent":["/**\n * Copyright (c) Expo.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Forks the default metro-react-native-babel-transformer and adds support for known transforms.\n */\n\nimport type { PluginItem as BabelPlugins, PluginItem } from '@babel/core';\nimport fs from 'fs';\nimport type { BabelTransformerOptions } from 'metro-babel-transformer';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\n/**\n * Return a memoized function that checks for the existence of a\n * project level .babelrc file, and if it doesn't exist, reads the\n * default RN babelrc file and uses that.\n */\nconst getBabelRC = (function () {\n let babelRC: {\n // `any` to avoid flow type mismatch with Babel 7's internal type of\n // `Array<string>` even though it correctly accepts the usage below.\n presets?: any;\n extends?: string;\n plugins: BabelPlugins;\n } | null = null;\n\n return function _getBabelRC(projectRoot: string, options: BabelTransformerOptions) {\n if (babelRC != null) {\n return babelRC;\n }\n\n babelRC = { plugins: [] };\n\n // Let's look for a babel config file in the project root.\n // TODO look into adding a command line option to specify this location\n let projectBabelRCPath;\n\n // .babelrc\n if (projectRoot) {\n projectBabelRCPath = path.resolve(projectRoot, '.babelrc');\n }\n\n if (projectBabelRCPath) {\n // .babelrc.js\n if (!fs.existsSync(projectBabelRCPath)) {\n projectBabelRCPath = path.resolve(projectRoot, '.babelrc.js');\n }\n\n // babel.config.js\n if (!fs.existsSync(projectBabelRCPath)) {\n projectBabelRCPath = path.resolve(projectRoot, 'babel.config.js');\n }\n\n // If we found a babel config file, extend our config off of it\n // otherwise the default config will be used\n if (fs.existsSync(projectBabelRCPath)) {\n babelRC.extends = projectBabelRCPath;\n }\n }\n\n // If a babel config file doesn't exist in the project then\n // the default preset for react-native will be used instead.\n if (!babelRC.extends) {\n const { experimentalImportSupport, ...presetOptions } = options;\n\n // Use `babel-preset-expo` instead of `metro-react-native-babel-preset`.\n const presetPath =\n resolveFrom.silent(projectRoot, 'babel-preset-expo') ??\n resolveFrom.silent(projectRoot, 'metro-react-native-babel-preset') ??\n require.resolve('babel-preset-expo');\n\n babelRC.presets = [\n [\n require(presetPath),\n {\n // Default to React 17 automatic JSX transform.\n jsxRuntime: 'automatic',\n ...presetOptions,\n disableImportExportTransform: experimentalImportSupport,\n enableBabelRuntime: options.enableBabelRuntime,\n },\n ],\n ];\n }\n\n return babelRC;\n };\n})();\n\n/**\n * Given a filename and options, build a Babel\n * config object with the appropriate plugins.\n */\nexport function getBabelConfig(\n filename: string,\n options: BabelTransformerOptions,\n plugins: BabelPlugins = []\n) {\n const babelRC = getBabelRC(options.projectRoot, options);\n\n const extraConfig = {\n babelrc: typeof options.enableBabelRCLookup === 'boolean' ? options.enableBabelRCLookup : true,\n code: false,\n filename,\n highlightCode: true,\n };\n\n const config: any = { ...babelRC, ...extraConfig };\n\n // Add extra plugins\n const extraPlugins: (string | PluginItem)[] = [];\n\n // TODO: This probably can be removed\n if (options.inlineRequires) {\n const inlineRequiresPlugin = resolveFrom(\n options.projectRoot,\n 'babel-preset-fbjs/plugins/inline-requires'\n );\n extraPlugins.push(inlineRequiresPlugin);\n }\n\n config.plugins = extraPlugins.concat(config.plugins, plugins);\n\n if (options.dev && options.hot) {\n // Note: this intentionally doesn't include the path separator because\n // I'm not sure which one it should use on Windows, and false positives\n // are unlikely anyway. If you later decide to include the separator,\n // don't forget that the string usually *starts* with \"node_modules\" so\n // the first one often won't be there.\n // TODO: Support monorepos\n const mayContainEditableReactComponents = filename.indexOf('node_modules') === -1;\n\n if (mayContainEditableReactComponents) {\n if (!config.plugins) {\n config.plugins = [];\n }\n // Add react refresh runtime.\n // NOTICE: keep in sync with 'metro-react-native-babel-preset/src/configs/hmr'.\n config.plugins.push(resolveFrom.silent(options.projectRoot, 'react-refresh/babel'));\n }\n }\n\n return { ...babelRC, ...config };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getBabelConfig.js","names":["getBabelRC","babelRC","_getBabelRC","projectRoot","options","plugins","projectBabelRCPath","path","resolve","fs","existsSync","extends","experimentalImportSupport","presetOptions","presetPath","resolveFrom","silent","require","presets","jsxRuntime","disableImportExportTransform","enableBabelRuntime","getBabelConfig","filename","extraConfig","babelrc","enableBabelRCLookup","code","highlightCode","config","extraPlugins","inlineRequires","inlineRequiresPlugin","push","concat","dev","hot","mayContainEditableReactComponents","indexOf"],"sources":["../../src/transformer/getBabelConfig.ts"],"sourcesContent":["/**\n * Copyright (c) Expo.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Forks the default metro-react-native-babel-transformer and adds support for known transforms.\n */\n\nimport type { PluginItem as BabelPlugins, PluginItem } from '@babel/core';\nimport fs from 'fs';\nimport type { BabelTransformerOptions } from 'metro-babel-transformer';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\n/**\n * Return a memoized function that checks for the existence of a\n * project level .babelrc file, and if it doesn't exist, reads the\n * default RN babelrc file and uses that.\n */\nconst getBabelRC = (function () {\n let babelRC: {\n // `any` to avoid flow type mismatch with Babel 7's internal type of\n // `Array<string>` even though it correctly accepts the usage below.\n presets?: any;\n extends?: string;\n plugins: BabelPlugins;\n } | null = null;\n\n return function _getBabelRC(projectRoot: string, options: BabelTransformerOptions) {\n if (babelRC != null) {\n return babelRC;\n }\n\n babelRC = { plugins: [] };\n\n // Let's look for a babel config file in the project root.\n // TODO look into adding a command line option to specify this location\n let projectBabelRCPath;\n\n // .babelrc\n if (projectRoot) {\n projectBabelRCPath = path.resolve(projectRoot, '.babelrc');\n }\n\n if (projectBabelRCPath) {\n // .babelrc.js\n if (!fs.existsSync(projectBabelRCPath)) {\n projectBabelRCPath = path.resolve(projectRoot, '.babelrc.js');\n }\n\n // babel.config.js\n if (!fs.existsSync(projectBabelRCPath)) {\n projectBabelRCPath = path.resolve(projectRoot, 'babel.config.js');\n }\n\n // If we found a babel config file, extend our config off of it\n // otherwise the default config will be used\n if (fs.existsSync(projectBabelRCPath)) {\n babelRC.extends = projectBabelRCPath;\n }\n }\n\n // If a babel config file doesn't exist in the project then\n // the default preset for react-native will be used instead.\n if (!babelRC.extends) {\n const { experimentalImportSupport, ...presetOptions } = options;\n\n // Use `babel-preset-expo` instead of `metro-react-native-babel-preset`.\n const presetPath =\n resolveFrom.silent(projectRoot, 'babel-preset-expo') ??\n resolveFrom.silent(projectRoot, 'metro-react-native-babel-preset') ??\n require.resolve('babel-preset-expo');\n\n babelRC.presets = [\n [\n require(presetPath),\n {\n // Default to React 17 automatic JSX transform.\n jsxRuntime: 'automatic',\n ...presetOptions,\n disableImportExportTransform: experimentalImportSupport,\n enableBabelRuntime: options.enableBabelRuntime,\n },\n ],\n ];\n }\n\n return babelRC;\n };\n})();\n\n/**\n * Given a filename and options, build a Babel\n * config object with the appropriate plugins.\n */\nexport function getBabelConfig(\n filename: string,\n options: BabelTransformerOptions,\n plugins: BabelPlugins = []\n) {\n const babelRC = getBabelRC(options.projectRoot, options);\n\n const extraConfig = {\n babelrc: typeof options.enableBabelRCLookup === 'boolean' ? options.enableBabelRCLookup : true,\n code: false,\n filename,\n highlightCode: true,\n };\n\n const config: any = { ...babelRC, ...extraConfig };\n\n // Add extra plugins\n const extraPlugins: (string | PluginItem)[] = [];\n\n // TODO: This probably can be removed\n if (options.inlineRequires) {\n const inlineRequiresPlugin = resolveFrom(\n options.projectRoot,\n 'babel-preset-fbjs/plugins/inline-requires'\n );\n extraPlugins.push(inlineRequiresPlugin);\n }\n\n config.plugins = extraPlugins.concat(config.plugins, plugins);\n\n if (options.dev && options.hot) {\n // Note: this intentionally doesn't include the path separator because\n // I'm not sure which one it should use on Windows, and false positives\n // are unlikely anyway. If you later decide to include the separator,\n // don't forget that the string usually *starts* with \"node_modules\" so\n // the first one often won't be there.\n // TODO: Support monorepos\n const mayContainEditableReactComponents = filename.indexOf('node_modules') === -1;\n\n if (mayContainEditableReactComponents) {\n if (!config.plugins) {\n config.plugins = [];\n }\n // Add react refresh runtime.\n // NOTICE: keep in sync with 'metro-react-native-babel-preset/src/configs/hmr'.\n config.plugins.push(resolveFrom.silent(options.projectRoot, 'react-refresh/babel'));\n }\n }\n\n return { ...babelRC, ...config };\n}\n"],"mappings":"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"}
|
|
@@ -5,39 +5,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.cacheKeyParts = void 0;
|
|
7
7
|
exports.getCacheKey = getCacheKey;
|
|
8
|
-
|
|
9
8
|
function _crypto() {
|
|
10
9
|
const data = _interopRequireDefault(require("crypto"));
|
|
11
|
-
|
|
12
10
|
_crypto = function () {
|
|
13
11
|
return data;
|
|
14
12
|
};
|
|
15
|
-
|
|
16
13
|
return data;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
15
|
function _fs() {
|
|
20
16
|
const data = require("fs");
|
|
21
|
-
|
|
22
17
|
_fs = function () {
|
|
23
18
|
return data;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
20
|
return data;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
const cacheKeyParts = [(0, _fs().readFileSync)(__filename),
|
|
24
|
+
// Since babel-preset-fbjs cannot be safely resolved relative to the
|
|
32
25
|
// project root, use this environment variable that we define earlier.
|
|
33
|
-
process.env.EXPO_METRO_CACHE_KEY_VERSION || '3.3.0'
|
|
34
|
-
|
|
26
|
+
process.env.EXPO_METRO_CACHE_KEY_VERSION || '3.3.0'
|
|
27
|
+
// require('babel-preset-fbjs/package.json').version,
|
|
28
|
+
];
|
|
35
29
|
|
|
30
|
+
// Matches upstream
|
|
36
31
|
exports.cacheKeyParts = cacheKeyParts;
|
|
37
|
-
|
|
38
32
|
function getCacheKey() {
|
|
39
33
|
const key = _crypto().default.createHash('md5');
|
|
40
|
-
|
|
41
34
|
cacheKeyParts.forEach(part => key.update(part));
|
|
42
35
|
return key.digest('hex');
|
|
43
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCacheKey.js","names":["cacheKeyParts","readFileSync","__filename","process","env","EXPO_METRO_CACHE_KEY_VERSION","getCacheKey","key","crypto","createHash","forEach","part","update","digest"],"sources":["../../src/transformer/getCacheKey.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { readFileSync } from 'fs';\n\nexport const cacheKeyParts = [\n readFileSync(__filename),\n // Since babel-preset-fbjs cannot be safely resolved relative to the\n // project root, use this environment variable that we define earlier.\n process.env.EXPO_METRO_CACHE_KEY_VERSION || '3.3.0',\n // require('babel-preset-fbjs/package.json').version,\n];\n\n// Matches upstream\nexport function getCacheKey(): string {\n const key = crypto.createHash('md5');\n cacheKeyParts.forEach((part) => key.update(part));\n return key.digest('hex');\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getCacheKey.js","names":["cacheKeyParts","readFileSync","__filename","process","env","EXPO_METRO_CACHE_KEY_VERSION","getCacheKey","key","crypto","createHash","forEach","part","update","digest"],"sources":["../../src/transformer/getCacheKey.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { readFileSync } from 'fs';\n\nexport const cacheKeyParts = [\n readFileSync(__filename),\n // Since babel-preset-fbjs cannot be safely resolved relative to the\n // project root, use this environment variable that we define earlier.\n process.env.EXPO_METRO_CACHE_KEY_VERSION || '3.3.0',\n // require('babel-preset-fbjs/package.json').version,\n];\n\n// Matches upstream\nexport function getCacheKey(): string {\n const key = crypto.createHash('md5');\n cacheKeyParts.forEach((part) => key.update(part));\n return key.digest('hex');\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAkC;AAE3B,MAAMA,aAAa,GAAG,CAC3B,IAAAC,kBAAY,EAACC,UAAU,CAAC;AACxB;AACA;AACAC,OAAO,CAACC,GAAG,CAACC,4BAA4B,IAAI;AAC5C;AAAA,CACD;;AAED;AAAA;AACO,SAASC,WAAW,GAAW;EACpC,MAAMC,GAAG,GAAGC,iBAAM,CAACC,UAAU,CAAC,KAAK,CAAC;EACpCT,aAAa,CAACU,OAAO,CAAEC,IAAI,IAAKJ,GAAG,CAACK,MAAM,CAACD,IAAI,CAAC,CAAC;EACjD,OAAOJ,GAAG,CAACM,MAAM,CAAC,KAAK,CAAC;AAC1B"}
|
|
@@ -33,44 +33,32 @@ Object.defineProperty(exports, "loaders", {
|
|
|
33
33
|
return _createMultiRuleTransformer().loaders;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
-
|
|
37
36
|
function _createExoticTransformer() {
|
|
38
37
|
const data = require("./createExoticTransformer");
|
|
39
|
-
|
|
40
38
|
_createExoticTransformer = function () {
|
|
41
39
|
return data;
|
|
42
40
|
};
|
|
43
|
-
|
|
44
41
|
return data;
|
|
45
42
|
}
|
|
46
|
-
|
|
47
43
|
function _getCacheKey() {
|
|
48
44
|
const data = require("./getCacheKey");
|
|
49
|
-
|
|
50
45
|
_getCacheKey = function () {
|
|
51
46
|
return data;
|
|
52
47
|
};
|
|
53
|
-
|
|
54
48
|
return data;
|
|
55
49
|
}
|
|
56
|
-
|
|
57
50
|
function _createMultiRuleTransformer() {
|
|
58
51
|
const data = require("./createMultiRuleTransformer");
|
|
59
|
-
|
|
60
52
|
_createMultiRuleTransformer = function () {
|
|
61
53
|
return data;
|
|
62
54
|
};
|
|
63
|
-
|
|
64
55
|
return data;
|
|
65
56
|
}
|
|
66
|
-
|
|
67
57
|
function _createMatcher() {
|
|
68
58
|
const data = require("./createMatcher");
|
|
69
|
-
|
|
70
59
|
_createMatcher = function () {
|
|
71
60
|
return data;
|
|
72
61
|
};
|
|
73
|
-
|
|
74
62
|
return data;
|
|
75
63
|
}
|
|
76
64
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/transformer/index.ts"],"sourcesContent":["export { createExoticTransformer } from './createExoticTransformer';\nexport { getCacheKey } from './getCacheKey';\nexport { loaders, createMultiRuleTransformer } from './createMultiRuleTransformer';\nexport { createModuleMatcher } from './createMatcher';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/transformer/index.ts"],"sourcesContent":["export { createExoticTransformer } from './createExoticTransformer';\nexport { getCacheKey } from './getCacheKey';\nexport { loaders, createMultiRuleTransformer } from './createMultiRuleTransformer';\nexport { createModuleMatcher } from './createMatcher';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
|
|
@@ -2,43 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
function _resolveFrom() {
|
|
4
4
|
const data = _interopRequireDefault(require("resolve-from"));
|
|
5
|
-
|
|
6
5
|
_resolveFrom = function () {
|
|
7
6
|
return data;
|
|
8
7
|
};
|
|
9
|
-
|
|
10
8
|
return data;
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
function _getCacheKey() {
|
|
14
11
|
const data = require("./getCacheKey");
|
|
15
|
-
|
|
16
12
|
_getCacheKey = function () {
|
|
17
13
|
return data;
|
|
18
14
|
};
|
|
19
|
-
|
|
20
15
|
return data;
|
|
21
16
|
}
|
|
22
|
-
|
|
23
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
-
|
|
25
18
|
// Copyright 2021-present 650 Industries (Expo). All rights reserved.
|
|
26
|
-
let transformer = null;
|
|
27
19
|
|
|
20
|
+
let transformer = null;
|
|
28
21
|
function resolveTransformer(projectRoot) {
|
|
29
22
|
if (transformer) {
|
|
30
23
|
return transformer;
|
|
31
24
|
}
|
|
32
|
-
|
|
33
25
|
const resolvedPath = _resolveFrom().default.silent(projectRoot, 'metro-react-native-babel-transformer');
|
|
34
|
-
|
|
35
26
|
if (!resolvedPath) {
|
|
36
27
|
throw new Error('Missing package "metro-react-native-babel-transformer" in the project. ' + 'This usually means `react-native` is not installed. ' + 'Please verify that dependencies in package.json include "react-native" ' + 'and run `yarn` or `npm install`.');
|
|
37
28
|
}
|
|
38
|
-
|
|
39
29
|
transformer = require(resolvedPath);
|
|
40
30
|
return transformer;
|
|
41
31
|
}
|
|
32
|
+
|
|
42
33
|
/**
|
|
43
34
|
* Extends the default `metro-react-native-babel-transformer`
|
|
44
35
|
* and uses babel-preset-expo as the default instead of metro-react-native-babel-preset.
|
|
@@ -52,14 +43,11 @@ function resolveTransformer(projectRoot) {
|
|
|
52
43
|
*
|
|
53
44
|
* @returns
|
|
54
45
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
46
|
function transform(props) {
|
|
58
47
|
// Use babel-preset-expo by default if available...
|
|
59
48
|
props.options.extendsBabelConfigPath = _resolveFrom().default.silent(props.options.projectRoot, 'babel-preset-expo');
|
|
60
49
|
return resolveTransformer(props.options.projectRoot).transform(props);
|
|
61
50
|
}
|
|
62
|
-
|
|
63
51
|
module.exports = {
|
|
64
52
|
getCacheKey: _getCacheKey().getCacheKey,
|
|
65
53
|
transform
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-expo-babel-transformer.js","names":["transformer","resolveTransformer","projectRoot","resolvedPath","resolveFrom","silent","Error","require","transform","props","options","extendsBabelConfigPath","module","exports","getCacheKey"],"sources":["../../src/transformer/metro-expo-babel-transformer.ts"],"sourcesContent":["// Copyright 2021-present 650 Industries (Expo). All rights reserved.\n\nimport resolveFrom from 'resolve-from';\n\nimport { getCacheKey } from './getCacheKey';\n\nlet transformer: any = null;\n\nfunction resolveTransformer(projectRoot: string) {\n if (transformer) {\n return transformer;\n }\n const resolvedPath = resolveFrom.silent(projectRoot, 'metro-react-native-babel-transformer');\n if (!resolvedPath) {\n throw new Error(\n 'Missing package \"metro-react-native-babel-transformer\" in the project. ' +\n 'This usually means `react-native` is not installed. ' +\n 'Please verify that dependencies in package.json include \"react-native\" ' +\n 'and run `yarn` or `npm install`.'\n );\n }\n transformer = require(resolvedPath);\n return transformer;\n}\n\n/**\n * Extends the default `metro-react-native-babel-transformer`\n * and uses babel-preset-expo as the default instead of metro-react-native-babel-preset.\n * This enables users to safely transpile an Expo project without\n * needing to explicitly define a `babel.config.js`\n *\n * @param filename string\n * @param options BabelTransformerOptions\n * @param plugins $PropertyType<BabelCoreOptions, 'plugins'>\n * @param src string\n *\n * @returns\n */\nfunction transform(props: {\n filename: string;\n options: Record<string, any> & { projectRoot: string };\n plugins?: unknown;\n src: string;\n}) {\n // Use babel-preset-expo by default if available...\n props.options.extendsBabelConfigPath = resolveFrom.silent(\n props.options.projectRoot,\n 'babel-preset-expo'\n );\n return resolveTransformer(props.options.projectRoot).transform(props);\n}\n\nmodule.exports = {\n getCacheKey,\n transform,\n};\n"],"mappings":";;AAEA;EAAA
|
|
1
|
+
{"version":3,"file":"metro-expo-babel-transformer.js","names":["transformer","resolveTransformer","projectRoot","resolvedPath","resolveFrom","silent","Error","require","transform","props","options","extendsBabelConfigPath","module","exports","getCacheKey"],"sources":["../../src/transformer/metro-expo-babel-transformer.ts"],"sourcesContent":["// Copyright 2021-present 650 Industries (Expo). All rights reserved.\n\nimport resolveFrom from 'resolve-from';\n\nimport { getCacheKey } from './getCacheKey';\n\nlet transformer: any = null;\n\nfunction resolveTransformer(projectRoot: string) {\n if (transformer) {\n return transformer;\n }\n const resolvedPath = resolveFrom.silent(projectRoot, 'metro-react-native-babel-transformer');\n if (!resolvedPath) {\n throw new Error(\n 'Missing package \"metro-react-native-babel-transformer\" in the project. ' +\n 'This usually means `react-native` is not installed. ' +\n 'Please verify that dependencies in package.json include \"react-native\" ' +\n 'and run `yarn` or `npm install`.'\n );\n }\n transformer = require(resolvedPath);\n return transformer;\n}\n\n/**\n * Extends the default `metro-react-native-babel-transformer`\n * and uses babel-preset-expo as the default instead of metro-react-native-babel-preset.\n * This enables users to safely transpile an Expo project without\n * needing to explicitly define a `babel.config.js`\n *\n * @param filename string\n * @param options BabelTransformerOptions\n * @param plugins $PropertyType<BabelCoreOptions, 'plugins'>\n * @param src string\n *\n * @returns\n */\nfunction transform(props: {\n filename: string;\n options: Record<string, any> & { projectRoot: string };\n plugins?: unknown;\n src: string;\n}) {\n // Use babel-preset-expo by default if available...\n props.options.extendsBabelConfigPath = resolveFrom.silent(\n props.options.projectRoot,\n 'babel-preset-expo'\n );\n return resolveTransformer(props.options.projectRoot).transform(props);\n}\n\nmodule.exports = {\n getCacheKey,\n transform,\n};\n"],"mappings":";;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA4C;AAJ5C;;AAMA,IAAIA,WAAgB,GAAG,IAAI;AAE3B,SAASC,kBAAkB,CAACC,WAAmB,EAAE;EAC/C,IAAIF,WAAW,EAAE;IACf,OAAOA,WAAW;EACpB;EACA,MAAMG,YAAY,GAAGC,sBAAW,CAACC,MAAM,CAACH,WAAW,EAAE,sCAAsC,CAAC;EAC5F,IAAI,CAACC,YAAY,EAAE;IACjB,MAAM,IAAIG,KAAK,CACb,yEAAyE,GACvE,sDAAsD,GACtD,yEAAyE,GACzE,kCAAkC,CACrC;EACH;EACAN,WAAW,GAAGO,OAAO,CAACJ,YAAY,CAAC;EACnC,OAAOH,WAAW;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,SAAS,CAACC,KAKlB,EAAE;EACD;EACAA,KAAK,CAACC,OAAO,CAACC,sBAAsB,GAAGP,sBAAW,CAACC,MAAM,CACvDI,KAAK,CAACC,OAAO,CAACR,WAAW,EACzB,mBAAmB,CACpB;EACD,OAAOD,kBAAkB,CAACQ,KAAK,CAACC,OAAO,CAACR,WAAW,CAAC,CAACM,SAAS,CAACC,KAAK,CAAC;AACvE;AAEAG,MAAM,CAACC,OAAO,GAAG;EACfC,WAAW,EAAXA,0BAAW;EACXN;AACF,CAAC"}
|
|
@@ -2,15 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
function _createExoticTransformer() {
|
|
4
4
|
const data = require("./createExoticTransformer");
|
|
5
|
-
|
|
6
5
|
_createExoticTransformer = function () {
|
|
7
6
|
return data;
|
|
8
7
|
};
|
|
9
|
-
|
|
10
8
|
return data;
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
// Copyright 2021-present 650 Industries (Expo). All rights reserved.
|
|
11
|
+
|
|
14
12
|
module.exports = (0, _createExoticTransformer().createExoticTransformer)({
|
|
15
13
|
nodeModulesPaths: ['node_modules']
|
|
16
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-expo-exotic-babel-transformer.js","names":["module","exports","createExoticTransformer","nodeModulesPaths"],"sources":["../../src/transformer/metro-expo-exotic-babel-transformer.ts"],"sourcesContent":["// Copyright 2021-present 650 Industries (Expo). All rights reserved.\n\nimport { createExoticTransformer } from './createExoticTransformer';\n\nmodule.exports = createExoticTransformer({ nodeModulesPaths: ['node_modules'] });\n"],"mappings":";;AAEA;EAAA
|
|
1
|
+
{"version":3,"file":"metro-expo-exotic-babel-transformer.js","names":["module","exports","createExoticTransformer","nodeModulesPaths"],"sources":["../../src/transformer/metro-expo-exotic-babel-transformer.ts"],"sourcesContent":["// Copyright 2021-present 650 Industries (Expo). All rights reserved.\n\nimport { createExoticTransformer } from './createExoticTransformer';\n\nmodule.exports = createExoticTransformer({ nodeModulesPaths: ['node_modules'] });\n"],"mappings":";;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAFA;;AAIAA,MAAM,CAACC,OAAO,GAAG,IAAAC,kDAAuB,EAAC;EAAEC,gBAAgB,EAAE,CAAC,cAAc;AAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/metro-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A Metro config for running React Native projects with the Metro bundler",
|
|
5
5
|
"main": "build/ExpoMetroConfig.js",
|
|
6
6
|
"scripts": {
|
|
@@ -33,8 +33,7 @@
|
|
|
33
33
|
"transformer"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@expo/config": "~
|
|
37
|
-
"@expo/json-file": "8.2.36",
|
|
36
|
+
"@expo/config": "~8.0.0",
|
|
38
37
|
"chalk": "^4.1.0",
|
|
39
38
|
"debug": "^4.3.2",
|
|
40
39
|
"find-yarn-workspace-root": "~2.0.0",
|
|
@@ -48,5 +47,5 @@
|
|
|
48
47
|
"publishConfig": {
|
|
49
48
|
"access": "public"
|
|
50
49
|
},
|
|
51
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "c8107d57eabaedff5d53bc8036d062db12a473c8"
|
|
52
51
|
}
|