@react-native-community/bob
Version:
CLI to build JavaScript files for React Native libraries
89 lines (66 loc) • 3.18 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = build;
var _path = _interopRequireDefault(require("path"));
var _chalk = _interopRequireDefault(require("chalk"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _del = _interopRequireDefault(require("del"));
var _androidAssemble = _interopRequireDefault(require("../utils/androidAssemble"));
var _jetifier = _interopRequireDefault(require("../utils/jetifier"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const defaultOptions = {
androidPath: 'android',
androidBundleName: 'android.aar',
reverseJetify: false
};
async function createGradleFile(file) {
await _fsExtra.default.createFile(file);
await _fsExtra.default.writeFile(file, 'configurations.maybeCreate("default")\nartifacts.add("default", file(\'android.aar\'))');
}
async function build({
root,
output,
options,
report
}) {
const targetOptions = { ...defaultOptions,
...options
};
report.info(`Cleaning up previous build at ${_chalk.default.blue(_path.default.relative(root, output))}`);
await (0, _del.default)([output]);
await (0, _androidAssemble.default)({
root,
androidPath: targetOptions.androidPath,
report
});
report.info(`Creating new output directory at ${_chalk.default.blue(_path.default.relative(root, output))}`);
await _fsExtra.default.mkdir(output);
const sourceAar = _path.default.join(targetOptions.androidPath, 'build', 'outputs', 'aar', targetOptions.androidBundleName);
const targetAar = _path.default.join(output, targetOptions.androidBundleName);
report.info(`Copying AAR from ${_chalk.default.blue(_path.default.relative(root, sourceAar))} to ${_chalk.default.blue(_path.default.relative(root, targetAar))}`);
await _fsExtra.default.copyFile(sourceAar, targetAar);
const gradleFile = _path.default.join(output, 'build.gradle');
report.info(`Creating AAR Gradle file at ${_chalk.default.blue(_path.default.relative(root, gradleFile))}`);
await createGradleFile(gradleFile);
if (targetOptions.reverseJetify) {
const supportOutputPath = _path.default.join(output, 'support');
report.info(`Creating new support output directory at ${_chalk.default.blue(_path.default.relative(root, supportOutputPath))}`);
await _fsExtra.default.mkdir(supportOutputPath);
const supportAar = _path.default.join(supportOutputPath, targetOptions.androidBundleName);
report.info(`Using Jetifier to convert AAR from AndroidX to Support AAR at ${_chalk.default.blue(_path.default.relative(root, supportAar))}`);
await (0, _jetifier.default)({
root,
report,
input: targetAar,
output: supportAar,
reverse: true
});
const supportGradleFile = _path.default.join(supportOutputPath, 'build.gradle');
report.info(`Creating Support AAR Gradle file at ${_chalk.default.blue(_path.default.relative(root, supportGradleFile))}`);
await createGradleFile(supportGradleFile);
}
report.success(`Wrote files to ${_chalk.default.blue(_path.default.relative(root, output))}`);
}
//# sourceMappingURL=aar.js.map
;