amis-rpc-design/node_modules/@react-native-community/cli-config/build/loadConfig.js.map

1 line
8.5 KiB
Plaintext
Raw Normal View History

2023-10-07 19:42:30 +08:00
{"version":3,"names":["getDependencyConfig","root","dependencyName","finalConfig","config","userConfig","isPlatform","merge","name","platforms","Object","keys","reduce","dependency","platform","platformConfig","dependencyConfig","dependencies","getReactNativeVersion","reactNativePath","semver","version","current","major","minor","e","UnknownProjectError","loadConfig","projectRoot","findProjectRoot","lazyProject","readConfigFromDisk","initialConfig","path","resolve","resolveReactNativePath","reactNativeVersion","commands","healthChecks","project","projectConfig","Array","from","Set","findDependencies","acc","localDependencyRoot","resolveNodeModuleDir","readDependencyConfigFromDisk","length","assign"],"sources":["../src/loadConfig.ts"],"sourcesContent":["import path from 'path';\nimport {\n UserDependencyConfig,\n ProjectConfig,\n DependencyConfig,\n UserConfig,\n Config,\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 isPlatform: boolean,\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 isPlatform || !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\n/**\n * Loads CLI configuration\n */\nfunction loadConfig(projectRoot: string = findProjectRoot()): 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: [],\n platforms: userConfig.platforms,\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 lazyPro