@react-native/core-cli-utils
Version:
React Native CLI library for Frameworks to build on
75 lines (73 loc) • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.tasks = void 0;
var _utils = require("./utils");
var _execa = _interopRequireDefault(require("execa"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : { default: e };
}
function gradle(taskName, args, options) {
const gradlew = _utils.isWindows ? "gradlew.bat" : "./gradlew";
return (0, _execa.default)(gradlew, [taskName, ...args], {
cwd: options.cwd,
env: options.env,
});
}
function androidSdkPath(sdk) {
return sdk ?? process.env.ANDROID_HOME ?? process.env.ANDROID_SDK ?? "";
}
function boolToStr(value) {
return value ? "true" : "false";
}
const FIRST = 1;
const tasks = (config) => ({
assemble: (...gradleArgs) => ({
run: (0, _utils.task)(FIRST, "Assemble Android App", () => {
const args = [];
if (config.hermes != null) {
args.push(`-PhermesEnabled=${boolToStr(config.hermes)}`);
}
if (config.newArchitecture != null) {
args.push(`-PnewArchEnabled=${boolToStr(config.newArchitecture)}`);
}
args.push(...gradleArgs);
return gradle(`${config.name}:assemble${config.mode}`, gradleArgs, {
cwd: config.cwd,
env: {
ANDROID_HOME: androidSdkPath(config.sdk),
},
});
}),
}),
build: (...gradleArgs) => ({
run: (0, _utils.task)(FIRST, "Assembles and tests Android App", () => {
const args = [];
if (config.hermes != null) {
args.push(`-PhermesEnabled=${boolToStr(config.hermes)}`);
}
if (config.newArchitecture != null) {
args.push(`-PnewArchEnabled=${boolToStr(config.newArchitecture)}`);
}
args.push(...gradleArgs);
return gradle(`${config.name}:bundle${config.mode}`, args, {
cwd: config.cwd,
env: {
ANDROID_HOME: androidSdkPath(config.sdk),
},
});
}),
}),
install: (...gradleArgs) => ({
run: (0, _utils.task)(FIRST, "Installs the assembled Android App", () =>
gradle(`${config.name}:install${config.mode}`, gradleArgs, {
cwd: config.cwd,
env: {
ANDROID_HOME: androidSdkPath(config.sdk),
},
}),
),
}),
});
exports.tasks = tasks;