index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.projectConfig = projectConfig;
  6. exports.dependencyConfig = dependencyConfig;
  7. function _path() {
  8. const data = _interopRequireDefault(require("path"));
  9. _path = function () {
  10. return data;
  11. };
  12. return data;
  13. }
  14. function _fs() {
  15. const data = _interopRequireDefault(require("fs"));
  16. _fs = function () {
  17. return data;
  18. };
  19. return data;
  20. }
  21. var _findAndroidDir = _interopRequireDefault(require("./findAndroidDir"));
  22. var _findManifest = _interopRequireDefault(require("./findManifest"));
  23. var _findPackageClassName = _interopRequireDefault(require("./findPackageClassName"));
  24. var _readManifest = _interopRequireDefault(require("./readManifest"));
  25. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  26. /**
  27. * Copyright (c) Facebook, Inc. and its affiliates.
  28. *
  29. * This source code is licensed under the MIT license found in the
  30. * LICENSE file in the root directory of this source tree.
  31. *
  32. */
  33. const getPackageName = manifest => manifest.attr.package;
  34. /**
  35. * Gets android project config by analyzing given folder and taking some
  36. * defaults specified by user into consideration
  37. */
  38. function projectConfig(root, userConfig = {}) {
  39. const src = userConfig.sourceDir || (0, _findAndroidDir.default)(root);
  40. if (!src) {
  41. return null;
  42. }
  43. const sourceDir = _path().default.join(root, src);
  44. const appName = getAppName(sourceDir, userConfig.appName);
  45. const isFlat = sourceDir.indexOf('app') === -1;
  46. const manifestPath = userConfig.manifestPath ? _path().default.join(sourceDir, userConfig.manifestPath) : (0, _findManifest.default)(_path().default.join(sourceDir, appName));
  47. if (!manifestPath) {
  48. return null;
  49. }
  50. const manifest = (0, _readManifest.default)(manifestPath);
  51. const packageName = userConfig.packageName || getPackageName(manifest);
  52. if (!packageName) {
  53. throw new Error(`Package name not found in ${manifestPath}`);
  54. }
  55. const packageFolder = userConfig.packageFolder || packageName.replace(/\./g, _path().default.sep);
  56. const mainFilePath = _path().default.join(sourceDir, userConfig.mainFilePath || _path().default.join(appName, `src/main/java/${packageFolder}/MainApplication.java`));
  57. const stringsPath = _path().default.join(sourceDir, userConfig.stringsPath || _path().default.join(appName, '/src/main/res/values/strings.xml'));
  58. const settingsGradlePath = _path().default.join(sourceDir, userConfig.settingsGradlePath || 'settings.gradle');
  59. const assetsPath = _path().default.join(sourceDir, userConfig.assetsPath || _path().default.join(appName, '/src/main/assets'));
  60. const buildGradlePath = _path().default.join(sourceDir, userConfig.buildGradlePath || 'build.gradle');
  61. return {
  62. sourceDir,
  63. isFlat,
  64. folder: root,
  65. stringsPath,
  66. manifestPath,
  67. buildGradlePath,
  68. settingsGradlePath,
  69. assetsPath,
  70. mainFilePath,
  71. packageName,
  72. packageFolder,
  73. appName
  74. };
  75. }
  76. function getAppName(sourceDir, userConfigAppName) {
  77. let appName = '';
  78. if (typeof userConfigAppName === 'string' && _fs().default.existsSync(_path().default.join(sourceDir, userConfigAppName))) {
  79. appName = userConfigAppName;
  80. } else if (_fs().default.existsSync(_path().default.join(sourceDir, 'app'))) {
  81. appName = 'app';
  82. }
  83. return appName;
  84. }
  85. /**
  86. * Same as projectConfigAndroid except it returns
  87. * different config that applies to packages only
  88. */
  89. function dependencyConfig(root, userConfig = {}) {
  90. const src = userConfig.sourceDir || (0, _findAndroidDir.default)(root);
  91. if (!src) {
  92. return null;
  93. }
  94. const sourceDir = _path().default.join(root, src);
  95. const manifestPath = userConfig.manifestPath ? _path().default.join(sourceDir, userConfig.manifestPath) : (0, _findManifest.default)(sourceDir);
  96. if (!manifestPath) {
  97. return null;
  98. }
  99. const manifest = (0, _readManifest.default)(manifestPath);
  100. const packageName = userConfig.packageName || getPackageName(manifest);
  101. const packageClassName = (0, _findPackageClassName.default)(sourceDir);
  102. /**
  103. * This module has no package to export
  104. */
  105. if (!packageClassName) {
  106. return null;
  107. }
  108. const packageImportPath = userConfig.packageImportPath || `import ${packageName}.${packageClassName};`;
  109. const packageInstance = userConfig.packageInstance || `new ${packageClassName}()`;
  110. return {
  111. sourceDir,
  112. folder: root,
  113. packageImportPath,
  114. packageInstance
  115. };
  116. }
  117. //# sourceMappingURL=index.js.map