UNPKG

eas-cli

Version:
72 lines (71 loc) 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.downloadMetadataAsync = void 0; const tslib_1 = require("tslib"); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const path_1 = tslib_1.__importDefault(require("path")); const tasks_1 = require("./apple/tasks"); const auth_1 = require("./auth"); const resolve_1 = require("./config/resolve"); const errors_1 = require("./errors"); const telemetry_1 = require("./utils/telemetry"); const AnalyticsManager_1 = require("../analytics/AnalyticsManager"); const log_1 = tslib_1.__importDefault(require("../log")); const prompts_1 = require("../prompts"); /** * Generate a local store configuration from the stores. * Note, only App Store is supported at this time. */ async function downloadMetadataAsync({ projectDir, profile, exp, analytics, credentialsCtx, }) { const filePath = (0, resolve_1.getStaticConfigFilePath)({ projectDir, profile }); const fileExists = await fs_extra_1.default.pathExists(filePath); if (fileExists) { const filePathRelative = path_1.default.relative(projectDir, filePath); const overwrite = await (0, prompts_1.confirmAsync)({ message: `Do you want to overwrite the existing "${filePathRelative}"?`, }); if (!overwrite) { throw new errors_1.MetadataValidationError(`Store config already exists at "${filePath}"`); } } const { app, auth } = await (0, auth_1.getAppStoreAuthAsync)({ exp, credentialsCtx, projectDir, profile, }); const { unsubscribeTelemetry, executionId } = (0, telemetry_1.subscribeTelemetry)(analytics, AnalyticsManager_1.MetadataEvent.APPLE_METADATA_DOWNLOAD, { app, auth }); log_1.default.addNewLineIfNone(); log_1.default.log('Downloading App Store config...'); const errors = []; const config = (0, resolve_1.createAppleWriter)(); const tasks = (0, tasks_1.createAppleTasks)(); const taskCtx = { app }; for (const task of tasks) { try { await task.prepareAsync({ context: taskCtx }); } catch (error) { errors.push(error); } } for (const task of tasks) { try { await task.downloadAsync({ config, context: taskCtx }); } catch (error) { errors.push(error); } } try { await fs_extra_1.default.writeJSON(filePath, config.toSchema(), { spaces: 2 }); } finally { unsubscribeTelemetry(); } if (errors.length > 0) { throw new errors_1.MetadataDownloadError(errors, executionId); } return filePath; } exports.downloadMetadataAsync = downloadMetadataAsync;