@react-native-community/cli-config 15.0.1 → 15.1.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/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +9 -1
- package/build/index.js.map +1 -1
- package/build/loadConfig.d.ts +8 -2
- package/build/loadConfig.d.ts.map +1 -1
- package/build/loadConfig.js +67 -3
- package/build/loadConfig.js.map +1 -1
- package/build/readConfigFromDisk.d.ts +11 -1
- package/build/readConfigFromDisk.d.ts.map +1 -1
- package/build/readConfigFromDisk.js +54 -14
- package/build/readConfigFromDisk.js.map +1 -1
- package/package.json +4 -4
package/build/index.d.ts
CHANGED
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,QAAQ;;;;;;;;GAAW,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -10,8 +10,16 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
return _loadConfig.default;
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
|
+
Object.defineProperty(exports, "loadConfigAsync", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _loadConfig.loadConfigAsync;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
13
19
|
var _config = _interopRequireDefault(require("./commands/config"));
|
|
14
|
-
var _loadConfig =
|
|
20
|
+
var _loadConfig = _interopRequireWildcard(require("./loadConfig"));
|
|
21
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
24
|
const commands = [_config.default];
|
|
17
25
|
exports.commands = commands;
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["commands","config"],"sources":["../src/index.ts"],"sourcesContent":["import config from './commands/config';\n\nexport {default} from './loadConfig';\n\nexport const commands = [config];\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["commands","config"],"sources":["../src/index.ts"],"sourcesContent":["import config from './commands/config';\n\nexport {default} from './loadConfig';\nexport {loadConfigAsync} from './loadConfig';\n\nexport const commands = [config];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAEA;AAAqC;AAAA;AAAA;AAG9B,MAAMA,QAAQ,GAAG,CAACC,eAAM,CAAC;AAAC"}
|
package/build/loadConfig.d.ts
CHANGED
|
@@ -2,9 +2,15 @@ import { Config } from '@react-native-community/cli-types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Loads CLI configuration
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
export default function loadConfig({ projectRoot, selectedPlatform, }: {
|
|
6
6
|
projectRoot?: string;
|
|
7
7
|
selectedPlatform?: string;
|
|
8
8
|
}): Config;
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Load CLI configuration asynchronously, which supports reading ESM modules.
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadConfigAsync({ projectRoot, selectedPlatform, }: {
|
|
13
|
+
projectRoot?: string;
|
|
14
|
+
selectedPlatform?: string;
|
|
15
|
+
}): Promise<Config>;
|
|
10
16
|
//# sourceMappingURL=loadConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,MAAM,EAEP,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../src/loadConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,MAAM,EAEP,MAAM,mCAAmC,CAAC;AA8E3C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,WAA+B,EAC/B,gBAAgB,GACjB,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAoFT;AAED;;GAEG;AAEH,wBAAsB,eAAe,CAAC,EACpC,WAA+B,EAC/B,gBAAgB,GACjB,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,MAAM,CAAC,CAwFlB"}
|
package/build/loadConfig.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = loadConfig;
|
|
7
|
+
exports.loadConfigAsync = loadConfigAsync;
|
|
7
8
|
function _path() {
|
|
8
9
|
const data = _interopRequireDefault(require("path"));
|
|
9
10
|
_path = function () {
|
|
@@ -127,7 +128,70 @@ function loadConfig({
|
|
|
127
128
|
}, initialConfig);
|
|
128
129
|
return finalConfig;
|
|
129
130
|
}
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Load CLI configuration asynchronously, which supports reading ESM modules.
|
|
134
|
+
*/
|
|
135
|
+
|
|
136
|
+
async function loadConfigAsync({
|
|
137
|
+
projectRoot = (0, _cliTools().findProjectRoot)(),
|
|
138
|
+
selectedPlatform
|
|
139
|
+
}) {
|
|
140
|
+
let lazyProject;
|
|
141
|
+
const userConfig = await (0, _readConfigFromDisk.readConfigFromDiskAsync)(projectRoot);
|
|
142
|
+
const initialConfig = {
|
|
143
|
+
root: projectRoot,
|
|
144
|
+
get reactNativePath() {
|
|
145
|
+
return userConfig.reactNativePath ? _path().default.resolve(projectRoot, userConfig.reactNativePath) : (0, _resolveReactNativePath.default)(projectRoot);
|
|
146
|
+
},
|
|
147
|
+
get reactNativeVersion() {
|
|
148
|
+
return getReactNativeVersion(initialConfig.reactNativePath);
|
|
149
|
+
},
|
|
150
|
+
dependencies: userConfig.dependencies,
|
|
151
|
+
commands: userConfig.commands,
|
|
152
|
+
healthChecks: userConfig.healthChecks || [],
|
|
153
|
+
platforms: userConfig.platforms,
|
|
154
|
+
assets: userConfig.assets,
|
|
155
|
+
get project() {
|
|
156
|
+
if (lazyProject) {
|
|
157
|
+
return lazyProject;
|
|
158
|
+
}
|
|
159
|
+
lazyProject = {};
|
|
160
|
+
for (const platform in finalConfig.platforms) {
|
|
161
|
+
const platformConfig = finalConfig.platforms[platform];
|
|
162
|
+
if (platformConfig) {
|
|
163
|
+
lazyProject[platform] = platformConfig.projectConfig(projectRoot, userConfig.project[platform] || {});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return lazyProject;
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
const finalConfig = await Array.from(new Set([...Object.keys(userConfig.dependencies), ...(0, _findDependencies.default)(projectRoot)])).reduce(async (accPromise, dependencyName) => {
|
|
170
|
+
const acc = await accPromise;
|
|
171
|
+
const localDependencyRoot = userConfig.dependencies[dependencyName] && userConfig.dependencies[dependencyName].root;
|
|
172
|
+
try {
|
|
173
|
+
let root = localDependencyRoot || (0, _cliTools().resolveNodeModuleDir)(projectRoot, dependencyName);
|
|
174
|
+
let config = await (0, _readConfigFromDisk.readDependencyConfigFromDiskAsync)(root, dependencyName);
|
|
175
|
+
return (0, _assign.default)({}, acc, {
|
|
176
|
+
dependencies: (0, _assign.default)({}, acc.dependencies, {
|
|
177
|
+
get [dependencyName]() {
|
|
178
|
+
return getDependencyConfig(root, dependencyName, finalConfig, config, userConfig);
|
|
179
|
+
}
|
|
180
|
+
}),
|
|
181
|
+
commands: removeDuplicateCommands([...config.commands, ...acc.commands]),
|
|
182
|
+
platforms: {
|
|
183
|
+
...acc.platforms,
|
|
184
|
+
...(selectedPlatform && config.platforms[selectedPlatform] ? {
|
|
185
|
+
[selectedPlatform]: config.platforms[selectedPlatform]
|
|
186
|
+
} : config.platforms)
|
|
187
|
+
},
|
|
188
|
+
healthChecks: [...acc.healthChecks, ...config.healthChecks]
|
|
189
|
+
});
|
|
190
|
+
} catch {
|
|
191
|
+
return acc;
|
|
192
|
+
}
|
|
193
|
+
}, Promise.resolve(initialConfig));
|
|
194
|
+
return finalConfig;
|
|
195
|
+
}
|
|
132
196
|
|
|
133
197
|
//# sourceMappingURL=/Users/thymikee/Developer/oss/rncli/packages/cli-config/build/loadConfig.js.map
|
package/build/loadConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","merge","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","length","dependencyConfig","dependencies","getReactNativeVersion","reactNativePath","semver","version","current","major","minor","e","UnknownProjectError","removeDuplicateCommands","commands","uniqueCommandsMap","Map","forEach","command","set","Array","from","values","loadConfig","projectRoot","findProjectRoot","selectedPlatform","lazyProject","readConfigFromDisk","initialConfig","path","resolve","resolveReactNativePath","reactNativeVersion","healthChecks","assets","project","projectConfig","Set","findDependencies","acc","localDependencyRoot","resolveNodeModuleDir","readDependencyConfigFromDisk","assign"],"sources":["../src/loadConfig.ts"],"sourcesContent":["import path from 'path';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n DependencyConfig,\n UserConfig,\n Config,\n Command,\n} from '@react-native-community/cli-types';\nimport {\n findProjectRoot,\n version,\n resolveNodeModuleDir,\n UnknownProjectError,\n} from '@react-native-community/cli-tools';\nimport findDependencies from './findDependencies';\nimport resolveReactNativePath from './resolveReactNativePath';\nimport {\n readConfigFromDisk,\n readDependencyConfigFromDisk,\n} from './readConfigFromDisk';\nimport assign from './assign';\nimport merge from './merge';\n\nfunction getDependencyConfig(\n root: string,\n dependencyName: string,\n finalConfig: Config,\n config: UserDependencyConfig,\n userConfig: UserConfig,\n): DependencyConfig {\n return merge(\n {\n root,\n name: dependencyName,\n platforms: Object.keys(finalConfig.platforms).reduce(\n (dependency, platform) => {\n const platformConfig = finalConfig.platforms[platform];\n dependency[platform] =\n // Linking platforms is not supported\n Object.keys(config.platforms).length > 0 || !platformConfig\n ? null\n : platformConfig.dependencyConfig(\n root,\n config.dependency.platforms?.[platform],\n );\n return dependency;\n },\n {} as Config['platforms'],\n ),\n },\n userConfig.dependencies[dependencyName] || {},\n ) as DependencyConfig;\n}\n\n// Try our best to figure out what version of React Native we're running. This is\n// currently being used to get our deeplinks working, so it's only worried with\n// the major and minor version.\nfunction getReactNativeVersion(reactNativePath: string) {\n try {\n let semver = version.current(reactNativePath);\n if (semver) {\n // Retain only these version, since they correspond with our documentation.\n return `${semver.major}.${semver.minor}`;\n }\n } catch (e) {\n // If we don't seem to be in a well formed project, give up quietly.\n if (!(e instanceof UnknownProjectError)) {\n throw e;\n }\n }\n return 'unknown';\n}\n\nconst removeDuplicateCommands = <T extends boolean>(commands: Command<T>[]) => {\n const uniqueCommandsMap = new Map();\n\n commands.forEach((command) => {\n uniqueCommandsMap.set(command.name, command);\n });\n\n return Array.from(uniqueCommandsMap.values());\n};\n\n/**\n * Loads CLI configuration\n */\nfunction loadConfig({\n projectRoot = findProjectRoot(),\n selectedPlatform,\n}: {\n projectRoot?: string;\n selectedPlatform?: string;\n}): Config {\n let lazyProject: ProjectConfig;\n const userConfig = readConfigFromDisk(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n get reactNativeVersion() {\n return getReactNativeVersion(initialConfig.reactNativePath);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n healthChecks: userConfig.healthChecks || [],\n platforms: userConfig.platforms,\n assets: userConfig.assets,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce((acc: Config, dependencyName) => {\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n try {\n let root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n let config = readDependencyConfigFromDisk(root, dependencyName);\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): DependencyConfig {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n );\n },\n }),\n commands: removeDuplicateCommands([\n ...config.commands,\n ...acc.commands,\n ]),\n platforms: {\n ...acc.platforms,\n ...(selectedPlatform && config.platforms[selectedPlatform]\n ? {[selectedPlatform]: config.platforms[selectedPlatform]}\n : config.platforms),\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n } catch {\n return acc;\n }\n }, initialConfig);\n\n return finalConfig;\n}\n\nexport default loadConfig;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","merge","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","length","dependencyConfig","dependencies","getReactNativeVersion","reactNativePath","semver","version","current","major","minor","e","UnknownProjectError","removeDuplicateCommands","commands","uniqueCommandsMap","Map","forEach","command","set","Array","from","values","loadConfig","projectRoot","findProjectRoot","selectedPlatform","lazyProject","readConfigFromDisk","initialConfig","path","resolve","resolveReactNativePath","reactNativeVersion","healthChecks","assets","project","projectConfig","Set","findDependencies","acc","localDependencyRoot","resolveNodeModuleDir","readDependencyConfigFromDisk","assign","loadConfigAsync","readConfigFromDiskAsync","accPromise","readDependencyConfigFromDiskAsync","Promise"],"sources":["../src/loadConfig.ts"],"sourcesContent":["import path from 'path';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n DependencyConfig,\n UserConfig,\n Config,\n Command,\n} from '@react-native-community/cli-types';\nimport {\n findProjectRoot,\n version,\n resolveNodeModuleDir,\n UnknownProjectError,\n} from '@react-native-community/cli-tools';\nimport findDependencies from './findDependencies';\nimport resolveReactNativePath from './resolveReactNativePath';\nimport {\n readConfigFromDisk,\n readConfigFromDiskAsync,\n readDependencyConfigFromDisk,\n readDependencyConfigFromDiskAsync,\n} from './readConfigFromDisk';\nimport assign from './assign';\nimport merge from './merge';\n\nfunction getDependencyConfig(\n root: string,\n dependencyName: string,\n finalConfig: Config,\n config: UserDependencyConfig,\n userConfig: UserConfig,\n): DependencyConfig {\n return merge(\n {\n root,\n name: dependencyName,\n platforms: Object.keys(finalConfig.platforms).reduce(\n (dependency, platform) => {\n const platformConfig = finalConfig.platforms[platform];\n dependency[platform] =\n // Linking platforms is not supported\n Object.keys(config.platforms).length > 0 || !platformConfig\n ? null\n : platformConfig.dependencyConfig(\n root,\n config.dependency.platforms?.[platform],\n );\n return dependency;\n },\n {} as Config['platforms'],\n ),\n },\n userConfig.dependencies[dependencyName] || {},\n ) as DependencyConfig;\n}\n\n// Try our best to figure out what version of React Native we're running. This is\n// currently being used to get our deeplinks working, so it's only worried with\n// the major and minor version.\nfunction getReactNativeVersion(reactNativePath: string) {\n try {\n let semver = version.current(reactNativePath);\n if (semver) {\n // Retain only these version, since they correspond with our documentation.\n return `${semver.major}.${semver.minor}`;\n }\n } catch (e) {\n // If we don't seem to be in a well formed project, give up quietly.\n if (!(e instanceof UnknownProjectError)) {\n throw e;\n }\n }\n return 'unknown';\n}\n\nconst removeDuplicateCommands = <T extends boolean>(commands: Command<T>[]) => {\n const uniqueCommandsMap = new Map();\n\n commands.forEach((command) => {\n uniqueCommandsMap.set(command.name, command);\n });\n\n return Array.from(uniqueCommandsMap.values());\n};\n\n/**\n * Loads CLI configuration\n */\nexport default function loadConfig({\n projectRoot = findProjectRoot(),\n selectedPlatform,\n}: {\n projectRoot?: string;\n selectedPlatform?: string;\n}): Config {\n let lazyProject: ProjectConfig;\n const userConfig = readConfigFromDisk(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n get reactNativeVersion() {\n return getReactNativeVersion(initialConfig.reactNativePath);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n healthChecks: userConfig.healthChecks || [],\n platforms: userConfig.platforms,\n assets: userConfig.assets,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce((acc: Config, dependencyName) => {\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n try {\n let root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n let config = readDependencyConfigFromDisk(root, dependencyName);\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): DependencyConfig {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n );\n },\n }),\n commands: removeDuplicateCommands([\n ...config.commands,\n ...acc.commands,\n ]),\n platforms: {\n ...acc.platforms,\n ...(selectedPlatform && config.platforms[selectedPlatform]\n ? {[selectedPlatform]: config.platforms[selectedPlatform]}\n : config.platforms),\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n } catch {\n return acc;\n }\n }, initialConfig);\n\n return finalConfig;\n}\n\n/**\n * Load CLI configuration asynchronously, which supports reading ESM modules.\n */\n\nexport async function loadConfigAsync({\n projectRoot = findProjectRoot(),\n selectedPlatform,\n}: {\n projectRoot?: string;\n selectedPlatform?: string;\n}): Promise<Config> {\n let lazyProject: ProjectConfig;\n const userConfig = await readConfigFromDiskAsync(projectRoot);\n\n const initialConfig: Config = {\n root: projectRoot,\n get reactNativePath() {\n return userConfig.reactNativePath\n ? path.resolve(projectRoot, userConfig.reactNativePath)\n : resolveReactNativePath(projectRoot);\n },\n get reactNativeVersion() {\n return getReactNativeVersion(initialConfig.reactNativePath);\n },\n dependencies: userConfig.dependencies,\n commands: userConfig.commands,\n healthChecks: userConfig.healthChecks || [],\n platforms: userConfig.platforms,\n assets: userConfig.assets,\n get project() {\n if (lazyProject) {\n return lazyProject;\n }\n\n lazyProject = {};\n for (const platform in finalConfig.platforms) {\n const platformConfig = finalConfig.platforms[platform];\n if (platformConfig) {\n lazyProject[platform] = platformConfig.projectConfig(\n projectRoot,\n userConfig.project[platform] || {},\n );\n }\n }\n\n return lazyProject;\n },\n };\n\n const finalConfig = await Array.from(\n new Set([\n ...Object.keys(userConfig.dependencies),\n ...findDependencies(projectRoot),\n ]),\n ).reduce(async (accPromise: Promise<Config>, dependencyName) => {\n const acc = await accPromise;\n const localDependencyRoot =\n userConfig.dependencies[dependencyName] &&\n userConfig.dependencies[dependencyName].root;\n try {\n let root =\n localDependencyRoot ||\n resolveNodeModuleDir(projectRoot, dependencyName);\n let config = await readDependencyConfigFromDiskAsync(\n root,\n dependencyName,\n );\n\n return assign({}, acc, {\n dependencies: assign({}, acc.dependencies, {\n get [dependencyName](): DependencyConfig {\n return getDependencyConfig(\n root,\n dependencyName,\n finalConfig,\n config,\n userConfig,\n );\n },\n }),\n commands: removeDuplicateCommands([\n ...config.commands,\n ...acc.commands,\n ]),\n platforms: {\n ...acc.platforms,\n ...(selectedPlatform && config.platforms[selectedPlatform]\n ? {[selectedPlatform]: config.platforms[selectedPlatform]}\n : config.platforms),\n },\n healthChecks: [...acc.healthChecks, ...config.healthChecks],\n }) as Config;\n } catch {\n return acc;\n }\n }, Promise.resolve(initialConfig));\n\n return finalConfig;\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import { UserConfig, UserDependencyConfig } from '@react-native-community/cli-types';
|
|
1
|
+
import type { UserConfig, UserDependencyConfig } from '@react-native-community/cli-types';
|
|
2
2
|
/**
|
|
3
3
|
* Reads a project configuration as defined by the user in the current
|
|
4
4
|
* workspace.
|
|
5
5
|
*/
|
|
6
|
+
export declare function readConfigFromDiskAsync(rootFolder: string): Promise<UserConfig>;
|
|
7
|
+
/**
|
|
8
|
+
* Reads a project configuration as defined by the user in the current
|
|
9
|
+
* workspace synchronously.
|
|
10
|
+
*/
|
|
6
11
|
export declare function readConfigFromDisk(rootFolder: string): UserConfig;
|
|
7
12
|
/**
|
|
8
13
|
* Reads a dependency configuration as defined by the developer
|
|
9
14
|
* inside `node_modules`.
|
|
10
15
|
*/
|
|
16
|
+
export declare function readDependencyConfigFromDiskAsync(rootFolder: string, dependencyName: string): Promise<UserDependencyConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* Reads a dependency configuration as defined by the developer
|
|
19
|
+
* inside `node_modules` synchronously.
|
|
20
|
+
*/
|
|
11
21
|
export declare function readDependencyConfigFromDisk(rootFolder: string, dependencyName: string): UserDependencyConfig;
|
|
12
22
|
//# sourceMappingURL=readConfigFromDisk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readConfigFromDisk.d.ts","sourceRoot":"","sources":["../src/readConfigFromDisk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"readConfigFromDisk.d.ts","sourceRoot":"","sources":["../src/readConfigFromDisk.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACrB,MAAM,mCAAmC,CAAC;AA4B3C;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;GAGG;AAEH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAQjE;AA2BD;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;AAED;;;GAGG;AAEH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,oBAAoB,CAQtB"}
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.readConfigFromDisk = readConfigFromDisk;
|
|
7
|
+
exports.readConfigFromDiskAsync = readConfigFromDiskAsync;
|
|
7
8
|
exports.readDependencyConfigFromDisk = readDependencyConfigFromDisk;
|
|
9
|
+
exports.readDependencyConfigFromDiskAsync = readDependencyConfigFromDiskAsync;
|
|
8
10
|
function _cosmiconfig() {
|
|
9
11
|
const data = require("cosmiconfig");
|
|
10
12
|
_cosmiconfig = function () {
|
|
@@ -33,37 +35,48 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
35
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
34
36
|
/**
|
|
35
37
|
* Places to look for the configuration file.
|
|
38
|
+
* Note that we need different sets for CJS and ESM because the synchronous
|
|
39
|
+
* version cannot contain `.mjs` files. Doing so will cause "Error: Missing
|
|
40
|
+
* loader for extension" during runtime.
|
|
36
41
|
*/
|
|
37
|
-
const
|
|
42
|
+
const searchPlacesForCJS = ['react-native.config.js', 'react-native.config.cjs', 'react-native.config.ts'];
|
|
43
|
+
const searchPlaces = [...searchPlacesForCJS, 'react-native.config.mjs'];
|
|
44
|
+
function parseUserConfig(searchResult) {
|
|
45
|
+
const config = searchResult ? searchResult.config : undefined;
|
|
46
|
+
const result = schema.projectConfig.validate(config);
|
|
47
|
+
if (result.error) {
|
|
48
|
+
throw new _errors.JoiError(result.error);
|
|
49
|
+
}
|
|
50
|
+
return result.value;
|
|
51
|
+
}
|
|
38
52
|
|
|
39
53
|
/**
|
|
40
54
|
* Reads a project configuration as defined by the user in the current
|
|
41
55
|
* workspace.
|
|
42
56
|
*/
|
|
43
|
-
function
|
|
44
|
-
const explorer = (0, _cosmiconfig().
|
|
57
|
+
async function readConfigFromDiskAsync(rootFolder) {
|
|
58
|
+
const explorer = (0, _cosmiconfig().cosmiconfig)('react-native', {
|
|
45
59
|
stopDir: rootFolder,
|
|
46
60
|
searchPlaces
|
|
47
61
|
});
|
|
48
|
-
const searchResult = explorer.search(rootFolder);
|
|
49
|
-
|
|
50
|
-
const result = schema.projectConfig.validate(config);
|
|
51
|
-
if (result.error) {
|
|
52
|
-
throw new _errors.JoiError(result.error);
|
|
53
|
-
}
|
|
54
|
-
return result.value;
|
|
62
|
+
const searchResult = await explorer.search(rootFolder);
|
|
63
|
+
return parseUserConfig(searchResult);
|
|
55
64
|
}
|
|
56
65
|
|
|
57
66
|
/**
|
|
58
|
-
* Reads a
|
|
59
|
-
*
|
|
67
|
+
* Reads a project configuration as defined by the user in the current
|
|
68
|
+
* workspace synchronously.
|
|
60
69
|
*/
|
|
61
|
-
|
|
70
|
+
|
|
71
|
+
function readConfigFromDisk(rootFolder) {
|
|
62
72
|
const explorer = (0, _cosmiconfig().cosmiconfigSync)('react-native', {
|
|
63
73
|
stopDir: rootFolder,
|
|
64
74
|
searchPlaces
|
|
65
75
|
});
|
|
66
76
|
const searchResult = explorer.search(rootFolder);
|
|
77
|
+
return parseUserConfig(searchResult);
|
|
78
|
+
}
|
|
79
|
+
function parseDependencyConfig(dependencyName, searchResult) {
|
|
67
80
|
const config = searchResult ? searchResult.config : emptyDependencyConfig;
|
|
68
81
|
const result = schema.dependencyConfig.validate(config, {
|
|
69
82
|
abortEarly: false
|
|
@@ -72,11 +85,38 @@ function readDependencyConfigFromDisk(rootFolder, dependencyName) {
|
|
|
72
85
|
const validationError = new _errors.JoiError(result.error);
|
|
73
86
|
_cliTools().logger.warn((0, _cliTools().inlineString)(`
|
|
74
87
|
Package ${_chalk().default.bold(dependencyName)} contains invalid configuration: ${_chalk().default.bold(validationError.message)}.
|
|
75
|
-
|
|
88
|
+
|
|
76
89
|
Please verify it's properly linked using "npx react-native config" command and contact the package maintainers about this.`));
|
|
77
90
|
}
|
|
78
91
|
return result.value;
|
|
79
92
|
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Reads a dependency configuration as defined by the developer
|
|
96
|
+
* inside `node_modules`.
|
|
97
|
+
*/
|
|
98
|
+
async function readDependencyConfigFromDiskAsync(rootFolder, dependencyName) {
|
|
99
|
+
const explorer = (0, _cosmiconfig().cosmiconfig)('react-native', {
|
|
100
|
+
stopDir: rootFolder,
|
|
101
|
+
searchPlaces
|
|
102
|
+
});
|
|
103
|
+
const searchResult = await explorer.search(rootFolder);
|
|
104
|
+
return parseDependencyConfig(dependencyName, searchResult);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Reads a dependency configuration as defined by the developer
|
|
109
|
+
* inside `node_modules` synchronously.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
function readDependencyConfigFromDisk(rootFolder, dependencyName) {
|
|
113
|
+
const explorer = (0, _cosmiconfig().cosmiconfigSync)('react-native', {
|
|
114
|
+
stopDir: rootFolder,
|
|
115
|
+
searchPlaces: searchPlacesForCJS
|
|
116
|
+
});
|
|
117
|
+
const searchResult = explorer.search(rootFolder);
|
|
118
|
+
return parseDependencyConfig(dependencyName, searchResult);
|
|
119
|
+
}
|
|
80
120
|
const emptyDependencyConfig = {
|
|
81
121
|
dependency: {
|
|
82
122
|
platforms: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["searchPlaces","
|
|
1
|
+
{"version":3,"names":["searchPlacesForCJS","searchPlaces","parseUserConfig","searchResult","config","undefined","result","schema","projectConfig","validate","error","JoiError","value","readConfigFromDiskAsync","rootFolder","explorer","cosmiconfig","stopDir","search","readConfigFromDisk","cosmiconfigSync","parseDependencyConfig","dependencyName","emptyDependencyConfig","dependencyConfig","abortEarly","validationError","logger","warn","inlineString","chalk","bold","message","readDependencyConfigFromDiskAsync","readDependencyConfigFromDisk","dependency","platforms","commands"],"sources":["../src/readConfigFromDisk.ts"],"sourcesContent":["import type {CosmiconfigResult} from 'cosmiconfig';\nimport {cosmiconfig, cosmiconfigSync} from 'cosmiconfig';\nimport {JoiError} from './errors';\nimport * as schema from './schema';\nimport type {\n UserConfig,\n UserDependencyConfig,\n} from '@react-native-community/cli-types';\nimport {logger, inlineString} from '@react-native-community/cli-tools';\nimport chalk from 'chalk';\n\n/**\n * Places to look for the configuration file.\n * Note that we need different sets for CJS and ESM because the synchronous\n * version cannot contain `.mjs` files. Doing so will cause \"Error: Missing\n * loader for extension\" during runtime.\n */\nconst searchPlacesForCJS = [\n 'react-native.config.js',\n 'react-native.config.cjs',\n 'react-native.config.ts',\n];\nconst searchPlaces = [...searchPlacesForCJS, 'react-native.config.mjs'];\n\nfunction parseUserConfig(searchResult: CosmiconfigResult): UserConfig {\n const config = searchResult ? searchResult.config : undefined;\n const result = schema.projectConfig.validate(config);\n\n if (result.error) {\n throw new JoiError(result.error);\n }\n\n return result.value as UserConfig;\n}\n\n/**\n * Reads a project configuration as defined by the user in the current\n * workspace.\n */\nexport async function readConfigFromDiskAsync(\n rootFolder: string,\n): Promise<UserConfig> {\n const explorer = cosmiconfig('react-native', {\n stopDir: rootFolder,\n searchPlaces,\n });\n\n const searchResult = await explorer.search(rootFolder);\n return parseUserConfig(searchResult);\n}\n\n/**\n * Reads a project configuration as defined by the user in the current\n * workspace synchronously.\n */\n\nexport function readConfigFromDisk(rootFolder: string): UserConfig {\n const explorer = cosmiconfigSync('react-native', {\n stopDir: rootFolder,\n searchPlaces,\n });\n\n const searchResult = explorer.search(rootFolder);\n return parseUserConfig(searchResult);\n}\n\nfunction parseDependencyConfig(\n dependencyName: string,\n searchResult: CosmiconfigResult,\n): UserDependencyConfig {\n const config = searchResult ? searchResult.config : emptyDependencyConfig;\n\n const result = schema.dependencyConfig.validate(config, {abortEarly: false});\n\n if (result.error) {\n const validationError = new JoiError(result.error);\n logger.warn(\n inlineString(`\n Package ${chalk.bold(\n dependencyName,\n )} contains invalid configuration: ${chalk.bold(\n validationError.message,\n )}.\n\n Please verify it's properly linked using \"npx react-native config\" command and contact the package maintainers about this.`),\n );\n }\n\n return result.value as UserDependencyConfig;\n}\n\n/**\n * Reads a dependency configuration as defined by the developer\n * inside `node_modules`.\n */\nexport async function readDependencyConfigFromDiskAsync(\n rootFolder: string,\n dependencyName: string,\n): Promise<UserDependencyConfig> {\n const explorer = cosmiconfig('react-native', {\n stopDir: rootFolder,\n searchPlaces,\n });\n\n const searchResult = await explorer.search(rootFolder);\n return parseDependencyConfig(dependencyName, searchResult);\n}\n\n/**\n * Reads a dependency configuration as defined by the developer\n * inside `node_modules` synchronously.\n */\n\nexport function readDependencyConfigFromDisk(\n rootFolder: string,\n dependencyName: string,\n): UserDependencyConfig {\n const explorer = cosmiconfigSync('react-native', {\n stopDir: rootFolder,\n searchPlaces: searchPlacesForCJS,\n });\n\n const searchResult = explorer.search(rootFolder);\n return parseDependencyConfig(dependencyName, searchResult);\n}\n\nconst emptyDependencyConfig = {\n dependency: {\n platforms: {},\n },\n commands: [],\n platforms: {},\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-community/cli-config",
|
|
3
|
-
"version": "15.
|
|
3
|
+
"version": "15.1.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"types": "build/index.d.ts",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@react-native-community/cli-tools": "15.
|
|
11
|
+
"@react-native-community/cli-tools": "15.1.1",
|
|
12
12
|
"chalk": "^4.1.2",
|
|
13
13
|
"cosmiconfig": "^9.0.0",
|
|
14
14
|
"deepmerge": "^4.3.0",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"!*.map"
|
|
22
22
|
],
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@react-native-community/cli-types": "15.
|
|
24
|
+
"@react-native-community/cli-types": "15.1.1",
|
|
25
25
|
"@types/cosmiconfig": "^5.0.3"
|
|
26
26
|
},
|
|
27
27
|
"homepage": "https://github.com/react-native-community/cli/tree/main/packages/cli-config",
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"url": "https://github.com/react-native-community/cli.git",
|
|
31
31
|
"directory": "packages/cli-config"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "0a0a3c3d4464f6a7b9b5816d5d1bd947819627bd"
|
|
34
34
|
}
|