"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.action = action;
exports.default = _default;
function _xdl() {
const data = require("@expo/xdl");
_xdl = function () {
return data;
};
return data;
}
function _log() {
const data = _interopRequireDefault(require("../log"));
_log = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
async function action(projectDir = './', options = {}) {
const {
exp
} = await _xdl().ProjectUtils.readConfigJsonAsync(projectDir);
if (exp === null) {
_log().default.warn('No Expo configuration found. Are you sure this is a project directory?');
process.exit(1);
}
const optimizationOptions = { ...options,
quality: parseQuality(options)
};
const hasUnoptimizedAssets = await _xdl().AssetUtils.hasUnoptimizedAssetsAsync(projectDir, optimizationOptions);
if (!options.save && hasUnoptimizedAssets) {
_log().default.warn('This will overwrite the original assets.');
}
const optimizeOptions = await _xdl().Project.optimizeAsync(projectDir, optimizationOptions);
}
function parseQuality(options) {
const defaultQuality = 80;
if (options.quality == null) {
return defaultQuality;
}
const quality = Number(options.quality);
if (!(Number.isInteger(quality) && quality > 0 && quality <= 100)) {
throw new Error('Invalid value for --quality flag. Must be an integer between 1 and 100.');
}
return quality;
}
function _default(program) {
program.command('optimize [project-dir]').alias('o').description('Compress the assets in your Expo project').option('-s, --save', 'Save the original assets with a .orig extension').option('--quality [number]', 'Specify the quality the compressed image is reduced to. Default is 80').option('--include [pattern]', 'Include only assets that match this glob pattern relative to the project root').option('--exclude [pattern]', 'Exclude all assets that match this glob pattern relative to the project root').allowOffline().asyncAction(action);
}
//# sourceMappingURL=../__sourcemaps__/commands/optimize.js.map