index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. function _path() {
  7. const data = _interopRequireDefault(require("path"));
  8. _path = function () {
  9. return data;
  10. };
  11. return data;
  12. }
  13. function _chalk() {
  14. const data = _interopRequireDefault(require("chalk"));
  15. _chalk = function () {
  16. return data;
  17. };
  18. return data;
  19. }
  20. function _cliTools() {
  21. const data = require("@react-native-community/cli-tools");
  22. _cliTools = function () {
  23. return data;
  24. };
  25. return data;
  26. }
  27. var _findDependencies = _interopRequireDefault(require("./findDependencies"));
  28. var _findProjectRoot = _interopRequireDefault(require("./findProjectRoot"));
  29. var _resolveReactNativePath = _interopRequireDefault(require("./resolveReactNativePath"));
  30. var _findAssets = _interopRequireDefault(require("./findAssets"));
  31. var _readConfigFromDisk = require("./readConfigFromDisk");
  32. var _assign = _interopRequireDefault(require("../assign"));
  33. var _merge = _interopRequireDefault(require("../merge"));
  34. var _resolveNodeModuleDir = _interopRequireDefault(require("./resolveNodeModuleDir"));
  35. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  36. function getDependencyConfig(root, dependencyName, finalConfig, config, userConfig, isPlatform) {
  37. return (0, _merge.default)({
  38. root,
  39. name: dependencyName,
  40. platforms: Object.keys(finalConfig.platforms).reduce((dependency, platform) => {
  41. const platformConfig = finalConfig.platforms[platform];
  42. dependency[platform] = // Linking platforms is not supported
  43. isPlatform || !platformConfig ? null : platformConfig.dependencyConfig(root, config.dependency.platforms[platform]);
  44. return dependency;
  45. }, {}),
  46. assets: (0, _findAssets.default)(root, config.dependency.assets),
  47. hooks: config.dependency.hooks,
  48. params: config.dependency.params
  49. }, userConfig.dependencies[dependencyName] || {});
  50. }
  51. /**
  52. * Loads CLI configuration
  53. */
  54. function loadConfig(projectRoot = (0, _findProjectRoot.default)()) {
  55. let lazyProject;
  56. const userConfig = (0, _readConfigFromDisk.readConfigFromDisk)(projectRoot);
  57. const initialConfig = {
  58. root: projectRoot,
  59. get reactNativePath() {
  60. return userConfig.reactNativePath ? _path().default.resolve(projectRoot, userConfig.reactNativePath) : (0, _resolveReactNativePath.default)(projectRoot);
  61. },
  62. dependencies: userConfig.dependencies,
  63. commands: userConfig.commands,
  64. get assets() {
  65. return (0, _findAssets.default)(projectRoot, userConfig.assets);
  66. },
  67. platforms: userConfig.platforms,
  68. get project() {
  69. if (lazyProject) {
  70. return lazyProject;
  71. }
  72. lazyProject = {};
  73. for (const platform in finalConfig.platforms) {
  74. const platformConfig = finalConfig.platforms[platform];
  75. if (platformConfig) {
  76. lazyProject[platform] = platformConfig.projectConfig(projectRoot, userConfig.project[platform] || {});
  77. }
  78. }
  79. return lazyProject;
  80. }
  81. };
  82. const finalConfig = Array.from(new Set([...Object.keys(userConfig.dependencies), ...(0, _findDependencies.default)(projectRoot)])).reduce((acc, dependencyName) => {
  83. const localDependencyRoot = userConfig.dependencies[dependencyName] && userConfig.dependencies[dependencyName].root;
  84. let root;
  85. let config;
  86. try {
  87. root = localDependencyRoot || (0, _resolveNodeModuleDir.default)(projectRoot, dependencyName);
  88. config = (0, _readConfigFromDisk.readDependencyConfigFromDisk)(root);
  89. } catch (error) {
  90. _cliTools().logger.warn((0, _cliTools().inlineString)(`
  91. Package ${_chalk().default.bold(dependencyName)} has been ignored because it contains invalid configuration.
  92. Reason: ${_chalk().default.dim(error.message)}`));
  93. return acc;
  94. }
  95. const isPlatform = Object.keys(config.platforms).length > 0;
  96. return (0, _assign.default)({}, acc, {
  97. dependencies: (0, _assign.default)({}, acc.dependencies, {
  98. get [dependencyName]() {
  99. return getDependencyConfig(root, dependencyName, finalConfig, config, userConfig, isPlatform);
  100. }
  101. }),
  102. commands: [...acc.commands, ...config.commands],
  103. platforms: { ...acc.platforms,
  104. ...config.platforms
  105. }
  106. });
  107. }, initialConfig);
  108. return finalConfig;
  109. }
  110. var _default = loadConfig;
  111. exports.default = _default;
  112. //# sourceMappingURL=index.js.map