eas-cli
Version:
EAS command line tool
83 lines (82 loc) • 3.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatBuild = exports.fetchBuildsAsync = exports.ensureBuildExistsAsync = void 0;
const tslib_1 = require("tslib");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const generated_1 = require("../graphql/generated");
const BuildQuery_1 = require("../graphql/queries/BuildQuery");
const platform_1 = require("../platform");
const platformToAppPlatform = {
android: generated_1.AppPlatform.Android,
ios: generated_1.AppPlatform.Ios,
};
async function ensureBuildExistsAsync(graphqlClient, buildId) {
try {
await BuildQuery_1.BuildQuery.byIdAsync(graphqlClient, buildId);
}
catch {
throw new Error(`Couldn't find a build matching the id ${buildId}`);
}
}
exports.ensureBuildExistsAsync = ensureBuildExistsAsync;
async function fetchBuildsAsync({ graphqlClient, projectId, filters, }) {
let builds;
const queryFilters = {};
if (filters?.platform && filters.platform !== 'all') {
queryFilters['platform'] = platformToAppPlatform[filters.platform];
}
if (filters?.profile) {
queryFilters['buildProfile'] = filters.profile;
}
if (filters?.hasFingerprint) {
queryFilters['hasFingerprint'] = filters.hasFingerprint;
}
if (!filters?.statuses) {
builds = await BuildQuery_1.BuildQuery.viewBuildsOnAppAsync(graphqlClient, {
appId: projectId,
offset: 0,
limit: 10,
filter: queryFilters ? queryFilters : undefined,
});
}
else {
builds = (await Promise.all(filters.statuses.map(status => BuildQuery_1.BuildQuery.viewBuildsOnAppAsync(graphqlClient, {
appId: projectId,
offset: 0,
limit: 10,
filter: queryFilters ? { ...queryFilters, status } : { status },
})))).flat();
}
builds.sort((buildA, buildB) => (buildA.createdAt > buildB.createdAt ? -1 : 1));
return builds;
}
exports.fetchBuildsAsync = fetchBuildsAsync;
function formatBuild(build) {
const platform = platform_1.appPlatformEmojis[build.platform];
const startTime = new Date(build.createdAt).toLocaleString();
let statusText;
if (build.status === generated_1.BuildStatus.New) {
statusText = 'new';
}
else if (build.status === generated_1.BuildStatus.InQueue) {
statusText = 'in queue';
}
else if (build.status === generated_1.BuildStatus.InProgress) {
statusText = 'in progress';
}
else if (build.status === generated_1.BuildStatus.Finished) {
statusText = 'finished';
}
else if (build.status === generated_1.BuildStatus.Errored) {
statusText = 'errored';
}
else if ([generated_1.BuildStatus.PendingCancel, generated_1.BuildStatus.Canceled].includes(build.status)) {
statusText = 'canceled';
}
else {
statusText = 'unknown';
}
const status = chalk_1.default.blue(statusText);
return `${platform} Started at: ${startTime}, Status: ${status}, Id: ${build.id}`;
}
exports.formatBuild = formatBuild;
;