refactor: save ProjectBuilder instance in Api instance (#1016)

This reduces dependence on the `builders` module and reduces repitition.

This also facilitates another WIP refactoring I am working on.
This commit is contained in:
Raphael von der Grün
2020-07-03 18:54:24 +02:00
committed by GitHub
parent d86cb99dd5
commit ba5781c3bf
5 changed files with 17 additions and 14 deletions
+4 -2
View File
@@ -85,6 +85,8 @@ class Api {
build: path.join(this.root, 'build'),
javaSrc: path.join(appMain, 'java')
};
this._builder = require('./lib/builders/builders').getBuilder(this.root);
}
/**
@@ -161,7 +163,7 @@ class Api {
if (plugin.getFrameworks(this.platform).length === 0) return;
selfEvents.emit('verbose', 'Updating build files since android plugin contained <framework>');
// This should pick the correct builder, not just get gradle
require('./lib/builders/builders').getBuilder().prepBuildFiles();
this._builder.prepBuildFiles();
}.bind(this))
// CB-11022 Return truthy value to prevent running prepare after
.then(() => true);
@@ -193,7 +195,7 @@ class Api {
if (plugin.getFrameworks(this.platform).length === 0) return;
selfEvents.emit('verbose', 'Updating build files since android plugin contained <framework>');
require('./lib/builders/builders').getBuilder().prepBuildFiles();
this._builder.prepBuildFiles();
}.bind(this))
// CB-11022 Return truthy value to prevent running prepare after
.then(() => true);
+2 -3
View File
@@ -23,7 +23,6 @@ var nopt = require('nopt');
var Adb = require('./Adb');
var builders = require('./builders/builders');
var events = require('cordova-common').events;
const execa = require('execa');
var CordovaError = require('cordova-common').CordovaError;
@@ -145,7 +144,7 @@ function parseOpts (options, resolvedTarget, projectRoot) {
*/
module.exports.runClean = function (options) {
var opts = parseOpts(options, null, this.root);
var builder = builders.getBuilder();
var builder = this._builder;
return builder.prepEnv(opts).then(function () {
return builder.clean(opts);
@@ -166,7 +165,7 @@ module.exports.runClean = function (options) {
*/
module.exports.run = function (options, optResolvedTarget) {
var opts = parseOpts(options, optResolvedTarget, this.root);
var builder = builders.getBuilder();
var builder = this._builder;
return builder.prepEnv(opts).then(function () {
if (opts.prepEnv) {
+1 -2
View File
@@ -100,7 +100,6 @@ module.exports.run = function (runOptions) {
});
}).then(function (resolvedTarget) {
return new Promise((resolve) => {
const builder = require('./builders/builders').getBuilder();
const buildOptions = require('./build').parseBuildOptions(runOptions, null, self.root);
// Android app bundles cannot be deployed directly to the device
@@ -110,7 +109,7 @@ module.exports.run = function (runOptions) {
throw packageTypeErrorMessage;
}
resolve(builder.fetchBuildResults(buildOptions.buildType, buildOptions.arch));
resolve(self._builder.fetchBuildResults(buildOptions.buildType, buildOptions.arch));
}).then(function (buildResults) {
if (resolvedTarget && resolvedTarget.isEmulator) {
return emulator.wait_for_boot(resolvedTarget.target).then(function () {