@@ -90,7 +90,7 @@ function getPromisifiedSdk(requestFetchAdapter, config) {
90
90
let sdk = new module . exports . AcquisitionSdk ( requestFetchAdapter , config ) ;
91
91
sdk . queryUpdateWithCurrentPackage = ( queryPackage ) => {
92
92
return new Promise ( ( resolve , reject ) => {
93
- sdk . queryUpdateWithCurrentPackage ( queryPackage , ( err , update ) => {
93
+ module . exports . AcquisitionSdk . prototype . queryUpdateWithCurrentPackage . call ( sdk , queryPackage , ( err , update ) => {
94
94
if ( err ) {
95
95
reject ( err ) ;
96
96
} else {
@@ -126,8 +126,8 @@ function setUpTestDependencies(testSdk, providedTestConfig, testNativeBridge) {
126
126
* releases, and displaying a standard confirmation UI to the end-user
127
127
* when an update is available.
128
128
*/
129
- function sync ( options = { } , syncStatusChangeCallback , downloadProgressCallback ) {
130
- var syncOptions = {
129
+ async function sync ( options = { } , syncStatusChangeCallback , downloadProgressCallback ) {
130
+ let syncOptions = {
131
131
132
132
deploymentKey : null ,
133
133
ignoreFailedUpdates : true ,
@@ -139,7 +139,7 @@ function sync(options = {}, syncStatusChangeCallback, downloadProgressCallback)
139
139
140
140
syncStatusChangeCallback = typeof syncStatusChangeCallback == "function"
141
141
? syncStatusChangeCallback
142
- : function ( syncStatus ) {
142
+ : ( syncStatus ) => {
143
143
switch ( syncStatus ) {
144
144
case CodePush . SyncStatus . CHECKING_FOR_UPDATE :
145
145
log ( "Checking for update." ) ;
@@ -178,93 +178,83 @@ function sync(options = {}, syncStatusChangeCallback, downloadProgressCallback)
178
178
179
179
downloadProgressCallback = typeof downloadProgressCallback == "function"
180
180
? downloadProgressCallback
181
- : function ( downloadProgress ) {
181
+ : ( downloadProgress ) => {
182
182
log ( `Expecting ${ downloadProgress . totalBytes } bytes, received ${ downloadProgress . receivedBytes } bytes.` ) ;
183
183
} ;
184
184
185
- return new Promise ( ( resolve , reject ) => {
186
- var rejectPromise = ( error ) => {
187
- syncStatusChangeCallback ( CodePush . SyncStatus . UNKNOWN_ERROR ) ;
188
- log ( error . message ) ;
189
- reject ( error ) ;
185
+ try {
186
+ await CodePush . notifyApplicationReady ( ) ;
187
+
188
+ syncStatusChangeCallback ( CodePush . SyncStatus . CHECKING_FOR_UPDATE ) ;
189
+ let remotePackage = await checkForUpdate ( syncOptions . deploymentKey ) ;
190
+
191
+ let doDownloadAndInstall = async ( ) => {
192
+ syncStatusChangeCallback ( CodePush . SyncStatus . DOWNLOADING_PACKAGE ) ;
193
+ let localPackage = await remotePackage . download ( downloadProgressCallback ) ;
194
+
195
+ syncStatusChangeCallback ( CodePush . SyncStatus . INSTALLING_UPDATE ) ;
196
+ await localPackage . install ( syncOptions . installMode , ( ) => {
197
+ syncStatusChangeCallback ( CodePush . SyncStatus . UPDATE_INSTALLED ) ;
198
+ } ) ;
199
+
200
+ return CodePush . SyncStatus . UPDATE_INSTALLED ;
190
201
} ;
191
202
192
- CodePush . notifyApplicationReady ( )
193
- . then ( ( ) => {
194
- syncStatusChangeCallback ( CodePush . SyncStatus . CHECKING_FOR_UPDATE ) ;
195
- return checkForUpdate ( syncOptions . deploymentKey ) ;
196
- } )
197
- . then ( ( remotePackage ) => {
198
- var doDownloadAndInstall = ( ) => {
199
- syncStatusChangeCallback ( CodePush . SyncStatus . DOWNLOADING_PACKAGE ) ;
200
- remotePackage . download ( downloadProgressCallback )
201
- . then ( ( localPackage ) => {
202
- syncStatusChangeCallback ( CodePush . SyncStatus . INSTALLING_UPDATE ) ;
203
- return localPackage . install ( syncOptions . installMode , ( ) => {
204
- syncStatusChangeCallback ( CodePush . SyncStatus . UPDATE_INSTALLED ) ;
205
- resolve ( CodePush . SyncStatus . UPDATE_INSTALLED ) ;
206
- } ) ;
207
- } )
208
- . catch ( rejectPromise )
209
- . done ( ) ;
210
- }
203
+ if ( ! remotePackage || ( remotePackage . failedInstall && syncOptions . ignoreFailedUpdates ) ) {
204
+ syncStatusChangeCallback ( CodePush . SyncStatus . UP_TO_DATE ) ;
205
+ return ( CodePush . SyncStatus . UP_TO_DATE ) ;
206
+ } else if ( syncOptions . updateDialog ) {
207
+ // updateDialog supports any truthy value (e.g. true, "goo", 12),
208
+ // but we should treat a non-object value as just the default dialog
209
+ if ( typeof syncOptions . updateDialog !== "object" ) {
210
+ syncOptions . updateDialog = CodePush . DEFAULT_UPDATE_DIALOG ;
211
+ } else {
212
+ syncOptions . updateDialog = Object . assign ( { } , CodePush . DEFAULT_UPDATE_DIALOG , syncOptions . updateDialog ) ;
213
+ }
211
214
212
- if ( ! remotePackage || ( remotePackage . failedInstall && syncOptions . ignoreFailedUpdates ) ) {
213
- syncStatusChangeCallback ( CodePush . SyncStatus . UP_TO_DATE ) ;
214
- resolve ( CodePush . SyncStatus . UP_TO_DATE ) ;
215
- }
216
- else if ( syncOptions . updateDialog ) {
217
- // updateDialog supports any truthy value (e.g. true, "goo", 12),
218
- // but we should treat a non-object value as just the default dialog
219
- if ( typeof syncOptions . updateDialog !== "object" ) {
220
- syncOptions . updateDialog = CodePush . DEFAULT_UPDATE_DIALOG ;
221
- } else {
222
- syncOptions . updateDialog = Object . assign ( { } , CodePush . DEFAULT_UPDATE_DIALOG , syncOptions . updateDialog ) ;
223
- }
224
-
225
- var message = null ;
226
- var dialogButtons = [
227
- {
228
- text : null ,
229
- onPress : ( ) => {
230
- doDownloadAndInstall ( ) ;
231
- }
232
- }
233
- ] ;
234
-
235
- if ( remotePackage . isMandatory ) {
236
- message = syncOptions . updateDialog . mandatoryUpdateMessage ;
237
- dialogButtons [ 0 ] . text = syncOptions . updateDialog . mandatoryContinueButtonLabel ;
238
- } else {
239
- message = syncOptions . updateDialog . optionalUpdateMessage ;
240
- dialogButtons [ 0 ] . text = syncOptions . updateDialog . optionalInstallButtonLabel ;
241
-
242
- // Since this is an optional update, add another button
243
- // to allow the end-user to ignore it
244
- dialogButtons . push ( {
245
- text : syncOptions . updateDialog . optionalIgnoreButtonLabel ,
246
- onPress : ( ) => {
247
- syncStatusChangeCallback ( CodePush . SyncStatus . UPDATE_IGNORED ) ;
248
- resolve ( CodePush . SyncStatus . UPDATE_IGNORED ) ;
249
- }
250
- } ) ;
251
- }
252
-
253
- // If the update has a description, and the developer
254
- // explicitly chose to display it, then set that as the message
255
- if ( syncOptions . updateDialog . appendReleaseDescription && remotePackage . description ) {
256
- message += `${ syncOptions . updateDialog . descriptionPrefix } ${ remotePackage . description } ` ;
215
+ return await new Promise ( ( resolve , reject ) => {
216
+ let message = null ;
217
+ let dialogButtons = [ {
218
+ text : null ,
219
+ onPress : async ( ) => {
220
+ resolve ( await doDownloadAndInstall ( ) ) ;
257
221
}
258
-
259
- syncStatusChangeCallback ( CodePush . SyncStatus . AWAITING_USER_ACTION ) ;
260
- Alert . alert ( syncOptions . updateDialog . title , message , dialogButtons ) ;
222
+ } ] ;
223
+
224
+ if ( remotePackage . isMandatory ) {
225
+ message = syncOptions . updateDialog . mandatoryUpdateMessage ;
226
+ dialogButtons [ 0 ] . text = syncOptions . updateDialog . mandatoryContinueButtonLabel ;
261
227
} else {
262
- doDownloadAndInstall ( ) ;
228
+ message = syncOptions . updateDialog . optionalUpdateMessage ;
229
+ dialogButtons [ 0 ] . text = syncOptions . updateDialog . optionalInstallButtonLabel ;
230
+ // Since this is an optional update, add another button
231
+ // to allow the end-user to ignore it
232
+ dialogButtons . push ( {
233
+ text : syncOptions . updateDialog . optionalIgnoreButtonLabel ,
234
+ onPress : ( ) => {
235
+ syncStatusChangeCallback ( CodePush . SyncStatus . UPDATE_IGNORED ) ;
236
+ resolve ( CodePush . SyncStatus . UPDATE_IGNORED ) ;
237
+ }
238
+ } ) ;
239
+ }
240
+
241
+ // If the update has a description, and the developer
242
+ // explicitly chose to display it, then set that as the message
243
+ if ( syncOptions . updateDialog . appendReleaseDescription && remotePackage . description ) {
244
+ message += `${ syncOptions . updateDialog . descriptionPrefix } ${ remotePackage . description } ` ;
263
245
}
264
- } )
265
- . catch ( rejectPromise )
266
- . done ( ) ;
267
- } ) ;
246
+
247
+ syncStatusChangeCallback ( CodePush . SyncStatus . AWAITING_USER_ACTION ) ;
248
+ Alert . alert ( syncOptions . updateDialog . title , message , dialogButtons ) ;
249
+ } ) ;
250
+ } else {
251
+ return await doDownloadAndInstall ( ) ;
252
+ }
253
+ } catch ( error ) {
254
+ syncStatusChangeCallback ( CodePush . SyncStatus . UNKNOWN_ERROR ) ;
255
+ log ( error . message ) ;
256
+ throw error ;
257
+ }
268
258
} ;
269
259
270
260
var CodePush = {
@@ -304,4 +294,4 @@ var CodePush = {
304
294
}
305
295
} ;
306
296
307
- module . exports = CodePush ;
297
+ export default CodePush ;
0 commit comments