1 line
32 KiB
Plaintext
1 line
32 KiB
Plaintext
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"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","sourcesContent":["import { ModConfig } from '@expo/config-plugins';\nimport JsonFile, { JSONObject } from '@expo/json-file';\nimport fs from 'fs-extra';\nimport { sync as globSync } from 'glob';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\nimport slugify from 'slugify';\n\nimport {\n AppJSONConfig,\n ConfigFilePaths,\n ExpoConfig,\n ExpRc,\n GetConfigOptions,\n PackageJSONConfig,\n Platform,\n ProjectConfig,\n ProjectTarget,\n WriteConfigOptions,\n} from './Config.types';\nimport { ConfigError } from './Errors';\nimport { getExpoSDKVersion } from './Project';\nimport { getDynamicConfig, getStaticConfig } from './getConfig';\nimport { withConfigPlugins } from './plugins/withConfigPlugins';\nimport { withInternal } from './plugins/withInternal';\nimport { getRootPackageJsonPath } from './resolvePackageJson';\n\ntype SplitConfigs = { expo: ExpoConfig; mods: ModConfig };\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): SplitConfigs {\n if (!config) return config === undefined ? null : config;\n\n const { mods, ...expo } = config.expo ?? config;\n\n return {\n expo,\n mods,\n };\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(projectRoot: string): Platform[] {\n const platforms: Platform[] = [];\n if (resolveFrom.silent(projectRoot, 'react-native')) {\n platforms.push('ios', 'android');\n }\n if (resolveFrom.silent(projectRoot, 'react-native-web')) {\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 * If options.isPublicConfig is true, the Expo config will include only public-facing options (omitting private keys).\n * The resulting config should be suitable for hosting or embedding in a publicly readable location.\n *\n * **Example**\n * ```js\n * module.exports = function({ config }) {\n * // mutate the config before returning it.\n * config.slug = 'new slug'\n * return { expo: 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 // Can only change the package.json location if an app.json or app.config.json exists\n const [packageJson, packageJsonPath] = getPackageJsonAndPath(projectRoot);\n\n function fillAndReturnConfig(config: SplitConfigs, dynamicConfigObjectType: string | null) {\n const configWithDefaultValues = {\n ...ensureConfigHasDefaultValues({\n projectRoot,\n exp: config.expo,\n pkg: packageJson,\n skipSDKVersionRequirement: options.skipSDKVersionRequirement,\n paths,\n packageJsonPath,\n }),\n mods: config.mods,\n dynamicConfigObjectType,\n rootConfig,\n dynamicConfigPath: paths.dynamicConfigPath,\n staticConfigPath: paths.staticConfigPath,\n };\n\n if (options.isModdedConfig) {\n // @ts-ignore: Add the mods back to the object.\n configWithDefaultValues.exp.mods = config.mods ?? null;\n }\n\n // Apply static json plugins, should be done after _internal\n configWithDefaultValues.exp = withConfigPlugins(configWithDefaultValues.exp);\n\n if (!options.isModdedConfig) {\n // @ts-ignore: Delete mods added by static plugins when they won't have a chance to be evaluated\n delete configWithDefaultValues.exp.mods;\n }\n\n if (options.isPublicConfig) {\n // Remove internal values with references to user's file paths from the public config.\n delete configWithDefaultValues.exp._internal;\n\n if (configWithDefaultValues.exp.hooks) {\n delete configWithDefaultValues.exp.hooks;\n }\n if (configWithDefaultValues.exp.ios?.config) {\n delete configWithDefaultValues.exp.ios.config;\n }\n if (configWithDefaultValues.exp.android?.config) {\n delete configWithDefaultValues.exp.android.config;\n }\n }\n\n return configWithDefaultValues;\n }\n\n // Fill in the static config\n function getContextConfig(config: SplitConfigs) {\n return ensureConfigHasDefaultValues({\n projectRoot,\n exp: config.expo,\n pkg: packageJson,\n skipSDKVersionRequirement: true,\n paths,\n packageJsonPath,\n }).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(projectRoot: string): PackageJSONConfig {\n const [pkg] = getPackageJsonAndPath(projectRoot);\n return pkg;\n}\n\nfunction getPackageJsonAndPath(projectRoot: string): [PackageJSONConfig, string] {\n const packageJsonPath = getRootPackageJsonPath(projectRoot);\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) return ` \\`${path.basename(paths.staticConfigPath)}\\``;\n return '';\n };\n\n let outputRootConfig = rawStaticConfig as JSONObject | null;\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 Partial<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, packageJsonPath] = getPackageJsonAndPath(projectRoot);\n\n return {\n ...ensureConfigHasDefaultValues({\n projectRoot,\n exp,\n pkg,\n skipSDKVersionRequirement: skipNativeValidation,\n paths,\n packageJsonPath,\n }),\n mods: null,\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 resetCustomConfigPaths(): void {\n for (const key of Object.keys(customConfigPaths)) {\n delete customConfigPaths[key];\n }\n}\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<{\n type: 'success' | 'warn' | 'fail';\n message?: string;\n config: ExpoConfig | AppJSONConfig | null;\n}> {\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: ExpoConfig | 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,\n exp,\n pkg,\n paths,\n packageJsonPath,\n skipSDKVersionRequirement = false,\n}: {\n projectRoot: string;\n exp: Partial<ExpoConfig> | null;\n pkg: JSONObject;\n skipSDKVersionRequirement?: boolean;\n paths?: ConfigFilePaths;\n packageJsonPath?: string;\n}): { exp: ExpoConfig; pkg: PackageJSONConfig } {\n if (!exp) {\n exp = {};\n }\n exp = withInternal(exp as any, {\n projectRoot,\n ...(paths ?? {}),\n packageJsonPath,\n });\n // Defaults for package.json fields\n const pkgName = typeof pkg.name === 'string' ? pkg.name : path.basename(projectRoot);\n const pkgVersion = typeof pkg.version === 'string' ? pkg.version : '1.0.0';\n\n const pkgWithDefaults = { ...pkg, name: pkgName, version: pkgVersion };\n\n // Defaults for app.json/app.config.js fields\n const name = exp.name ?? pkgName;\n const slug = exp.slug ?? slugify(name.toLowerCase());\n const version = exp.version ?? pkgVersion;\n let description = exp.description;\n if (!description && typeof pkg.description === 'string') {\n description = pkg.description;\n }\n\n const expWithDefaults = { ...exp, name, slug, version, description };\n\n let sdkVersion;\n try {\n sdkVersion = getExpoSDKVersion(projectRoot, expWithDefaults);\n } catch (error) {\n if (!skipSDKVersionRequirement) throw error;\n }\n\n let platforms = exp.platforms;\n if (!platforms) {\n platforms = getSupportedPlatforms(projectRoot);\n }\n\n return {\n exp: { ...expWithDefaults, sdkVersion, platforms },\n pkg: pkgWithDefaults,\n };\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(\n exp: Record<string, any> = {}\n): { 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] = getPackageJsonAndPath(projectRoot);\n\n if (pkg.dependencies && pkg.dependencies.expokit) {\n return false;\n }\n\n const xcodeprojFiles = globSync('ios/**/*.xcodeproj', {\n absolute: true,\n cwd: projectRoot,\n });\n if (xcodeprojFiles.length) {\n return true;\n }\n const gradleFiles = globSync('android/**/*.gradle', {\n absolute: true,\n cwd: projectRoot,\n });\n if (gradleFiles.length) {\n return true;\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 * Return a useful name describing the project config.\n * - dynamic: app.config.js\n * - static: app.json\n * - custom path app config relative to root folder\n * - both: app.config.js or app.json\n */\nexport function getProjectConfigDescription(projectRoot: string): string {\n const paths = getConfigFilePaths(projectRoot);\n return getProjectConfigDescriptionWithPaths(projectRoot, paths);\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 getProjectConfigDescriptionWithPaths(\n projectRoot: string,\n projectConfig: ConfigFilePaths\n): string {\n if (projectConfig.dynamicConfigPath) {\n const relativeDynamicConfigPath = path.relative(projectRoot, projectConfig.dynamicConfigPath);\n if (projectConfig.staticConfigPath) {\n return `${relativeDynamicConfigPath} or ${path.relative(\n projectRoot,\n projectConfig.staticConfigPath\n )}`;\n }\n return relativeDynamicConfigPath;\n } else if (projectConfig.staticConfigPath) {\n return path.relative(projectRoot, projectConfig.staticConfigPath);\n }\n // If a config doesn't exist, our tooling will generate a static app.json\n return 'app.json';\n}\n\nexport * from './Config.types';\n\nexport { isLegacyImportsEnabled } from './isLegacyImportsEnabled';\n"]} |