UNPKG

7.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"Package.js","sourceRoot":"","sources":["../../src/android/Package.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { sync as globSync } from 'glob';\nimport { ExpoConfig } from '../Config.types';\nimport { Document } from './Manifest';\n\nexport function getPackage(config: ExpoConfig) {\n if (config.android && config.android.package) {\n return config.android.package;\n }\n\n return null;\n}\n\nfunction getPackageRoot(projectRoot: string) {\n return path.join(projectRoot, 'android', 'app', 'src', 'main', 'java');\n}\n\nfunction getCurrentPackageName(projectRoot: string) {\n let packageRoot = getPackageRoot(projectRoot);\n let mainApplicationPath = globSync(path.join(packageRoot, '**', 'MainApplication.java'))[0];\n let packagePath = path.dirname(mainApplicationPath);\n let packagePathParts = packagePath\n .replace(packageRoot, '')\n .split(path.sep)\n .filter(Boolean);\n\n return packagePathParts.join('.');\n}\n\n// NOTE(brentvatne): this assumes that our MainApplication.java file is in the root of the package\n// this makes sense for standard react-native projects but may not apply in customized projects, so if\n// we want this to be runnable in any app we need to handle other possibilities\nexport function renamePackageOnDisk(config: ExpoConfig, projectRoot: string) {\n const newPackageName = getPackage(config);\n if (newPackageName === null) {\n return;\n }\n\n const currentPackageName = getCurrentPackageName(projectRoot);\n if (currentPackageName === newPackageName) {\n return;\n }\n\n // Set up our paths\n let packageRoot = getPackageRoot(projectRoot);\n let currentPackagePath = path.join(packageRoot, ...currentPackageName.split('.'));\n let newPackagePath = path.join(packageRoot, ...newPackageName.split('.'));\n\n // Create the new directory\n fs.mkdirpSync(newPackagePath);\n\n // Move everything from the old directory over\n globSync(path.join(currentPackagePath, '**', '*')).forEach(filepath => {\n let relativePath = filepath.replace(currentPackagePath, '');\n if (fs.lstatSync(filepath).isFile()) {\n fs.moveSync(filepath, path.join(newPackagePath, relativePath));\n } else {\n fs.mkdirpSync(filepath);\n }\n });\n\n // Remove the old directory recursively from com/old/package to com/old and com,\n // as long as the directories are empty\n let oldPathParts = currentPackageName.split('.');\n while (oldPathParts.length) {\n let pathToCheck = path.join(packageRoot, ...oldPathParts);\n try {\n let files = fs.readdirSync(pathToCheck);\n if (files.length === 0) {\n fs.rmdirSync(pathToCheck);\n }\n } catch (_) {\n } finally {\n oldPathParts.pop();\n }\n }\n\n const filesToUpdate = [\n ...globSync(path.join(newPackagePath, '**', '*')),\n path.join(projectRoot, 'android', 'app', 'BUCK'),\n ];\n // Replace all occurrences of the path in the project\n filesToUpdate.forEach((filepath: string) => {\n try {\n if (fs.lstatSync(filepath).isFile()) {\n let contents = fs.readFileSync(filepath).toString();\n contents = contents.replace(new RegExp(currentPackageName, 'g'), newPackageName);\n fs.writeFileSync(filepath, contents);\n }\n } catch (_) {}\n });\n}\n\nexport function setPackageInBuildGradle(config: ExpoConfig, buildGradle: string) {\n let packageName = getPackage(config);\n if (packageName === null) {\n return buildGradle;\n }\n\n let pattern = new RegExp(`applicationId ['\"].*['\"]`);\n return buildGradle.replace(pattern, `applicationId '${packageName}'`);\n}\n\nexport async function setPackageInAndroidManifest(config: ExpoConfig, manifestDocument: Document) {\n let packageName = getPackage(config);\n\n manifestDocument['manifest']['$']['package'] = packageName;\n\n return manifestDocument;\n}\n"]}
\No newline at end of file