1*082815dcSEvan Bacon"use strict"; 2*082815dcSEvan Bacon 3*082815dcSEvan BaconObject.defineProperty(exports, "__esModule", { 4*082815dcSEvan Bacon value: true 5*082815dcSEvan Bacon}); 6*082815dcSEvan Baconexports.getAndroidManifestAsync = getAndroidManifestAsync; 7*082815dcSEvan Baconexports.getAppBuildGradleAsync = getAppBuildGradleAsync; 8*082815dcSEvan Baconexports.getAppBuildGradleFilePath = getAppBuildGradleFilePath; 9*082815dcSEvan Baconexports.getFileInfo = getFileInfo; 10*082815dcSEvan Baconexports.getGradleFilePath = getGradleFilePath; 11*082815dcSEvan Baconexports.getMainActivityAsync = getMainActivityAsync; 12*082815dcSEvan Baconexports.getMainApplicationAsync = getMainApplicationAsync; 13*082815dcSEvan Baconexports.getProjectBuildGradleAsync = getProjectBuildGradleAsync; 14*082815dcSEvan Baconexports.getProjectBuildGradleFilePath = getProjectBuildGradleFilePath; 15*082815dcSEvan Baconexports.getProjectFilePath = getProjectFilePath; 16*082815dcSEvan Baconexports.getProjectPathOrThrowAsync = getProjectPathOrThrowAsync; 17*082815dcSEvan Baconexports.getResourceFolderAsync = getResourceFolderAsync; 18*082815dcSEvan Baconexports.getResourceXMLPathAsync = getResourceXMLPathAsync; 19*082815dcSEvan Baconexports.getSettingsGradleAsync = getSettingsGradleAsync; 20*082815dcSEvan Baconexports.getSettingsGradleFilePath = getSettingsGradleFilePath; 21*082815dcSEvan Baconfunction _assert() { 22*082815dcSEvan Bacon const data = _interopRequireDefault(require("assert")); 23*082815dcSEvan Bacon _assert = function () { 24*082815dcSEvan Bacon return data; 25*082815dcSEvan Bacon }; 26*082815dcSEvan Bacon return data; 27*082815dcSEvan Bacon} 28*082815dcSEvan Baconfunction _fs() { 29*082815dcSEvan Bacon const data = _interopRequireDefault(require("fs")); 30*082815dcSEvan Bacon _fs = function () { 31*082815dcSEvan Bacon return data; 32*082815dcSEvan Bacon }; 33*082815dcSEvan Bacon return data; 34*082815dcSEvan Bacon} 35*082815dcSEvan Baconfunction _glob() { 36*082815dcSEvan Bacon const data = require("glob"); 37*082815dcSEvan Bacon _glob = function () { 38*082815dcSEvan Bacon return data; 39*082815dcSEvan Bacon }; 40*082815dcSEvan Bacon return data; 41*082815dcSEvan Bacon} 42*082815dcSEvan Baconfunction path() { 43*082815dcSEvan Bacon const data = _interopRequireWildcard(require("path")); 44*082815dcSEvan Bacon path = function () { 45*082815dcSEvan Bacon return data; 46*082815dcSEvan Bacon }; 47*082815dcSEvan Bacon return data; 48*082815dcSEvan Bacon} 49*082815dcSEvan Baconfunction _errors() { 50*082815dcSEvan Bacon const data = require("../utils/errors"); 51*082815dcSEvan Bacon _errors = function () { 52*082815dcSEvan Bacon return data; 53*082815dcSEvan Bacon }; 54*082815dcSEvan Bacon return data; 55*082815dcSEvan Bacon} 56*082815dcSEvan Baconfunction _modules() { 57*082815dcSEvan Bacon const data = require("../utils/modules"); 58*082815dcSEvan Bacon _modules = function () { 59*082815dcSEvan Bacon return data; 60*082815dcSEvan Bacon }; 61*082815dcSEvan Bacon return data; 62*082815dcSEvan Bacon} 63*082815dcSEvan Baconfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } 64*082815dcSEvan Baconfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } 65*082815dcSEvan Baconfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 66*082815dcSEvan Baconfunction getProjectFilePath(projectRoot, name) { 67*082815dcSEvan Bacon const filePath = (0, _glob().sync)(path().join(projectRoot, `android/app/src/main/java/**/${name}.@(java|kt)`))[0]; 68*082815dcSEvan Bacon (0, _assert().default)(filePath, `Project file "${name}" does not exist in android project for root "${projectRoot}"`); 69*082815dcSEvan Bacon return filePath; 70*082815dcSEvan Bacon} 71*082815dcSEvan Baconfunction getLanguage(filePath) { 72*082815dcSEvan Bacon const extension = path().extname(filePath); 73*082815dcSEvan Bacon switch (extension) { 74*082815dcSEvan Bacon case '.java': 75*082815dcSEvan Bacon return 'java'; 76*082815dcSEvan Bacon case '.kts': 77*082815dcSEvan Bacon case '.kt': 78*082815dcSEvan Bacon return 'kt'; 79*082815dcSEvan Bacon case '.groovy': 80*082815dcSEvan Bacon case '.gradle': 81*082815dcSEvan Bacon return 'groovy'; 82*082815dcSEvan Bacon default: 83*082815dcSEvan Bacon throw new (_errors().UnexpectedError)(`Unexpected Android file extension: ${extension}`); 84*082815dcSEvan Bacon } 85*082815dcSEvan Bacon} 86*082815dcSEvan Baconfunction getFileInfo(filePath) { 87*082815dcSEvan Bacon return { 88*082815dcSEvan Bacon path: path().normalize(filePath), 89*082815dcSEvan Bacon contents: _fs().default.readFileSync(filePath, 'utf8'), 90*082815dcSEvan Bacon language: getLanguage(filePath) 91*082815dcSEvan Bacon }; 92*082815dcSEvan Bacon} 93*082815dcSEvan Baconasync function getMainApplicationAsync(projectRoot) { 94*082815dcSEvan Bacon const filePath = getProjectFilePath(projectRoot, 'MainApplication'); 95*082815dcSEvan Bacon return getFileInfo(filePath); 96*082815dcSEvan Bacon} 97*082815dcSEvan Baconasync function getMainActivityAsync(projectRoot) { 98*082815dcSEvan Bacon const filePath = getProjectFilePath(projectRoot, 'MainActivity'); 99*082815dcSEvan Bacon return getFileInfo(filePath); 100*082815dcSEvan Bacon} 101*082815dcSEvan Baconfunction getGradleFilePath(projectRoot, gradleName) { 102*082815dcSEvan Bacon const groovyPath = path().resolve(projectRoot, `${gradleName}.gradle`); 103*082815dcSEvan Bacon const ktPath = path().resolve(projectRoot, `${gradleName}.gradle.kts`); 104*082815dcSEvan Bacon const isGroovy = _fs().default.existsSync(groovyPath); 105*082815dcSEvan Bacon const isKotlin = !isGroovy && _fs().default.existsSync(ktPath); 106*082815dcSEvan Bacon if (!isGroovy && !isKotlin) { 107*082815dcSEvan Bacon throw new Error(`Failed to find '${gradleName}.gradle' file for project: ${projectRoot}.`); 108*082815dcSEvan Bacon } 109*082815dcSEvan Bacon const filePath = isGroovy ? groovyPath : ktPath; 110*082815dcSEvan Bacon return filePath; 111*082815dcSEvan Bacon} 112*082815dcSEvan Baconfunction getProjectBuildGradleFilePath(projectRoot) { 113*082815dcSEvan Bacon return getGradleFilePath(path().join(projectRoot, 'android'), 'build'); 114*082815dcSEvan Bacon} 115*082815dcSEvan Baconasync function getProjectBuildGradleAsync(projectRoot) { 116*082815dcSEvan Bacon return getFileInfo(getProjectBuildGradleFilePath(projectRoot)); 117*082815dcSEvan Bacon} 118*082815dcSEvan Baconfunction getSettingsGradleFilePath(projectRoot) { 119*082815dcSEvan Bacon return getGradleFilePath(path().join(projectRoot, 'android'), 'settings'); 120*082815dcSEvan Bacon} 121*082815dcSEvan Baconasync function getSettingsGradleAsync(projectRoot) { 122*082815dcSEvan Bacon return getFileInfo(getSettingsGradleFilePath(projectRoot)); 123*082815dcSEvan Bacon} 124*082815dcSEvan Baconfunction getAppBuildGradleFilePath(projectRoot) { 125*082815dcSEvan Bacon return getGradleFilePath(path().join(projectRoot, 'android', 'app'), 'build'); 126*082815dcSEvan Bacon} 127*082815dcSEvan Baconasync function getAppBuildGradleAsync(projectRoot) { 128*082815dcSEvan Bacon return getFileInfo(getAppBuildGradleFilePath(projectRoot)); 129*082815dcSEvan Bacon} 130*082815dcSEvan Baconasync function getProjectPathOrThrowAsync(projectRoot) { 131*082815dcSEvan Bacon const projectPath = path().join(projectRoot, 'android'); 132*082815dcSEvan Bacon if (await (0, _modules().directoryExistsAsync)(projectPath)) { 133*082815dcSEvan Bacon return projectPath; 134*082815dcSEvan Bacon } 135*082815dcSEvan Bacon throw new Error(`Android project folder is missing in project: ${projectRoot}`); 136*082815dcSEvan Bacon} 137*082815dcSEvan Baconasync function getAndroidManifestAsync(projectRoot) { 138*082815dcSEvan Bacon const projectPath = await getProjectPathOrThrowAsync(projectRoot); 139*082815dcSEvan Bacon const filePath = path().join(projectPath, 'app/src/main/AndroidManifest.xml'); 140*082815dcSEvan Bacon return filePath; 141*082815dcSEvan Bacon} 142*082815dcSEvan Baconasync function getResourceFolderAsync(projectRoot) { 143*082815dcSEvan Bacon const projectPath = await getProjectPathOrThrowAsync(projectRoot); 144*082815dcSEvan Bacon return path().join(projectPath, `app/src/main/res`); 145*082815dcSEvan Bacon} 146*082815dcSEvan Baconasync function getResourceXMLPathAsync(projectRoot, { 147*082815dcSEvan Bacon kind = 'values', 148*082815dcSEvan Bacon name 149*082815dcSEvan Bacon}) { 150*082815dcSEvan Bacon const resourcePath = await getResourceFolderAsync(projectRoot); 151*082815dcSEvan Bacon const filePath = path().join(resourcePath, `${kind}/${name}.xml`); 152*082815dcSEvan Bacon return filePath; 153*082815dcSEvan Bacon} 154*082815dcSEvan Bacon//# sourceMappingURL=Paths.js.map