UNPKG

react-native-flix-codepush

Version:

A modern CodePush implementation for React Native applications

199 lines 5.59 kB
/** * CodePush update status enum */ export declare enum CodePushUpdateState { RUNNING = "RUNNING", PENDING = "PENDING", LATEST = "LATEST" } /** * CodePush installation status enum */ export declare enum CodePushInstallMode { IMMEDIATE = "IMMEDIATE", ON_NEXT_RESTART = "ON_NEXT_RESTART", ON_NEXT_RESUME = "ON_NEXT_RESUME", ON_NEXT_SUSPEND = "ON_NEXT_SUSPEND" } /** * CodePush check frequency enum */ export declare enum CodePushCheckFrequency { MANUAL = 0, ON_APP_START = 1, ON_APP_RESUME = 2 } /** * CodePush deployment status enum */ export declare enum CodePushDeploymentStatus { SUCCEEDED = "DeploymentSucceeded", FAILED = "DeploymentFailed" } /** * CodePush update info interface */ export interface CodePushUpdateInfo { isAvailable: boolean; appVersion?: string; description?: string; isMandatory?: boolean; packageHash?: string; label?: string; packageSize?: number; downloadURL?: string; } /** * CodePush package interface */ export interface CodePushPackage { deploymentKey: string; description: string; label: string; appVersion: string; isMandatory: boolean; packageHash: string; packageSize: number; localPath: string; } /** * CodePush remote package interface */ export interface CodePushRemotePackage extends CodePushPackage { downloadUrl: string; } /** * CodePush local package interface */ export interface CodePushLocalPackage extends CodePushPackage { isFirstRun: boolean; previousLabelOrAppVersion?: string; isPending: boolean; } /** * CodePush configuration interface */ export interface CodePushConfig { deploymentKey: string; serverUrl: string; appVersion: string; checkFrequency?: CodePushCheckFrequency; installMode?: CodePushInstallMode; mandatoryInstallMode?: CodePushInstallMode; minimumBackgroundDuration?: number; } /** * CodePush sync options interface */ export interface CodePushSyncOptions { deploymentKey?: string; installMode?: CodePushInstallMode; mandatoryInstallMode?: CodePushInstallMode; minimumBackgroundDuration?: number; updateDialog?: UpdateDialogOptions | boolean; ignoreFailedUpdates?: boolean; } /** * Update dialog options interface */ export interface UpdateDialogOptions { appendReleaseDescription?: boolean; descriptionPrefix?: string; mandatoryContinueButtonLabel?: string; mandatoryUpdateMessage?: string; optionalIgnoreButtonLabel?: string; optionalInstallButtonLabel?: string; optionalUpdateMessage?: string; title?: string; } /** * CodePush status report interface */ export interface CodePushStatusReport { deploymentKey: string; label: string; appVersion: string; clientUniqueId: string; previousLabelOrAppVersion?: string; status: CodePushDeploymentStatus; } /** * Native module interface */ export interface FlixCodePushNativeModule { getUpdateMetadata(): Promise<CodePushLocalPackage | null>; installUpdate(packageHash: string, installMode: CodePushInstallMode): Promise<void>; restartApp(onlyIfUpdateIsPending?: boolean): Promise<void>; downloadUpdate(updatePackage: CodePushRemotePackage): Promise<CodePushLocalPackage>; processPackage(packageData: ArrayBuffer, packageHash: string, updatePackage: CodePushRemotePackage): Promise<CodePushLocalPackage>; getConfiguration(): Promise<CodePushConfig>; getAppVersion(): Promise<string>; getDeviceId(): Promise<string>; saveUpdateMetadata(updatePackage: CodePushLocalPackage): Promise<void>; clearUpdates(): Promise<void>; getConstants(): { isNewArchitectureEnabled: boolean; isHermesEnabled: boolean; }; } /** * CodePush hook return type */ export interface UseCodePushResult { checkForUpdate: (deploymentKey?: string) => Promise<CodePushRemotePackage | null>; sync: (options?: CodePushSyncOptions) => Promise<CodePushSyncStatus>; getCurrentPackage: () => Promise<CodePushLocalPackage | null>; restartApp: () => Promise<void>; clearUpdates: () => Promise<void>; getUpdateMetadata: () => Promise<CodePushLocalPackage | null>; downloadUpdate: (remotePackage: CodePushRemotePackage) => Promise<CodePushLocalPackage>; installUpdate: (packageHash: string, installMode?: CodePushInstallMode) => Promise<void>; syncStatus: CodePushSyncStatus; currentPackage: CodePushLocalPackage | null; pendingUpdate: CodePushRemotePackage | null; isCheckingForUpdate: boolean; isDownloading: boolean; isInstalling: boolean; downloadProgress: { receivedBytes: number; totalBytes: number; }; cancelSync: () => void; } /** * CodePush sync status enum */ export declare enum CodePushSyncStatus { UP_TO_DATE = 0, UPDATE_INSTALLED = 1, UPDATE_IGNORED = 2, UNKNOWN_ERROR = 3, SYNC_IN_PROGRESS = 4, CHECKING_FOR_UPDATE = 5, AWAITING_USER_ACTION = 6, DOWNLOADING_PACKAGE = 7, INSTALLING_UPDATE = 8 } /** * CodePush error interface */ export interface CodePushError extends Error { code: string; domain: string; } /** * Download progress callback */ export type DownloadProgressCallback = (progress: { receivedBytes: number; totalBytes: number; }) => void; /** * Sync status change callback */ export type SyncStatusChangedCallback = (status: CodePushSyncStatus) => void; /** * Binary version mismatch callback */ export type BinaryVersionMismatchCallback = (update: CodePushRemotePackage) => boolean; //# sourceMappingURL=index.d.ts.map