16e2900b2SDouglas Lowder // Copyright 2022-present 650 Industries. All rights reserved.
26e2900b2SDouglas Lowder 
36e2900b2SDouglas Lowder import Foundation
46e2900b2SDouglas Lowder 
56e2900b2SDouglas Lowder /**
66e2900b2SDouglas Lowder  Error codes for expo-updates logs
76e2900b2SDouglas Lowder  */
8f428ca9bSWill Schurman internal enum UpdatesErrorCode: Int {
97d5f3528SDouglas Lowder   case none = 0
107d5f3528SDouglas Lowder   case noUpdatesAvailable = 1
117d5f3528SDouglas Lowder   case updateAssetsNotAvailable = 2
127d5f3528SDouglas Lowder   case updateServerUnreachable = 3
137d5f3528SDouglas Lowder   case updateHasInvalidSignature = 4
147d5f3528SDouglas Lowder   case updateFailedToLoad = 5
157d5f3528SDouglas Lowder   case assetsFailedToLoad = 6
167d5f3528SDouglas Lowder   case jsRuntimeError = 7
179bd3e43cSDouglas Lowder   case unknown = 8
18d2ecfbc4SWill Schurman   case updateCodeSigningError = 9
196e2900b2SDouglas Lowder 
206e2900b2SDouglas Lowder   // Because this enum is exported to Objective-C,
216e2900b2SDouglas Lowder   // the usual "\(UpdatesErrorCode.NoUpdatesAvailable)"
226e2900b2SDouglas Lowder   // string representation will not work as expected,
236e2900b2SDouglas Lowder   // so we add this representation here
24*17709897SWill Schurman   var asString: String {
256e2900b2SDouglas Lowder     switch self {
267d5f3528SDouglas Lowder     case .none:
276e2900b2SDouglas Lowder       return "None"
287d5f3528SDouglas Lowder     case .noUpdatesAvailable:
296e2900b2SDouglas Lowder       return "NoUpdatesAvailable"
307d5f3528SDouglas Lowder     case .updateAssetsNotAvailable:
316e2900b2SDouglas Lowder       return "UpdateAssetsNotAvailable"
327d5f3528SDouglas Lowder     case .updateServerUnreachable:
336e2900b2SDouglas Lowder       return "UpdateServerUnreachable"
347d5f3528SDouglas Lowder     case .updateHasInvalidSignature:
356e2900b2SDouglas Lowder       return "UpdateHasInvalidSignature"
36d2ecfbc4SWill Schurman     case .updateCodeSigningError:
37d2ecfbc4SWill Schurman       return "UpdateCodeSigningError"
387d5f3528SDouglas Lowder     case .updateFailedToLoad:
396e2900b2SDouglas Lowder       return "UpdateFailedToLoad"
407d5f3528SDouglas Lowder     case .assetsFailedToLoad:
416e2900b2SDouglas Lowder       return "AssetsFailedToLoad"
427d5f3528SDouglas Lowder     case .jsRuntimeError:
436e2900b2SDouglas Lowder       return "JSRuntimeError"
449bd3e43cSDouglas Lowder     case .unknown:
459bd3e43cSDouglas Lowder       return "Unknown"
466e2900b2SDouglas Lowder     }
476e2900b2SDouglas Lowder   }
486e2900b2SDouglas Lowder }
49