UNPKG

eas-cli

Version:
37 lines (36 loc) 1.99 kB
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 {};