eas-cli
Version:
EAS command line tool
37 lines (36 loc) • 1.99 kB
TypeScript
import { Platform } from '@expo/eas-build-job';
import { ResolvedArchiveSource } from './ArchiveSource';
import { SubmissionContext } from './context';
import { AnalyticsEvent } from '../analytics/AnalyticsManager';
import { AndroidSubmissionConfigInput, IosSubmissionConfigInput, SubmissionArchiveSourceInput, SubmissionFragment } from '../graphql/generated';
export interface SubmissionInput<P extends Platform> {
projectId: string;
submissionConfig: P extends Platform.ANDROID ? AndroidSubmissionConfigInput : IosSubmissionConfigInput;
buildId?: string;
archiveSource?: SubmissionArchiveSourceInput;
}
interface AnalyticEvents {
attemptEvent: AnalyticsEvent;
successEvent: AnalyticsEvent;
failureEvent: AnalyticsEvent;
}
export default abstract class BaseSubmitter<P extends Platform, ResolvedSourceOptions, SubmissionOptions> {
protected ctx: SubmissionContext<P>;
protected options: SubmissionOptions;
protected sourceOptionResolver: {
[K in keyof ResolvedSourceOptions]: () => Promise<ResolvedSourceOptions[K]>;
};
protected sourceOptionAnalytics: Record<keyof ResolvedSourceOptions, AnalyticEvents>;
constructor(ctx: SubmissionContext<P>, options: SubmissionOptions, sourceOptionResolver: {
[K in keyof ResolvedSourceOptions]: () => Promise<ResolvedSourceOptions[K]>;
}, sourceOptionAnalytics: Record<keyof ResolvedSourceOptions, AnalyticEvents>);
private getSourceOptionsAsync;
getSubmissionInputAsync(): Promise<SubmissionInput<P>>;
submitAsync(): Promise<SubmissionFragment>;
abstract createSubmissionInputAsync(resolvedOptions: ResolvedSourceOptions): Promise<SubmissionInput<P>>;
formatArchive(archive: ResolvedArchiveSource): Pick<SubmissionInput<P>, 'archiveSource' | 'buildId'>;
private createSubmissionAsync;
private createSubmissionWithAnalyticsAsync;
protected abstract createPlatformSubmissionAsync(input: SubmissionInput<P>): Promise<SubmissionFragment>;
}
export {};