@rnx-kit/cli 0.12.2 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
32
32
  });
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.rnxCopyAssetsCommand = exports.copyProjectAssets = exports.gatherConfigs = exports.copyAssets = exports.versionOf = void 0;
35
+ exports.rnxCopyAssetsCommand = exports.copyProjectAssets = exports.gatherConfigs = exports.copyAssets = exports.assembleAarBundle = exports.versionOf = void 0;
36
36
  const console_1 = require("@rnx-kit/console");
37
37
  const array_1 = require("@rnx-kit/tools-language/array");
38
38
  const package_1 = require("@rnx-kit/tools-node/package");
@@ -41,6 +41,14 @@ const child_process_1 = require("child_process");
41
41
  const fs = __importStar(require("fs-extra"));
42
42
  const os = __importStar(require("os"));
43
43
  const path = __importStar(require("path"));
44
+ const defaultAndroidConfig = {
45
+ androidPluginVersion: "7.1.3",
46
+ compileSdkVersion: 31,
47
+ defaultConfig: {
48
+ minSdkVersion: 23,
49
+ targetSdkVersion: 29,
50
+ },
51
+ };
44
52
  function ensureOption(options, opt, flag = opt) {
45
53
  if (options[opt] == null) {
46
54
  (0, console_1.error)(`Missing required option: --${flag}`);
@@ -56,6 +64,9 @@ function findGradleProject(projectRoot) {
56
64
  }
57
65
  return undefined;
58
66
  }
67
+ function gradleTargetName(packageName) {
68
+ return (packageName.startsWith("@") ? packageName.slice(1) : packageName).replace(/[^\w\-.]+/g, "_");
69
+ }
59
70
  function isAssetsConfig(config) {
60
71
  return typeof config === "object" && config !== null && "getAssets" in config;
61
72
  }
@@ -63,21 +74,34 @@ function keysOf(record) {
63
74
  return record ? Object.keys(record) : [];
64
75
  }
65
76
  function versionOf(pkgName) {
66
- const { version } = (0, package_1.readPackage)(require.resolve(`${pkgName}/package.json`));
77
+ const packageDir = (0, package_1.findPackageDependencyDir)(pkgName);
78
+ if (!packageDir) {
79
+ throw new Error(`Could not find module '${pkgName}'`);
80
+ }
81
+ const { version } = (0, package_1.readPackage)(packageDir);
67
82
  return version;
68
83
  }
69
84
  exports.versionOf = versionOf;
70
85
  function getAndroidPaths(context, packageName, { targetName, version, output }) {
71
- const projectRoot = path.dirname(require.resolve(`${packageName}/package.json`));
86
+ const projectRoot = (0, package_1.findPackageDependencyDir)(packageName);
87
+ if (!projectRoot) {
88
+ throw new Error(`Could not find module '${packageName}'`);
89
+ }
90
+ const gradleFriendlyName = targetName || gradleTargetName(packageName);
91
+ const aarVersion = version || versionOf(packageName);
72
92
  switch (packageName) {
73
93
  case "hermes-engine":
74
94
  return {
95
+ targetName: gradleFriendlyName,
96
+ version: aarVersion,
75
97
  projectRoot,
76
98
  output: path.join(projectRoot, "android", "hermes-release.aar"),
77
99
  destination: path.join(context.options.assetsDest, "aar", `hermes-release-${versionOf(packageName)}.aar`),
78
100
  };
79
101
  case "react-native":
80
102
  return {
103
+ targetName: gradleFriendlyName,
104
+ version: aarVersion,
81
105
  projectRoot,
82
106
  output: path.join(projectRoot, "android"),
83
107
  destination: path.join(context.options.assetsDest, "aar", "react-native"),
@@ -85,17 +109,20 @@ function getAndroidPaths(context, packageName, { targetName, version, output })
85
109
  default: {
86
110
  const androidProject = findGradleProject(projectRoot);
87
111
  return {
112
+ targetName: gradleFriendlyName,
113
+ version: aarVersion,
88
114
  projectRoot,
89
115
  androidProject,
90
116
  output: output ||
91
117
  (androidProject &&
92
- path.join(androidProject, "build", "outputs", "aar", `${targetName}-release.aar`)),
93
- destination: path.join(context.options.assetsDest, "aar", `${targetName}-${version || versionOf(packageName)}.aar`),
118
+ path.join(androidProject, "build", "outputs", "aar", `${gradleFriendlyName}-release.aar`)),
119
+ destination: path.join(context.options.assetsDest, "aar", `${gradleFriendlyName}-${aarVersion}.aar`),
94
120
  };
95
121
  }
96
122
  }
97
123
  }
98
124
  function assembleAarBundle(context, packageName, { aar }) {
125
+ var _a, _b, _c, _d, _e, _f;
99
126
  return __awaiter(this, void 0, void 0, function* () {
100
127
  if (!aar) {
101
128
  return;
@@ -106,44 +133,96 @@ function assembleAarBundle(context, packageName, { aar }) {
106
133
  (0, console_1.warn)(`Skipped \`${packageName}\`: cannot find \`gradlew\``);
107
134
  return;
108
135
  }
109
- const { androidProject, output } = getAndroidPaths(context, packageName, aar);
136
+ const { targetName, version, androidProject, output } = getAndroidPaths(context, packageName, aar);
110
137
  if (!androidProject || !output) {
111
138
  (0, console_1.warn)(`Skipped \`${packageName}\`: cannot find \`build.gradle\``);
112
139
  return;
113
140
  }
114
- const { targetName, version, env, dependencies } = aar;
141
+ const { env: customEnv, dependencies, android } = aar;
142
+ const env = Object.assign(Object.assign({ NODE_MODULES_PATH: path.join(process.cwd(), "node_modules"), REACT_NATIVE_VERSION: versionOf("react-native") }, process.env), customEnv);
143
+ const outputDir = path.join(context.options.assetsDest, "aar");
144
+ yield fs.ensureDir(outputDir);
145
+ const dest = path.join(outputDir, `${targetName}-${version}.aar`);
115
146
  const targets = [`:${targetName}:assembleRelease`];
116
- const targetsToCopy = [];
117
- if (dependencies) {
118
- for (const [dependencyName, aar] of Object.entries(dependencies)) {
119
- const { output, destination } = getAndroidPaths(context, dependencyName, aar);
120
- if (output) {
121
- if (!fs.existsSync(output)) {
122
- targets.push(`:${aar.targetName}:assembleRelease`);
123
- targetsToCopy.push([output, destination]);
124
- }
125
- else if (!fs.existsSync(destination)) {
126
- targetsToCopy.push([output, destination]);
147
+ const targetsToCopy = [[output, dest]];
148
+ const settings = path.join(androidProject, "settings.gradle");
149
+ if (fs.existsSync(settings)) {
150
+ if (dependencies) {
151
+ for (const [dependencyName, aar] of Object.entries(dependencies)) {
152
+ const { targetName, output, destination } = getAndroidPaths(context, dependencyName, aar);
153
+ if (output) {
154
+ if (!fs.existsSync(output)) {
155
+ targets.push(`:${targetName}:assembleRelease`);
156
+ targetsToCopy.push([output, destination]);
157
+ }
158
+ else if (!fs.existsSync(destination)) {
159
+ targetsToCopy.push([output, destination]);
160
+ }
127
161
  }
128
162
  }
129
163
  }
164
+ // Run only one Gradle task at a time
165
+ (0, child_process_1.spawnSync)(gradlew, targets, { cwd: androidProject, stdio: "inherit", env });
130
166
  }
131
- // Run only one Gradle task at a time
132
- (0, child_process_1.spawnSync)(gradlew, targets, {
133
- cwd: androidProject,
134
- stdio: "inherit",
135
- env: Object.assign(Object.assign({ ENABLE_HERMES: "true", NODE_MODULES_PATH: path.join(process.cwd(), "node_modules"), REACT_NATIVE_VERSION: versionOf("react-native") }, process.env), env),
136
- });
137
- const destination = path.join(context.options.assetsDest, "aar");
138
- yield fs.ensureDir(destination);
139
- const aarVersion = version || versionOf(packageName);
140
- const dest = path.join(destination, `${targetName}-${aarVersion}.aar`);
141
- yield Promise.all([
142
- fs.copy(output, dest),
143
- ...targetsToCopy.map(([src, dest]) => fs.copy(src, dest)),
144
- ]);
167
+ else {
168
+ const reactNativePath = (0, package_1.findPackageDependencyDir)("react-native");
169
+ if (!reactNativePath) {
170
+ throw new Error("Could not find 'react-native'");
171
+ }
172
+ const buildDir = path.join(process.cwd(), "node_modules", ".rnx-gradle-build", targetName);
173
+ const compileSdkVersion = (_a = android === null || android === void 0 ? void 0 : android.compileSdkVersion) !== null && _a !== void 0 ? _a : defaultAndroidConfig.compileSdkVersion;
174
+ const minSdkVersion = (_c = (_b = android === null || android === void 0 ? void 0 : android.defaultConfig) === null || _b === void 0 ? void 0 : _b.minSdkVersion) !== null && _c !== void 0 ? _c : defaultAndroidConfig.defaultConfig.minSdkVersion;
175
+ const targetSdkVersion = (_e = (_d = android === null || android === void 0 ? void 0 : android.defaultConfig) === null || _d === void 0 ? void 0 : _d.targetSdkVersion) !== null && _e !== void 0 ? _e : defaultAndroidConfig.defaultConfig.targetSdkVersion;
176
+ const androidPluginVersion = (_f = android === null || android === void 0 ? void 0 : android.androidPluginVersion) !== null && _f !== void 0 ? _f : defaultAndroidConfig.androidPluginVersion;
177
+ const buildRelativeReactNativePath = path.relative(buildDir, reactNativePath);
178
+ const buildGradle = [
179
+ "buildscript {",
180
+ " ext {",
181
+ ` compileSdkVersion = ${compileSdkVersion}`,
182
+ ` minSdkVersion = ${minSdkVersion}`,
183
+ ` targetSdkVersion = ${targetSdkVersion}`,
184
+ ` androidPluginVersion = "${androidPluginVersion}"`,
185
+ " }",
186
+ "",
187
+ " repositories {",
188
+ " mavenCentral()",
189
+ " google()",
190
+ " }",
191
+ "",
192
+ " dependencies {",
193
+ ' classpath("com.android.tools.build:gradle:${project.ext.androidPluginVersion}")',
194
+ " }",
195
+ "}",
196
+ "",
197
+ "allprojects {",
198
+ " repositories {",
199
+ " maven {",
200
+ " // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm",
201
+ ` url("\${rootDir}/${buildRelativeReactNativePath}/android")`,
202
+ " }",
203
+ " mavenCentral()",
204
+ " google()",
205
+ " }",
206
+ "}",
207
+ "",
208
+ ].join("\n");
209
+ const gradleProperties = "android.useAndroidX=true\n";
210
+ const settingsGradle = [
211
+ `include(":${targetName}")`,
212
+ `project(":${targetName}").projectDir = file("${androidProject}")`,
213
+ "",
214
+ ].join("\n");
215
+ yield fs.ensureDir(buildDir);
216
+ yield fs.writeFile(path.join(buildDir, "build.gradle"), buildGradle);
217
+ yield fs.writeFile(path.join(buildDir, "gradle.properties"), gradleProperties);
218
+ yield fs.writeFile(path.join(buildDir, "settings.gradle"), settingsGradle);
219
+ // Run only one Gradle task at a time
220
+ (0, child_process_1.spawnSync)(gradlew, targets, { cwd: buildDir, stdio: "inherit", env });
221
+ }
222
+ yield Promise.all(targetsToCopy.map(([src, dest]) => fs.copy(src, dest)));
145
223
  });
146
224
  }
225
+ exports.assembleAarBundle = assembleAarBundle;
147
226
  function copyFiles(files, destination) {
148
227
  return __awaiter(this, void 0, void 0, function* () {
149
228
  if (!(0, array_1.isNonEmptyArray)(files)) {
@@ -1 +1 @@
1
- {"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../src/copy-assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../src/copy-assets.ts"],"names":[],"mappings":"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"}
package/lib/test.js CHANGED
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.rnxTestCommand = exports.rnxTest = void 0;
4
+ const tools_node_1 = require("@rnx-kit/tools-node");
7
5
  const platform_1 = require("@rnx-kit/tools-react-native/platform");
8
6
  const jest_cli_1 = require("jest-cli");
9
- const path_1 = __importDefault(require("path"));
10
7
  const COMMAND_NAME = "rnx-test";
11
8
  function rnxTest(_argv, _config, { platform }) {
12
9
  const commandIndex = process.argv.indexOf(COMMAND_NAME);
@@ -34,8 +31,8 @@ function jestOptions() {
34
31
  //
35
32
  // To work around this, resolve `jest-cli` first, then use the resolved path
36
33
  // to import `./build/cli/args`.
37
- const jestPath = require.resolve("jest-cli/package.json");
38
- const { options } = require(`${path_1.default.dirname(jestPath)}/build/cli/args`);
34
+ const jestPath = (0, tools_node_1.findPackageDependencyDir)("jest-cli") || "jest-cli";
35
+ const { options } = require(`${jestPath}/build/cli/args`);
39
36
  return Object.keys(options).map((option) => {
40
37
  const { default: defaultValue, description, type } = options[option];
41
38
  return {
package/lib/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;;AACA,mEAAqE;AACrE,uCAA0C;AAC1C,gDAAwB;AAiBxB,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,SAAgB,OAAO,CACrB,KAAe,EACf,OAAkB,EAClB,EAAE,QAAQ,EAAQ;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IAED,4EAA4E;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,aAAa,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IAED,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;IAC7C,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAxBD,0BAwBC;AAED,SAAS,WAAW;IAClB,oDAAoD;IACpD,EAAE;IACF,oEAAoE;IACpE,wCAAwC;IACxC,EAAE;IACF,4EAA4E;IAC5E,gCAAgC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAExE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO;YACL,IAAI,EAAE,KAAK,MAAM,KAAK,IAAI,GAAG;YAC7B,WAAW;YACX,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,mCAAmC;IAChD,IAAI,EAAE,OAAO;IACb,OAAO,EAAE;QACP;YACE,IAAI,EAAE,8CAA8C;YACpD,WAAW,EAAE,oBAAoB;YACjC,KAAK,EAAE,wBAAa;SACrB;QACD,GAAG,WAAW,EAAE;KACjB;CACF,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;AACA,oDAA+D;AAC/D,mEAAqE;AACrE,uCAA0C;AAiB1C,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,SAAgB,OAAO,CACrB,KAAe,EACf,OAAkB,EAClB,EAAE,QAAQ,EAAQ;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IAED,4EAA4E;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,aAAa,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IAED,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;IAC7C,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAxBD,0BAwBC;AAED,SAAS,WAAW;IAClB,oDAAoD;IACpD,EAAE;IACF,oEAAoE;IACpE,wCAAwC;IACxC,EAAE;IACF,4EAA4E;IAC5E,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC,UAAU,CAAC,IAAI,UAAU,CAAC;IACpE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO;YACL,IAAI,EAAE,KAAK,MAAM,KAAK,IAAI,GAAG;YAC7B,WAAW;YACX,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,mCAAmC;IAChD,IAAI,EAAE,OAAO;IACb,OAAO,EAAE;QACP;YACE,IAAI,EAAE,8CAA8C;YACpD,WAAW,EAAE,oBAAoB;YACjC,KAAK,EAAE,wBAAa;SACrB;QACD,GAAG,WAAW,EAAE;KACjB;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnx-kit/cli",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "description": "Command-line interface for working with kit packages in your repo",
5
5
  "homepage": "https://github.com/microsoft/rnx-kit/tree/main/packages/cli",
6
6
  "license": "MIT",
@@ -2,7 +2,11 @@ import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
2
  import { error, info, warn } from "@rnx-kit/console";
3
3
  import { isNonEmptyArray } from "@rnx-kit/tools-language/array";
4
4
  import type { PackageManifest } from "@rnx-kit/tools-node/package";
5
- import { findPackageDir, readPackage } from "@rnx-kit/tools-node/package";
5
+ import {
6
+ findPackageDependencyDir,
7
+ findPackageDir,
8
+ readPackage,
9
+ } from "@rnx-kit/tools-node/package";
6
10
  import type { AllPlatforms } from "@rnx-kit/tools-react-native";
7
11
  import { parsePlatform } from "@rnx-kit/tools-react-native";
8
12
  import { spawnSync } from "child_process";
@@ -11,9 +15,17 @@ import * as os from "os";
11
15
  import * as path from "path";
12
16
 
13
17
  export type AndroidArchive = {
14
- targetName: string;
18
+ targetName?: string;
15
19
  version?: string;
16
20
  output?: string;
21
+ android?: {
22
+ androidPluginVersion?: string;
23
+ compileSdkVersion?: number;
24
+ defaultConfig?: {
25
+ minSdkVersion?: number;
26
+ targetSdkVersion?: number;
27
+ };
28
+ };
17
29
  };
18
30
 
19
31
  export type NativeAssets = {
@@ -44,6 +56,15 @@ export type AssetsConfig = {
44
56
  getAssets?: (context: Context) => Promise<NativeAssets>;
45
57
  };
46
58
 
59
+ const defaultAndroidConfig: Required<Required<AndroidArchive>["android"]> = {
60
+ androidPluginVersion: "7.1.3",
61
+ compileSdkVersion: 31,
62
+ defaultConfig: {
63
+ minSdkVersion: 23,
64
+ targetSdkVersion: 29,
65
+ },
66
+ };
67
+
47
68
  function ensureOption(options: Options, opt: string, flag = opt) {
48
69
  if (options[opt] == null) {
49
70
  error(`Missing required option: --${flag}`);
@@ -61,6 +82,12 @@ function findGradleProject(projectRoot: string): string | undefined {
61
82
  return undefined;
62
83
  }
63
84
 
85
+ function gradleTargetName(packageName: string): string {
86
+ return (
87
+ packageName.startsWith("@") ? packageName.slice(1) : packageName
88
+ ).replace(/[^\w\-.]+/g, "_");
89
+ }
90
+
64
91
  function isAssetsConfig(config: unknown): config is AssetsConfig {
65
92
  return typeof config === "object" && config !== null && "getAssets" in config;
66
93
  }
@@ -70,7 +97,12 @@ function keysOf(record: Record<string, unknown> | undefined): string[] {
70
97
  }
71
98
 
72
99
  export function versionOf(pkgName: string): string {
73
- const { version } = readPackage(require.resolve(`${pkgName}/package.json`));
100
+ const packageDir = findPackageDependencyDir(pkgName);
101
+ if (!packageDir) {
102
+ throw new Error(`Could not find module '${pkgName}'`);
103
+ }
104
+
105
+ const { version } = readPackage(packageDir);
74
106
  return version;
75
107
  }
76
108
 
@@ -79,13 +111,19 @@ function getAndroidPaths(
79
111
  packageName: string,
80
112
  { targetName, version, output }: AndroidArchive
81
113
  ) {
82
- const projectRoot = path.dirname(
83
- require.resolve(`${packageName}/package.json`)
84
- );
114
+ const projectRoot = findPackageDependencyDir(packageName);
115
+ if (!projectRoot) {
116
+ throw new Error(`Could not find module '${packageName}'`);
117
+ }
118
+
119
+ const gradleFriendlyName = targetName || gradleTargetName(packageName);
120
+ const aarVersion = version || versionOf(packageName);
85
121
 
86
122
  switch (packageName) {
87
123
  case "hermes-engine":
88
124
  return {
125
+ targetName: gradleFriendlyName,
126
+ version: aarVersion,
89
127
  projectRoot,
90
128
  output: path.join(projectRoot, "android", "hermes-release.aar"),
91
129
  destination: path.join(
@@ -97,6 +135,8 @@ function getAndroidPaths(
97
135
 
98
136
  case "react-native":
99
137
  return {
138
+ targetName: gradleFriendlyName,
139
+ version: aarVersion,
100
140
  projectRoot,
101
141
  output: path.join(projectRoot, "android"),
102
142
  destination: path.join(
@@ -109,6 +149,8 @@ function getAndroidPaths(
109
149
  default: {
110
150
  const androidProject = findGradleProject(projectRoot);
111
151
  return {
152
+ targetName: gradleFriendlyName,
153
+ version: aarVersion,
112
154
  projectRoot,
113
155
  androidProject,
114
156
  output:
@@ -119,19 +161,19 @@ function getAndroidPaths(
119
161
  "build",
120
162
  "outputs",
121
163
  "aar",
122
- `${targetName}-release.aar`
164
+ `${gradleFriendlyName}-release.aar`
123
165
  )),
124
166
  destination: path.join(
125
167
  context.options.assetsDest,
126
168
  "aar",
127
- `${targetName}-${version || versionOf(packageName)}.aar`
169
+ `${gradleFriendlyName}-${aarVersion}.aar`
128
170
  ),
129
171
  };
130
172
  }
131
173
  }
132
174
  }
133
175
 
134
- async function assembleAarBundle(
176
+ export async function assembleAarBundle(
135
177
  context: Context,
136
178
  packageName: string,
137
179
  { aar }: NativeAssets
@@ -149,55 +191,136 @@ async function assembleAarBundle(
149
191
  return;
150
192
  }
151
193
 
152
- const { androidProject, output } = getAndroidPaths(context, packageName, aar);
194
+ const { targetName, version, androidProject, output } = getAndroidPaths(
195
+ context,
196
+ packageName,
197
+ aar
198
+ );
153
199
  if (!androidProject || !output) {
154
200
  warn(`Skipped \`${packageName}\`: cannot find \`build.gradle\``);
155
201
  return;
156
202
  }
157
203
 
158
- const { targetName, version, env, dependencies } = aar;
204
+ const { env: customEnv, dependencies, android } = aar;
205
+ const env = {
206
+ NODE_MODULES_PATH: path.join(process.cwd(), "node_modules"),
207
+ REACT_NATIVE_VERSION: versionOf("react-native"),
208
+ ...process.env,
209
+ ...customEnv,
210
+ };
211
+
212
+ const outputDir = path.join(context.options.assetsDest, "aar");
213
+ await fs.ensureDir(outputDir);
214
+
215
+ const dest = path.join(outputDir, `${targetName}-${version}.aar`);
216
+
159
217
  const targets = [`:${targetName}:assembleRelease`];
160
- const targetsToCopy: [string, string][] = [];
161
- if (dependencies) {
162
- for (const [dependencyName, aar] of Object.entries(dependencies)) {
163
- const { output, destination } = getAndroidPaths(
164
- context,
165
- dependencyName,
166
- aar
167
- );
168
- if (output) {
169
- if (!fs.existsSync(output)) {
170
- targets.push(`:${aar.targetName}:assembleRelease`);
171
- targetsToCopy.push([output, destination]);
172
- } else if (!fs.existsSync(destination)) {
173
- targetsToCopy.push([output, destination]);
218
+ const targetsToCopy: [string, string][] = [[output, dest]];
219
+
220
+ const settings = path.join(androidProject, "settings.gradle");
221
+ if (fs.existsSync(settings)) {
222
+ if (dependencies) {
223
+ for (const [dependencyName, aar] of Object.entries(dependencies)) {
224
+ const { targetName, output, destination } = getAndroidPaths(
225
+ context,
226
+ dependencyName,
227
+ aar
228
+ );
229
+ if (output) {
230
+ if (!fs.existsSync(output)) {
231
+ targets.push(`:${targetName}:assembleRelease`);
232
+ targetsToCopy.push([output, destination]);
233
+ } else if (!fs.existsSync(destination)) {
234
+ targetsToCopy.push([output, destination]);
235
+ }
174
236
  }
175
237
  }
176
238
  }
177
- }
178
239
 
179
- // Run only one Gradle task at a time
180
- spawnSync(gradlew, targets, {
181
- cwd: androidProject,
182
- stdio: "inherit",
183
- env: {
184
- ENABLE_HERMES: "true",
185
- NODE_MODULES_PATH: path.join(process.cwd(), "node_modules"),
186
- REACT_NATIVE_VERSION: versionOf("react-native"),
187
- ...process.env,
188
- ...env,
189
- },
190
- });
240
+ // Run only one Gradle task at a time
241
+ spawnSync(gradlew, targets, { cwd: androidProject, stdio: "inherit", env });
242
+ } else {
243
+ const reactNativePath = findPackageDependencyDir("react-native");
244
+ if (!reactNativePath) {
245
+ throw new Error("Could not find 'react-native'");
246
+ }
191
247
 
192
- const destination = path.join(context.options.assetsDest, "aar");
193
- await fs.ensureDir(destination);
248
+ const buildDir = path.join(
249
+ process.cwd(),
250
+ "node_modules",
251
+ ".rnx-gradle-build",
252
+ targetName
253
+ );
254
+
255
+ const compileSdkVersion =
256
+ android?.compileSdkVersion ?? defaultAndroidConfig.compileSdkVersion;
257
+ const minSdkVersion =
258
+ android?.defaultConfig?.minSdkVersion ??
259
+ defaultAndroidConfig.defaultConfig.minSdkVersion;
260
+ const targetSdkVersion =
261
+ android?.defaultConfig?.targetSdkVersion ??
262
+ defaultAndroidConfig.defaultConfig.targetSdkVersion;
263
+ const androidPluginVersion =
264
+ android?.androidPluginVersion ??
265
+ defaultAndroidConfig.androidPluginVersion;
266
+ const buildRelativeReactNativePath = path.relative(
267
+ buildDir,
268
+ reactNativePath
269
+ );
270
+
271
+ const buildGradle = [
272
+ "buildscript {",
273
+ " ext {",
274
+ ` compileSdkVersion = ${compileSdkVersion}`,
275
+ ` minSdkVersion = ${minSdkVersion}`,
276
+ ` targetSdkVersion = ${targetSdkVersion}`,
277
+ ` androidPluginVersion = "${androidPluginVersion}"`,
278
+ " }",
279
+ "",
280
+ " repositories {",
281
+ " mavenCentral()",
282
+ " google()",
283
+ " }",
284
+ "",
285
+ " dependencies {",
286
+ ' classpath("com.android.tools.build:gradle:${project.ext.androidPluginVersion}")',
287
+ " }",
288
+ "}",
289
+ "",
290
+ "allprojects {",
291
+ " repositories {",
292
+ " maven {",
293
+ " // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm",
294
+ ` url("\${rootDir}/${buildRelativeReactNativePath}/android")`,
295
+ " }",
296
+ " mavenCentral()",
297
+ " google()",
298
+ " }",
299
+ "}",
300
+ "",
301
+ ].join("\n");
302
+
303
+ const gradleProperties = "android.useAndroidX=true\n";
304
+
305
+ const settingsGradle = [
306
+ `include(":${targetName}")`,
307
+ `project(":${targetName}").projectDir = file("${androidProject}")`,
308
+ "",
309
+ ].join("\n");
310
+
311
+ await fs.ensureDir(buildDir);
312
+ await fs.writeFile(path.join(buildDir, "build.gradle"), buildGradle);
313
+ await fs.writeFile(
314
+ path.join(buildDir, "gradle.properties"),
315
+ gradleProperties
316
+ );
317
+ await fs.writeFile(path.join(buildDir, "settings.gradle"), settingsGradle);
318
+
319
+ // Run only one Gradle task at a time
320
+ spawnSync(gradlew, targets, { cwd: buildDir, stdio: "inherit", env });
321
+ }
194
322
 
195
- const aarVersion = version || versionOf(packageName);
196
- const dest = path.join(destination, `${targetName}-${aarVersion}.aar`);
197
- await Promise.all([
198
- fs.copy(output, dest),
199
- ...targetsToCopy.map(([src, dest]) => fs.copy(src, dest)),
200
- ]);
323
+ await Promise.all(targetsToCopy.map(([src, dest]) => fs.copy(src, dest)));
201
324
  }
202
325
 
203
326
  async function copyFiles(files: unknown, destination: string): Promise<void> {
package/src/test.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
+ import { findPackageDependencyDir } from "@rnx-kit/tools-node";
2
3
  import { parsePlatform } from "@rnx-kit/tools-react-native/platform";
3
4
  import { run as runJest } from "jest-cli";
4
- import path from "path";
5
5
 
6
6
  type Args = {
7
7
  platform: "android" | "ios" | "macos" | "windows" | "win32";
@@ -54,8 +54,8 @@ function jestOptions(): Options[] {
54
54
  //
55
55
  // To work around this, resolve `jest-cli` first, then use the resolved path
56
56
  // to import `./build/cli/args`.
57
- const jestPath = require.resolve("jest-cli/package.json");
58
- const { options } = require(`${path.dirname(jestPath)}/build/cli/args`);
57
+ const jestPath = findPackageDependencyDir("jest-cli") || "jest-cli";
58
+ const { options } = require(`${jestPath}/build/cli/args`);
59
59
 
60
60
  return Object.keys(options).map((option) => {
61
61
  const { default: defaultValue, description, type } = options[option];
@@ -0,0 +1,5 @@
1
+ const child_process = jest.createMockFromModule("child_process");
2
+
3
+ child_process.spawnSync(() => undefined);
4
+
5
+ module.exports = child_process;