@johnf/react-native-owl
Version:
Visual regression testing for React Native
57 lines (55 loc) • 2.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildIOS = exports.buildHandler = exports.buildAndroid = exports.ENTRY_FILE = void 0;
var _path = _interopRequireDefault(require("path"));
var _execa = _interopRequireDefault(require("execa"));
var _logger = require("../logger.js");
var _config = require("./config.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const ENTRY_FILE = exports.ENTRY_FILE = './node_modules/react-native-owl/lib/commonjs/client/index.app.js';
const buildIOS = async (config, logger) => {
const buildCommand = config.ios?.buildCommand ? [config.ios?.buildCommand] : [`xcodebuild`, `-workspace ${config.ios?.workspace}`, `-scheme ${config.ios?.scheme?.split(' ').join('\\ ')}`, `-configuration ${config.ios?.configuration}`, `-sdk iphonesimulator`, `-derivedDataPath ios/build`];
if (!config.ios?.buildCommand && config.ios?.quiet) {
buildCommand.push('-quiet');
}
logger.info(`[OWL - CLI] Building the app with: ${buildCommand.join(' ')}.`);
await _execa.default.command(buildCommand.join(' '), {
stdio: 'inherit',
env: {
ENTRY_FILE
}
});
};
exports.buildIOS = buildIOS;
const buildAndroid = async (config, logger) => {
const buildCommand = config.android?.buildCommand ? [config.android?.buildCommand] : [`./gradlew`, config.android?.buildType === 'Debug' ? `assembleDebug` : 'assembleRelease', '--console plain'];
if (!config.android?.buildCommand && config.android?.quiet) {
buildCommand.push('--quiet');
}
// Add a project environmental to tell build.gradle to use a specific Android Manifest that allows WebSocket usage.
// (https://docs.gradle.org/current/userguide/command_line_interface.html#sec:environment_options)
buildCommand.push('-PisOwlBuild=true');
const cwd = config.android?.buildCommand ? undefined : _path.default.join(process.cwd(), 'android');
logger.info(`[OWL - CLI] Building the app with: ${buildCommand.join(' ')}.`);
await _execa.default.command(buildCommand.join(' '), {
stdio: 'inherit',
cwd,
env: {
ENTRY_FILE
}
});
};
exports.buildAndroid = buildAndroid;
const buildHandler = async args => {
const config = await (0, _config.getConfig)(args.config);
const logger = new _logger.Logger(config.debug);
const buildProject = args.platform === 'ios' ? buildIOS : buildAndroid;
logger.print(`[OWL - CLI] Building the app on ${args.platform} platform.`);
logger.info(`[OWL - CLI] Using the config file ${args.config}.`);
await buildProject(config, logger);
logger.info(`[OWL - CLI] Successfully built for the ${args.platform} platform.`);
};
exports.buildHandler = buildHandler;
//# sourceMappingURL=build.js.map