1 line
11 KiB
Plaintext
1 line
11 KiB
Plaintext
{"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../src/ios/Paths.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathExistsSync, readFileSync } from 'fs-extra';\nimport { sync as globSync } from 'glob';\nimport * as path from 'path';\n\nimport { UnexpectedError } from '../utils/errors';\nimport * as WarningAggregator from '../utils/warnings';\n\nconst ignoredPaths = ['**/@(Carthage|Pods|node_modules)/**'];\n\ninterface ProjectFile<L extends string = string> {\n path: string;\n language: L;\n contents: string;\n}\n\nexport type AppDelegateProjectFile = ProjectFile<'objc' | 'swift'>;\n\nexport function getAppDelegate(projectRoot: string): AppDelegateProjectFile {\n const [using, ...extra] = globSync('ios/*/AppDelegate.@(m|swift)', {\n absolute: true,\n cwd: projectRoot,\n ignore: ignoredPaths,\n });\n\n if (!using) {\n throw new UnexpectedError(`Could not locate a valid AppDelegate at root: \"${projectRoot}\"`);\n }\n\n if (extra.length) {\n warnMultipleFiles({\n tag: 'app-delegate',\n fileName: 'AppDelegate',\n projectRoot,\n using,\n extra,\n });\n }\n\n const isSwift = using.match(/^.*\\.(swift)$/);\n return {\n path: using,\n contents: readFileSync(using, 'utf8'),\n language: isSwift ? 'swift' : 'objc',\n };\n}\n\nexport function getSourceRoot(projectRoot: string): string {\n const appDelegate = getAppDelegate(projectRoot);\n return path.dirname(appDelegate.path);\n}\n\nexport function findSchemePaths(projectRoot: string): string[] {\n return globSync('ios/*.xcodeproj/xcshareddata/xcschemes/*.xcscheme', {\n absolute: true,\n cwd: projectRoot,\n ignore: ignoredPaths,\n });\n}\n\nexport function findSchemeNames(projectRoot: string): string[] {\n const schemePaths = findSchemePaths(projectRoot);\n return schemePaths.map(schemePath => path.basename(schemePath).split('.')[0]);\n}\n\nexport function getAllXcodeProjectPaths(projectRoot: string): string[] {\n const iosFolder = 'ios';\n const pbxprojPaths = globSync('**/*.xcodeproj', { cwd: projectRoot, ignore: ignoredPaths })\n .filter(project => !/test|example|sample/i.test(project) || path.dirname(project) === iosFolder)\n .sort(project => (path.dirname(project) === iosFolder ? -1 : 1))\n // sort alphabetically to ensure this works the same across different devices (Fail in CI (linux) without this)\n .sort();\n\n if (!pbxprojPaths.length) {\n throw new UnexpectedError(\n `Failed to locate the ios/*.xcodeproj files relative to path \"${projectRoot}\".`\n );\n }\n return pbxprojPaths.map(value => path.join(projectRoot, value));\n}\n\n/**\n * Get the pbxproj for the given path\n */\nexport function getXcodeProjectPath(projectRoot: string): string {\n const [using, ...extra] = getAllXcodeProjectPaths(projectRoot);\n\n if (extra.length) {\n warnMultipleFiles({\n tag: 'xcodeproj',\n fileName: '*.xcodeproj',\n projectRoot,\n using,\n extra,\n });\n }\n\n return using;\n}\n\nexport function getAllPBXProjectPaths(projectRoot: string): string[] {\n const projectPaths = getAllXcodeProjectPaths(projectRoot);\n const paths = projectPaths\n .map(value => path.join(value, 'project.pbxproj'))\n .filter(value => pathExistsSync(value));\n\n if (!paths.length) {\n throw new UnexpectedError(\n `Failed to locate the ios/*.xcodeproj/project.pbxproj files relative to path \"${projectRoot}\".`\n );\n }\n return paths;\n}\n\nexport function getPBXProjectPath(projectRoot: string): string {\n const [using, ...extra] = getAllPBXProjectPaths(projectRoot);\n\n if (extra.length) {\n warnMultipleFiles({\n tag: 'project-pbxproj',\n fileName: 'project.pbxproj',\n projectRoot,\n using,\n extra,\n });\n }\n\n return using;\n}\n\nexport function getAllInfoPlistPaths(projectRoot: string): string[] {\n const paths = globSync('ios/*/Info.plist', {\n absolute: true,\n cwd: projectRoot,\n ignore: ignoredPaths,\n }).sort(\n // longer name means more suffixes, we want the shortest possible one to be first.\n (a, b) => a.length - b.length\n );\n\n if (!paths.length) {\n throw new UnexpectedError(\n `Failed to locate Info.plist files relative to path \"${projectRoot}\".`\n );\n }\n return paths;\n}\n\nexport function getInfoPlistPath(projectRoot: string): string {\n const [using, ...extra] = getAllInfoPlistPaths(projectRoot);\n\n if (extra.length) {\n warnMultipleFiles({\n tag: 'info-plist',\n fileName: 'Info.plist',\n projectRoot,\n using,\n extra,\n });\n }\n\n return using;\n}\n\nexport function getAllEntitlementsPaths(projectRoot: string): string[] {\n const paths = globSync('ios/*/*.entitlements', {\n absolute: true,\n cwd: projectRoot,\n ignore: ignoredPaths,\n });\n return paths;\n}\n\n/**\n * Get the entitlements file path if it exists.\n *\n * @param projectRoot\n */\nexport function getEntitlementsPath(projectRoot: string): string | null {\n const [using, ...extra] = getAllEntitlementsPaths(projectRoot);\n\n if (extra.length) {\n warnMultipleFiles({\n tag: 'entitlements',\n fileName: '*.entitlements',\n projectRoot,\n using,\n extra,\n });\n }\n\n return using ?? null;\n}\n\nexport function getSupportingPath(projectRoot: string): string {\n return path.resolve(projectRoot, 'ios', path.basename(getSourceRoot(projectRoot)), 'Supporting');\n}\n\nexport function getExpoPlistPath(projectRoot: string): string {\n const supportingPath = getSupportingPath(projectRoot);\n return path.join(supportingPath, 'Expo.plist');\n}\n\nfunction warnMultipleFiles({\n tag,\n fileName,\n projectRoot,\n using,\n extra,\n}: {\n tag: string;\n fileName: string;\n projectRoot?: string;\n using: string;\n extra: string[];\n}) {\n const usingPath = projectRoot ? path.relative(projectRoot, using) : using;\n const extraPaths = projectRoot ? extra.map(v => path.relative(projectRoot, v)) : extra;\n WarningAggregator.addWarningIOS(\n `paths-${tag}`,\n `Found multiple ${fileName} file paths, using \"${usingPath}\". Ignored paths: ${JSON.stringify(\n extraPaths\n )}`\n );\n}\n"]} |