UNPKG

29.3 kBSource Map (JSON)View Raw
1{"version":3,"file":"Config.js","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"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","sourcesContent":["import JsonFile, { JSONObject } from '@expo/json-file';\nimport fs from 'fs-extra';\nimport globby from 'globby';\nimport path from 'path';\nimport semver from 'semver';\nimport slug from 'slugify';\n\nimport {\n AppJSONConfig,\n ConfigFilePaths,\n ExpRc,\n ExpoConfig,\n GetConfigOptions,\n PackageJSONConfig,\n Platform,\n ProjectConfig,\n ProjectTarget,\n WriteConfigOptions,\n} from './Config.types';\nimport { ConfigError } from './Errors';\nimport { getDynamicConfig, getStaticConfig } from './getConfig';\nimport { getRootPackageJsonPath, projectHasModule } from './Modules';\nimport { getExpoSDKVersion } from './Project';\n\n/**\n * If a config has an `expo` object then that will be used as the config.\n * This method reduces out other top level values if an `expo` object exists.\n *\n * @param config Input config object to reduce\n */\nfunction reduceExpoObject(config?: any): ExpoConfig | null {\n if (!config) return config === undefined ? null : config;\n\n if (typeof config.expo === 'object') {\n // TODO: We should warn users in the future that if there are more values than \"expo\", those values outside of \"expo\" will be omitted in favor of the \"expo\" object.\n return config.expo as ExpoConfig;\n }\n return config;\n}\n\n/**\n * Get all platforms that a project is currently capable of running.\n *\n * @param projectRoot\n * @param exp\n */\nfunction getSupportedPlatforms(\n projectRoot: string,\n exp: Pick<ExpoConfig, 'nodeModulesPath'>\n): Platform[] {\n const platforms: Platform[] = [];\n if (projectHasModule('react-native', projectRoot, exp)) {\n platforms.push('ios', 'android');\n }\n if (projectHasModule('react-native-web', projectRoot, exp)) {\n platforms.push('web');\n }\n return platforms;\n}\n\n/**\n * Evaluate the config for an Expo project.\n * If a function is exported from the `app.config.js` then a partial config will be passed as an argument.\n * The partial config is composed from any existing app.json, and certain fields from the `package.json` like name and description.\n *\n *\n * **Example**\n * ```js\n * module.exports = function({ config }) {\n * // mutate the config before returning it.\n * config.slug = 'new slug'\n * return config;\n * }\n *\n * **Supports**\n * - `app.config.ts`\n * - `app.config.js`\n * - `app.config.json`\n * - `app.json`\n *\n * @param projectRoot the root folder containing all of your application code\n * @param options enforce criteria for a project config\n */\nexport function getConfig(projectRoot: string, options: GetConfigOptions = {}): ProjectConfig {\n const paths = getConfigFilePaths(projectRoot);\n\n const rawStaticConfig = paths.staticConfigPath ? getStaticConfig(paths.staticConfigPath) : null;\n // For legacy reasons, always return an object.\n const rootConfig = (rawStaticConfig || {}) as AppJSONConfig;\n const staticConfig = reduceExpoObject(rawStaticConfig) || {};\n\n const jsonFileWithNodeModulesPath = reduceExpoObject(rootConfig) as ExpoConfig;\n // Can only change the package.json location if an app.json or app.config.json exists with nodeModulesPath\n const [packageJson, packageJsonPath] = getPackageJsonAndPath(\n projectRoot,\n jsonFileWithNodeModulesPath\n );\n\n function fillAndReturnConfig(config: any, dynamicConfigObjectType: string | null) {\n return {\n ...ensureConfigHasDefaultValues(\n projectRoot,\n config,\n packageJson,\n options.skipSDKVersionRequirement\n ),\n dynamicConfigObjectType,\n rootConfig,\n dynamicConfigPath: paths.dynamicConfigPath,\n staticConfigPath: paths.staticConfigPath,\n };\n }\n\n // Fill in the static config\n function getContextConfig(config: any = {}) {\n return ensureConfigHasDefaultValues(projectRoot, config, packageJson, true).exp;\n }\n\n if (paths.dynamicConfigPath) {\n // No app.config.json or app.json but app.config.js\n const { exportedObjectType, config: rawDynamicConfig } = getDynamicConfig(\n paths.dynamicConfigPath,\n {\n projectRoot,\n staticConfigPath: paths.staticConfigPath,\n packageJsonPath,\n config: getContextConfig(staticConfig),\n }\n );\n // Allow for the app.config.js to `export default null;`\n // Use `dynamicConfigPath` to detect if a dynamic config exists.\n const dynamicConfig = reduceExpoObject(rawDynamicConfig) || {};\n return fillAndReturnConfig(dynamicConfig, exportedObjectType);\n }\n\n // No app.config.js but json or no config\n return fillAndReturnConfig(staticConfig || {}, null);\n}\n\nexport function getPackageJson(\n projectRoot: string,\n config: Pick<ExpoConfig, 'nodeModulesPath'> = {}\n): PackageJSONConfig {\n const [pkg] = getPackageJsonAndPath(projectRoot, config);\n return pkg;\n}\n\nfunction getPackageJsonAndPath(\n projectRoot: string,\n config: Pick<ExpoConfig, 'nodeModulesPath'> = {}\n): [PackageJSONConfig, string] {\n const packageJsonPath = getRootPackageJsonPath(projectRoot, config);\n return [JsonFile.read(packageJsonPath), packageJsonPath];\n}\n\nexport function readConfigJson(\n projectRoot: string,\n skipValidation: boolean = false,\n skipNativeValidation: boolean = false\n): ProjectConfig {\n const paths = getConfigFilePaths(projectRoot);\n\n const rawStaticConfig = paths.staticConfigPath ? getStaticConfig(paths.staticConfigPath) : null;\n\n const getConfigName = (): string => {\n if (paths.staticConfigPath) ` \\`${path.basename(paths.staticConfigPath)}\\``;\n return '';\n };\n\n let outputRootConfig: JSONObject | null = rawStaticConfig;\n if (outputRootConfig === null || typeof outputRootConfig !== 'object') {\n if (skipValidation) {\n outputRootConfig = { expo: {} };\n } else {\n throw new ConfigError(\n `Project at path ${path.resolve(\n projectRoot\n )} does not contain a valid Expo config${getConfigName()}`,\n 'NOT_OBJECT'\n );\n }\n }\n let exp = outputRootConfig.expo as ExpoConfig;\n if (exp === null || typeof exp !== 'object') {\n throw new ConfigError(\n `Property 'expo' in${getConfigName()} for project at path ${path.resolve(\n projectRoot\n )} is not an object. Please make sure${getConfigName()} includes a managed Expo app config like this: ${APP_JSON_EXAMPLE}`,\n 'NO_EXPO'\n );\n }\n\n exp = { ...exp };\n\n const [pkg] = getPackageJsonAndPath(projectRoot, exp);\n\n return {\n ...ensureConfigHasDefaultValues(projectRoot, exp, pkg, skipNativeValidation),\n dynamicConfigPath: null,\n dynamicConfigObjectType: null,\n rootConfig: { ...outputRootConfig } as AppJSONConfig,\n ...paths,\n };\n}\n\nexport async function readConfigJsonAsync(\n projectRoot: string,\n skipValidation: boolean = false,\n skipNativeValidation: boolean = false\n): Promise<ProjectConfig> {\n return readConfigJson(projectRoot, skipValidation, skipNativeValidation);\n}\n\n/**\n * Get the static and dynamic config paths for a project. Also accounts for custom paths.\n *\n * @param projectRoot\n */\nexport function getConfigFilePaths(projectRoot: string): ConfigFilePaths {\n const customPaths = getCustomConfigFilePaths(projectRoot);\n if (customPaths) {\n return customPaths;\n }\n\n return {\n dynamicConfigPath: getDynamicConfigFilePath(projectRoot),\n staticConfigPath: getStaticConfigFilePath(projectRoot),\n };\n}\n\nfunction getCustomConfigFilePaths(projectRoot: string): ConfigFilePaths | null {\n if (!customConfigPaths[projectRoot]) {\n return null;\n }\n // If the user picks a custom config path, we will only use that and skip searching for a secondary config.\n if (isDynamicFilePath(customConfigPaths[projectRoot])) {\n return {\n dynamicConfigPath: customConfigPaths[projectRoot],\n staticConfigPath: null,\n };\n }\n // Anything that's not js or ts will be treated as json.\n return { staticConfigPath: customConfigPaths[projectRoot], dynamicConfigPath: null };\n}\n\nfunction getDynamicConfigFilePath(projectRoot: string): string | null {\n for (const fileName of ['app.config.ts', 'app.config.js']) {\n const configPath = path.join(projectRoot, fileName);\n if (fs.existsSync(configPath)) {\n return configPath;\n }\n }\n return null;\n}\n\nfunction getStaticConfigFilePath(projectRoot: string): string | null {\n for (const fileName of ['app.config.json', 'app.json']) {\n const configPath = path.join(projectRoot, fileName);\n if (fs.existsSync(configPath)) {\n return configPath;\n }\n }\n return null;\n}\n\n// TODO: This should account for dynamic configs\nexport function findConfigFile(\n projectRoot: string\n): { configPath: string; configName: string; configNamespace: 'expo' } {\n let configPath: string;\n // Check for a custom config path first.\n if (customConfigPaths[projectRoot]) {\n configPath = customConfigPaths[projectRoot];\n // We shouldn't verify if the file exists because\n // the user manually specified that this path should be used.\n return {\n configPath,\n configName: path.basename(configPath),\n configNamespace: 'expo',\n };\n } else {\n // app.config.json takes higher priority over app.json\n configPath = path.join(projectRoot, 'app.config.json');\n if (!fs.existsSync(configPath)) {\n configPath = path.join(projectRoot, 'app.json');\n }\n }\n\n return {\n configPath,\n configName: path.basename(configPath),\n configNamespace: 'expo',\n };\n}\n\n// TODO: deprecate\nexport function configFilename(projectRoot: string): string {\n return findConfigFile(projectRoot).configName;\n}\n\nexport async function readExpRcAsync(projectRoot: string): Promise<ExpRc> {\n const expRcPath = path.join(projectRoot, '.exprc');\n return await JsonFile.readAsync(expRcPath, { json5: true, cantReadFileDefault: {} });\n}\n\nconst customConfigPaths: { [projectRoot: string]: string } = {};\n\nexport function setCustomConfigPath(projectRoot: string, configPath: string): void {\n customConfigPaths[projectRoot] = configPath;\n}\n\n/**\n * Attempt to modify an Expo project config.\n * This will only fully work if the project is using static configs only.\n * Otherwise 'warn' | 'fail' will return with a message about why the config couldn't be updated.\n * The potentially modified config object will be returned for testing purposes.\n *\n * @param projectRoot\n * @param modifications modifications to make to an existing config\n * @param readOptions options for reading the current config file\n * @param writeOptions If true, the static config file will not be rewritten\n */\nexport async function modifyConfigAsync(\n projectRoot: string,\n modifications: Partial<ExpoConfig>,\n readOptions: GetConfigOptions = {},\n writeOptions: WriteConfigOptions = {}\n): Promise<{ type: 'success' | 'warn' | 'fail'; message?: string; config: ExpoConfig | null }> {\n const config = getConfig(projectRoot, readOptions);\n if (config.dynamicConfigPath) {\n // We cannot automatically write to a dynamic config.\n /* Currently we should just use the safest approach possible, informing the user that they'll need to manually modify their dynamic config.\n\n if (config.staticConfigPath) {\n // Both a dynamic and a static config exist.\n if (config.dynamicConfigObjectType === 'function') {\n // The dynamic config exports a function, this means it possibly extends the static config.\n } else {\n // Dynamic config ignores the static config, there isn't a reason to automatically write to it.\n // Instead we should warn the user to add values to their dynamic config.\n }\n }\n */\n return {\n type: 'warn',\n message: `Cannot automatically write to dynamic config at: ${path.relative(\n projectRoot,\n config.dynamicConfigPath\n )}`,\n config: null,\n };\n } else if (config.staticConfigPath) {\n // Static with no dynamic config, this means we can append to the config automatically.\n let outputConfig: AppJSONConfig;\n // If the config has an expo object (app.json) then append the options to that object.\n if (config.rootConfig.expo) {\n outputConfig = {\n ...config.rootConfig,\n expo: { ...config.rootConfig.expo, ...modifications },\n };\n } else {\n // Otherwise (app.config.json) just add the config modification to the top most level.\n outputConfig = { ...config.rootConfig, ...modifications };\n }\n if (!writeOptions.dryRun) {\n await JsonFile.writeAsync(config.staticConfigPath, outputConfig, { json5: false });\n }\n return { type: 'success', config: outputConfig };\n }\n\n return { type: 'fail', message: 'No config exists', config: null };\n}\n\nconst APP_JSON_EXAMPLE = JSON.stringify({\n expo: {\n name: 'My app',\n slug: 'my-app',\n sdkVersion: '...',\n },\n});\n\nfunction ensureConfigHasDefaultValues(\n projectRoot: string,\n exp: ExpoConfig,\n pkg: JSONObject,\n skipSDKVersionRequirement: boolean = false\n): { exp: ExpoConfig; pkg: PackageJSONConfig } {\n if (!exp) exp = {};\n\n if (!exp.name) {\n if (typeof pkg.name !== 'string') {\n pkg.name = path.basename(projectRoot);\n }\n exp.name = pkg.name;\n }\n\n if (!exp.description && typeof pkg.description === 'string') {\n exp.description = pkg.description;\n }\n\n if (!exp.slug && typeof exp.name === 'string') {\n exp.slug = slug(exp.name.toLowerCase());\n }\n\n if (!exp.version) {\n if (typeof pkg.version === 'string') {\n exp.version = pkg.version;\n } else {\n pkg.version = '1.0.0';\n }\n exp.version = pkg.version;\n }\n\n if (exp.nodeModulesPath) {\n exp.nodeModulesPath = path.resolve(projectRoot, exp.nodeModulesPath);\n }\n\n try {\n exp.sdkVersion = getExpoSDKVersion(projectRoot, exp);\n } catch (error) {\n if (!skipSDKVersionRequirement) throw error;\n }\n\n if (!exp.platforms) {\n exp.platforms = getSupportedPlatforms(projectRoot, exp);\n }\n\n return { exp, pkg };\n}\n\nexport async function writeConfigJsonAsync(\n projectRoot: string,\n options: Object\n): Promise<ProjectConfig> {\n const paths = getConfigFilePaths(projectRoot);\n let {\n exp,\n pkg,\n rootConfig,\n dynamicConfigObjectType,\n staticConfigPath,\n } = await readConfigJsonAsync(projectRoot);\n exp = { ...rootConfig.expo, ...options };\n rootConfig = { ...rootConfig, expo: exp };\n\n if (paths.staticConfigPath) {\n await JsonFile.writeAsync(paths.staticConfigPath, rootConfig, { json5: false });\n } else {\n console.log('Failed to write to config: ', options);\n }\n\n return {\n exp,\n pkg,\n rootConfig,\n staticConfigPath,\n dynamicConfigObjectType,\n ...paths,\n };\n}\nconst DEFAULT_BUILD_PATH = `web-build`;\n\nexport function getWebOutputPath(config: { [key: string]: any } = {}): string {\n if (process.env.WEBPACK_BUILD_OUTPUT_PATH) {\n return process.env.WEBPACK_BUILD_OUTPUT_PATH;\n }\n const expo = config.expo || config || {};\n return expo?.web?.build?.output || DEFAULT_BUILD_PATH;\n}\n\nexport function getNameFromConfig(exp: ExpoConfig = {}): { appName: string; webName: string } {\n // For RN CLI support\n const appManifest = exp.expo || exp;\n const { web = {} } = appManifest;\n\n // rn-cli apps use a displayName value as well.\n const appName = exp.displayName || appManifest.displayName || appManifest.name;\n const webName = web.name || appName;\n\n return {\n appName,\n webName,\n };\n}\n\nexport function getDefaultTarget(projectRoot: string): ProjectTarget {\n const { exp } = getConfig(projectRoot, { skipSDKVersionRequirement: true });\n // before SDK 37, always default to managed to preserve previous behavior\n if (exp.sdkVersion && exp.sdkVersion !== 'UNVERSIONED' && semver.lt(exp.sdkVersion, '37.0.0')) {\n return 'managed';\n }\n return isBareWorkflowProject(projectRoot) ? 'bare' : 'managed';\n}\n\nfunction isBareWorkflowProject(projectRoot: string): boolean {\n const { pkg } = getConfig(projectRoot, {\n skipSDKVersionRequirement: true,\n });\n if (pkg.dependencies && pkg.dependencies.expokit) {\n return false;\n }\n\n if (fs.existsSync(path.resolve(projectRoot, 'ios'))) {\n const xcodeprojFiles = globby.sync([path.join(projectRoot, 'ios', '/**/*.xcodeproj')]);\n if (xcodeprojFiles.length) {\n return true;\n }\n }\n if (fs.existsSync(path.resolve(projectRoot, 'android'))) {\n const gradleFiles = globby.sync([path.join(projectRoot, 'android', '/**/*.gradle')]);\n if (gradleFiles.length) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * true if the file is .js or .ts\n *\n * @param filePath\n */\nfunction isDynamicFilePath(filePath: string): boolean {\n return !!filePath.match(/\\.[j|t]s$/);\n}\n\n/**\n * Returns a string describing the configurations used for the given project root.\n * Will return null if no config is found.\n *\n * @param projectRoot\n * @param projectConfig\n */\nexport function getProjectConfigDescription(\n projectRoot: string,\n projectConfig: ProjectConfig\n): string | null {\n if (projectConfig.dynamicConfigPath) {\n const relativeDynamicConfigPath = path.relative(projectRoot, projectConfig.dynamicConfigPath);\n if (projectConfig.staticConfigPath) {\n return `Using dynamic config \\`${relativeDynamicConfigPath}\\` and static config \\`${path.relative(\n projectRoot,\n projectConfig.staticConfigPath\n )}\\``;\n }\n return `Using dynamic config \\`${relativeDynamicConfigPath}\\``;\n } else if (projectConfig.staticConfigPath) {\n return `Using static config \\`${path.relative(projectRoot, projectConfig.staticConfigPath)}\\``;\n }\n return null;\n}\n\nexport * from './Config.types';\n"]}
\No newline at end of file