@appzung/react-native-code-push 10.1.1 → 10.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/app/src/main/java/com/appzung/codepush/react/CodePushConstants.java +2 -0
- package/android/app/src/main/java/com/appzung/codepush/react/CodePushNativeModule.java +62 -0
- package/ios/CodePush/CodePush.h +2 -0
- package/ios/CodePush/CodePush.m +28 -0
- package/ios/CodePush/CodePushConfig.m +50 -0
- package/lib/commonjs/CodePush.js +5 -0
- package/lib/commonjs/CodePush.js.map +1 -1
- package/lib/commonjs/allowRestart.js +4 -2
- package/lib/commonjs/allowRestart.js.map +1 -1
- package/lib/commonjs/checkForUpdates.js +3 -2
- package/lib/commonjs/checkForUpdates.js.map +1 -1
- package/lib/commonjs/clearUpdates.js +4 -2
- package/lib/commonjs/clearUpdates.js.map +1 -1
- package/lib/commonjs/dataTransmission.js +28 -0
- package/lib/commonjs/dataTransmission.js.map +1 -0
- package/lib/commonjs/disallowRestart.js +4 -2
- package/lib/commonjs/disallowRestart.js.map +1 -1
- package/lib/commonjs/enums/LogLevel.enum.js +17 -0
- package/lib/commonjs/enums/LogLevel.enum.js.map +1 -0
- package/lib/commonjs/index.js +60 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internals/CodePushApiSdk.js +23 -1
- package/lib/commonjs/internals/CodePushApiSdk.js.map +1 -1
- package/lib/commonjs/internals/CodePushApiSdk.types.js.map +1 -1
- package/lib/commonjs/internals/RemotePackageImplementation.js +2 -1
- package/lib/commonjs/internals/RemotePackageImplementation.js.map +1 -1
- package/lib/commonjs/internals/logger.js +51 -0
- package/lib/commonjs/internals/logger.js.map +1 -0
- package/lib/commonjs/internals/shouldUpdateBeIgnored.js +6 -5
- package/lib/commonjs/internals/shouldUpdateBeIgnored.js.map +1 -1
- package/lib/commonjs/internals/utils/log.js +10 -3
- package/lib/commonjs/internals/utils/log.js.map +1 -1
- package/lib/commonjs/internals/utils/requestFetchAdapter.js +5 -0
- package/lib/commonjs/internals/utils/requestFetchAdapter.js.map +1 -1
- package/lib/commonjs/internals/version.js +1 -1
- package/lib/commonjs/logLevel.js +15 -0
- package/lib/commonjs/logLevel.js.map +1 -0
- package/lib/commonjs/logger.js +19 -0
- package/lib/commonjs/logger.js.map +1 -0
- package/lib/commonjs/notifyAppReady.js +17 -8
- package/lib/commonjs/notifyAppReady.js.map +1 -1
- package/lib/commonjs/restartApp.js +2 -2
- package/lib/commonjs/restartApp.js.map +1 -1
- package/lib/commonjs/sync.js +32 -27
- package/lib/commonjs/sync.js.map +1 -1
- package/lib/commonjs/telemetry.js +28 -0
- package/lib/commonjs/telemetry.js.map +1 -0
- package/lib/module/CodePush.js +5 -0
- package/lib/module/CodePush.js.map +1 -1
- package/lib/module/allowRestart.js +3 -1
- package/lib/module/allowRestart.js.map +1 -1
- package/lib/module/checkForUpdates.js +3 -2
- package/lib/module/checkForUpdates.js.map +1 -1
- package/lib/module/clearUpdates.js +3 -1
- package/lib/module/clearUpdates.js.map +1 -1
- package/lib/module/dataTransmission.js +24 -0
- package/lib/module/dataTransmission.js.map +1 -0
- package/lib/module/disallowRestart.js +3 -1
- package/lib/module/disallowRestart.js.map +1 -1
- package/lib/module/enums/LogLevel.enum.js +13 -0
- package/lib/module/enums/LogLevel.enum.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/internals/CodePushApiSdk.js +23 -1
- package/lib/module/internals/CodePushApiSdk.js.map +1 -1
- package/lib/module/internals/CodePushApiSdk.types.js.map +1 -1
- package/lib/module/internals/RemotePackageImplementation.js +2 -1
- package/lib/module/internals/RemotePackageImplementation.js.map +1 -1
- package/lib/module/internals/logger.js +44 -0
- package/lib/module/internals/logger.js.map +1 -0
- package/lib/module/internals/shouldUpdateBeIgnored.js +6 -5
- package/lib/module/internals/shouldUpdateBeIgnored.js.map +1 -1
- package/lib/module/internals/utils/log.js +11 -3
- package/lib/module/internals/utils/log.js.map +1 -1
- package/lib/module/internals/utils/requestFetchAdapter.js +5 -0
- package/lib/module/internals/utils/requestFetchAdapter.js.map +1 -1
- package/lib/module/internals/version.js +1 -1
- package/lib/module/logLevel.js +9 -0
- package/lib/module/logLevel.js.map +1 -0
- package/lib/module/logger.js +4 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/notifyAppReady.js +17 -8
- package/lib/module/notifyAppReady.js.map +1 -1
- package/lib/module/restartApp.js +2 -2
- package/lib/module/restartApp.js.map +1 -1
- package/lib/module/sync.js +32 -27
- package/lib/module/sync.js.map +1 -1
- package/lib/module/telemetry.js +24 -0
- package/lib/module/telemetry.js.map +1 -0
- package/lib/typescript/commonjs/src/CodePush.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/allowRestart.d.ts +1 -1
- package/lib/typescript/commonjs/src/allowRestart.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/checkForUpdates.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/clearUpdates.d.ts +1 -1
- package/lib/typescript/commonjs/src/clearUpdates.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/dataTransmission.d.ts +13 -0
- package/lib/typescript/commonjs/src/dataTransmission.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/disallowRestart.d.ts +1 -1
- package/lib/typescript/commonjs/src/disallowRestart.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/enums/LogLevel.enum.d.ts +10 -0
- package/lib/typescript/commonjs/src/enums/LogLevel.enum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +5 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/CodePushApiSdk.d.ts +3 -1
- package/lib/typescript/commonjs/src/internals/CodePushApiSdk.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/CodePushApiSdk.types.d.ts +2 -0
- package/lib/typescript/commonjs/src/internals/CodePushApiSdk.types.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/RNAppZungCodePushModuleSpec.d.ts +4 -0
- package/lib/typescript/commonjs/src/internals/RNAppZungCodePushModuleSpec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/RemotePackageImplementation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/logger.d.ts +33 -0
- package/lib/typescript/commonjs/src/internals/logger.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/internals/shouldUpdateBeIgnored.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/utils/log.d.ts +2 -1
- package/lib/typescript/commonjs/src/internals/utils/log.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/utils/requestFetchAdapter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internals/version.d.ts +1 -1
- package/lib/typescript/commonjs/src/logLevel.d.ts +4 -0
- package/lib/typescript/commonjs/src/logLevel.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/logger.d.ts +3 -0
- package/lib/typescript/commonjs/src/logger.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/notifyAppReady.d.ts +2 -0
- package/lib/typescript/commonjs/src/notifyAppReady.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/restartApp.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/sync.d.ts +2 -0
- package/lib/typescript/commonjs/src/sync.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/telemetry.d.ts +13 -0
- package/lib/typescript/commonjs/src/telemetry.d.ts.map +1 -0
- package/lib/typescript/module/src/CodePush.d.ts.map +1 -1
- package/lib/typescript/module/src/allowRestart.d.ts +1 -1
- package/lib/typescript/module/src/allowRestart.d.ts.map +1 -1
- package/lib/typescript/module/src/checkForUpdates.d.ts.map +1 -1
- package/lib/typescript/module/src/clearUpdates.d.ts +1 -1
- package/lib/typescript/module/src/clearUpdates.d.ts.map +1 -1
- package/lib/typescript/module/src/dataTransmission.d.ts +13 -0
- package/lib/typescript/module/src/dataTransmission.d.ts.map +1 -0
- package/lib/typescript/module/src/disallowRestart.d.ts +1 -1
- package/lib/typescript/module/src/disallowRestart.d.ts.map +1 -1
- package/lib/typescript/module/src/enums/LogLevel.enum.d.ts +10 -0
- package/lib/typescript/module/src/enums/LogLevel.enum.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +5 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/CodePushApiSdk.d.ts +3 -1
- package/lib/typescript/module/src/internals/CodePushApiSdk.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/CodePushApiSdk.types.d.ts +2 -0
- package/lib/typescript/module/src/internals/CodePushApiSdk.types.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/RNAppZungCodePushModuleSpec.d.ts +4 -0
- package/lib/typescript/module/src/internals/RNAppZungCodePushModuleSpec.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/RemotePackageImplementation.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/logger.d.ts +33 -0
- package/lib/typescript/module/src/internals/logger.d.ts.map +1 -0
- package/lib/typescript/module/src/internals/shouldUpdateBeIgnored.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/utils/log.d.ts +2 -1
- package/lib/typescript/module/src/internals/utils/log.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/utils/requestFetchAdapter.d.ts.map +1 -1
- package/lib/typescript/module/src/internals/version.d.ts +1 -1
- package/lib/typescript/module/src/logLevel.d.ts +4 -0
- package/lib/typescript/module/src/logLevel.d.ts.map +1 -0
- package/lib/typescript/module/src/logger.d.ts +3 -0
- package/lib/typescript/module/src/logger.d.ts.map +1 -0
- package/lib/typescript/module/src/notifyAppReady.d.ts +2 -0
- package/lib/typescript/module/src/notifyAppReady.d.ts.map +1 -1
- package/lib/typescript/module/src/restartApp.d.ts.map +1 -1
- package/lib/typescript/module/src/sync.d.ts +2 -0
- package/lib/typescript/module/src/sync.d.ts.map +1 -1
- package/lib/typescript/module/src/telemetry.d.ts +13 -0
- package/lib/typescript/module/src/telemetry.d.ts.map +1 -0
- package/package.json +23 -14
- package/scripts/generateBundledResourcesHash.js +73 -68
- package/scripts/getFilesInFolder.js +12 -12
- package/scripts/recordFilesBeforeBundleCommand.js +19 -20
- package/src/CodePush.tsx +6 -0
- package/src/allowRestart.ts +3 -1
- package/src/checkForUpdates.ts +3 -2
- package/src/clearUpdates.ts +3 -1
- package/src/dataTransmission.ts +21 -0
- package/src/disallowRestart.ts +3 -1
- package/src/enums/LogLevel.enum.ts +9 -0
- package/src/index.ts +5 -0
- package/src/internals/CodePushApiSdk.ts +27 -0
- package/src/internals/CodePushApiSdk.types.ts +2 -0
- package/src/internals/RNAppZungCodePushModuleSpec.ts +6 -0
- package/src/internals/RemotePackageImplementation.ts +2 -1
- package/src/internals/logger.ts +46 -0
- package/src/internals/shouldUpdateBeIgnored.ts +6 -5
- package/src/internals/utils/log.ts +13 -3
- package/src/internals/utils/requestFetchAdapter.ts +8 -0
- package/src/internals/version.ts +1 -1
- package/src/logLevel.ts +9 -0
- package/src/logger.ts +2 -0
- package/src/notifyAppReady.ts +19 -7
- package/src/restartApp.ts +2 -2
- package/src/sync.ts +38 -26
- package/src/telemetry.ts +21 -0
- package/typedoc.json +0 -9
package/src/logLevel.ts
ADDED
package/src/logger.ts
ADDED
package/src/notifyAppReady.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AppState, type NativeEventSubscription } from 'react-native';
|
|
2
|
+
import { LogLevel } from './enums/LogLevel.enum';
|
|
2
3
|
import { CodePushApiSdk } from './internals/CodePushApiSdk';
|
|
3
4
|
import { NativeRNAppZungCodePushModule } from './internals/NativeRNAppZungCodePushModule';
|
|
4
5
|
import { getConfiguration } from './internals/getConfiguration';
|
|
@@ -7,6 +8,8 @@ import { requestFetchAdapter } from './internals/utils/requestFetchAdapter';
|
|
|
7
8
|
import type { StatusReport } from './types';
|
|
8
9
|
|
|
9
10
|
/**
|
|
11
|
+
* @function
|
|
12
|
+
*
|
|
10
13
|
* Notifies the CodePush runtime that an installed update is considered successful.
|
|
11
14
|
*
|
|
12
15
|
* If you are manually checking for and installing updates (i.e. not using the `sync` method to handle it all for you), then this method **MUST** be called; otherwise CodePush will treat the update as failed and rollback to the previous version when the app next restarts.
|
|
@@ -26,9 +29,17 @@ export const notifyAppReady = (() => {
|
|
|
26
29
|
})();
|
|
27
30
|
|
|
28
31
|
async function notifyApplicationReadyInternal() {
|
|
32
|
+
log(LogLevel.DEBUG, 'notifyApplicationReady');
|
|
33
|
+
|
|
29
34
|
await NativeRNAppZungCodePushModule.notifyApplicationReady();
|
|
30
35
|
const statusReport = await NativeRNAppZungCodePushModule.getNewStatusReport();
|
|
31
|
-
|
|
36
|
+
if (statusReport) {
|
|
37
|
+
log(LogLevel.DEBUG, `tryReportStatus ${statusReport.status || '(no update)'}`);
|
|
38
|
+
|
|
39
|
+
tryReportStatus(statusReport); // Don't wait for this to complete.
|
|
40
|
+
} else {
|
|
41
|
+
log(LogLevel.DEBUG, `Nothing to report`);
|
|
42
|
+
}
|
|
32
43
|
|
|
33
44
|
return statusReport;
|
|
34
45
|
}
|
|
@@ -39,13 +50,13 @@ async function tryReportStatus(statusReport: StatusReport, retryOnAppResume?: Na
|
|
|
39
50
|
const previousReleaseChannelPublicId = statusReport.previousReleaseChannelPublicId || config.releaseChannelPublicId;
|
|
40
51
|
try {
|
|
41
52
|
if (statusReport.appVersion) {
|
|
42
|
-
log(`Reporting binary update (${statusReport.appVersion})`);
|
|
53
|
+
log(LogLevel.INFO, `Reporting binary update (${statusReport.appVersion})`);
|
|
43
54
|
|
|
44
55
|
if (!config.releaseChannelPublicId) {
|
|
45
56
|
throw new Error('Release channel is missing');
|
|
46
57
|
}
|
|
47
58
|
|
|
48
|
-
const sdk = new CodePushApiSdk(requestFetchAdapter, config);
|
|
59
|
+
const sdk = new CodePushApiSdk(requestFetchAdapter, log, config);
|
|
49
60
|
await sdk.reportStatusDeploy(null, previousLabelOrAppVersion, previousReleaseChannelPublicId);
|
|
50
61
|
} else {
|
|
51
62
|
if (!statusReport.package) {
|
|
@@ -54,14 +65,14 @@ async function tryReportStatus(statusReport: StatusReport, retryOnAppResume?: Na
|
|
|
54
65
|
|
|
55
66
|
const label = statusReport.package.label;
|
|
56
67
|
if (statusReport.status === 'DeploymentSucceeded') {
|
|
57
|
-
log(`Reporting CodePush update success (${label})`);
|
|
68
|
+
log(LogLevel.INFO, `Reporting CodePush update success (${label})`);
|
|
58
69
|
} else {
|
|
59
|
-
log(`Reporting CodePush update rollback (${label})`);
|
|
70
|
+
log(LogLevel.INFO, `Reporting CodePush update rollback (${label})`);
|
|
60
71
|
await NativeRNAppZungCodePushModule.setLatestRollbackInfo(statusReport.package.packageHash);
|
|
61
72
|
}
|
|
62
73
|
|
|
63
74
|
config.releaseChannelPublicId = statusReport.package.releaseChannelPublicId;
|
|
64
|
-
const sdk = new CodePushApiSdk(requestFetchAdapter, config);
|
|
75
|
+
const sdk = new CodePushApiSdk(requestFetchAdapter, log, config);
|
|
65
76
|
await sdk.reportStatusDeploy(
|
|
66
77
|
{
|
|
67
78
|
package: statusReport.package,
|
|
@@ -75,7 +86,7 @@ async function tryReportStatus(statusReport: StatusReport, retryOnAppResume?: Na
|
|
|
75
86
|
NativeRNAppZungCodePushModule.recordStatusReported(statusReport);
|
|
76
87
|
retryOnAppResume && retryOnAppResume.remove();
|
|
77
88
|
} catch (e) {
|
|
78
|
-
log(`Report status failed: ${JSON.stringify(statusReport)}`);
|
|
89
|
+
log(LogLevel.WARN, `Report status failed: ${JSON.stringify(statusReport)}`);
|
|
79
90
|
NativeRNAppZungCodePushModule.saveStatusReportForRetry(statusReport);
|
|
80
91
|
// Try again when the app resumes
|
|
81
92
|
if (!retryOnAppResume) {
|
|
@@ -83,6 +94,7 @@ async function tryReportStatus(statusReport: StatusReport, retryOnAppResume?: Na
|
|
|
83
94
|
if (newState !== 'active') return;
|
|
84
95
|
const refreshedStatusReport = await NativeRNAppZungCodePushModule.getNewStatusReport();
|
|
85
96
|
if (refreshedStatusReport) {
|
|
97
|
+
log(LogLevel.DEBUG, `tryReportStatus on active appState ${statusReport.status || '(no update)'}`);
|
|
86
98
|
tryReportStatus(refreshedStatusReport, resumeListener);
|
|
87
99
|
} else {
|
|
88
100
|
resumeListener && resumeListener.remove();
|
package/src/restartApp.ts
CHANGED
|
@@ -7,6 +7,6 @@ import { NativeRNAppZungCodePushModule } from './internals/NativeRNAppZungCodePu
|
|
|
7
7
|
*
|
|
8
8
|
* @param onlyIfUpdateIsPending Indicates whether you want the restart to no-op if there isn't currently a pending update.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
11
|
-
NativeRNAppZungCodePushModule.restartApp(onlyIfUpdateIsPending);
|
|
10
|
+
export function restartApp(onlyIfUpdateIsPending = false) {
|
|
11
|
+
return NativeRNAppZungCodePushModule.restartApp(onlyIfUpdateIsPending);
|
|
12
12
|
}
|
package/src/sync.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Alert, type AlertButton, Platform } from 'react-native';
|
|
2
2
|
import { checkForUpdate } from './checkForUpdates';
|
|
3
3
|
import { InstallMode } from './enums/InstallMode.enum';
|
|
4
|
+
import { LogLevel } from './enums/LogLevel.enum';
|
|
4
5
|
import { SyncStatus } from './enums/SyncStatus.enum';
|
|
5
6
|
import { getCurrentPackage } from './internals/getCurrentPackage';
|
|
6
7
|
import { shouldUpdateBeIgnored } from './internals/shouldUpdateBeIgnored';
|
|
@@ -62,38 +63,39 @@ async function syncInternal(
|
|
|
62
63
|
: (syncStatus: SyncStatus) => {
|
|
63
64
|
switch (syncStatus) {
|
|
64
65
|
case SyncStatus.CHECKING_FOR_UPDATE:
|
|
65
|
-
log('Checking for update.');
|
|
66
|
+
log(LogLevel.INFO, 'Checking for update.');
|
|
66
67
|
break;
|
|
67
68
|
case SyncStatus.AWAITING_USER_ACTION:
|
|
68
|
-
log('Awaiting user action.');
|
|
69
|
+
log(LogLevel.INFO, 'Awaiting user action.');
|
|
69
70
|
break;
|
|
70
71
|
case SyncStatus.DOWNLOADING_PACKAGE:
|
|
71
|
-
log('Downloading package.');
|
|
72
|
+
log(LogLevel.INFO, 'Downloading package.');
|
|
72
73
|
break;
|
|
73
74
|
case SyncStatus.INSTALLING_UPDATE:
|
|
74
|
-
log('Installing update.');
|
|
75
|
+
log(LogLevel.INFO, 'Installing update.');
|
|
75
76
|
break;
|
|
76
77
|
case SyncStatus.UP_TO_DATE:
|
|
77
|
-
log('App is up to date.');
|
|
78
|
+
log(LogLevel.INFO, 'App is up to date.');
|
|
78
79
|
break;
|
|
79
80
|
case SyncStatus.UPDATE_IGNORED:
|
|
80
|
-
log('User cancelled the update.');
|
|
81
|
+
log(LogLevel.INFO, 'User cancelled the update.');
|
|
81
82
|
break;
|
|
82
83
|
case SyncStatus.UPDATE_INSTALLED:
|
|
83
|
-
if (resolvedInstallMode
|
|
84
|
-
log('Update is installed and will be run on the next app restart.');
|
|
85
|
-
} else if (resolvedInstallMode
|
|
86
|
-
if (
|
|
84
|
+
if (resolvedInstallMode === InstallMode.ON_NEXT_RESTART) {
|
|
85
|
+
log(LogLevel.INFO, 'Update is installed and will be run on the next app restart.');
|
|
86
|
+
} else if (resolvedInstallMode === InstallMode.ON_NEXT_RESUME) {
|
|
87
|
+
if (syncOptions.minimumBackgroundDuration) {
|
|
87
88
|
log(
|
|
89
|
+
LogLevel.INFO,
|
|
88
90
|
`Update is installed and will be run after the app has been in the background for at least ${syncOptions.minimumBackgroundDuration} seconds.`,
|
|
89
91
|
);
|
|
90
92
|
} else {
|
|
91
|
-
log('Update is installed and will be run when the app next resumes.');
|
|
93
|
+
log(LogLevel.INFO, 'Update is installed and will be run when the app next resumes.');
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
96
|
break;
|
|
95
97
|
case SyncStatus.UNKNOWN_ERROR:
|
|
96
|
-
log('An unknown error occurred.');
|
|
98
|
+
log(LogLevel.ERROR, 'An unknown error occurred.');
|
|
97
99
|
break;
|
|
98
100
|
}
|
|
99
101
|
};
|
|
@@ -127,7 +129,10 @@ async function syncInternal(
|
|
|
127
129
|
|
|
128
130
|
if (!remotePackage || updateShouldBeIgnored) {
|
|
129
131
|
if (updateShouldBeIgnored) {
|
|
130
|
-
log(
|
|
132
|
+
log(
|
|
133
|
+
LogLevel.INFO,
|
|
134
|
+
'An update is available, but it is being ignored due to having been previously rolled back.',
|
|
135
|
+
);
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
const currentPackage = await getCurrentPackage();
|
|
@@ -195,6 +200,7 @@ async function syncInternal(
|
|
|
195
200
|
} catch (error) {
|
|
196
201
|
syncStatusChangeCallback(SyncStatus.UNKNOWN_ERROR);
|
|
197
202
|
log(
|
|
203
|
+
LogLevel.ERROR,
|
|
198
204
|
error != null && typeof error === 'object' && 'message' in error && typeof error.message === 'string'
|
|
199
205
|
? error.message
|
|
200
206
|
: 'Unknown',
|
|
@@ -204,6 +210,8 @@ async function syncInternal(
|
|
|
204
210
|
}
|
|
205
211
|
|
|
206
212
|
/**
|
|
213
|
+
* @function
|
|
214
|
+
*
|
|
207
215
|
* Allows checking for an update, downloading it and installing it, all with a single call.
|
|
208
216
|
*
|
|
209
217
|
* Unless you need custom UI and/or behavior, we recommend most developers to use this method when integrating CodePush into their apps, if they are not using the `withCodePush` HOC.
|
|
@@ -228,25 +236,29 @@ export const sync = (() => {
|
|
|
228
236
|
downloadProgressCallback?: DownloadProgressCallback,
|
|
229
237
|
handleBinaryVersionMismatchCallback?: HandleBinaryVersionMismatchCallback,
|
|
230
238
|
): Promise<SyncStatus> => {
|
|
231
|
-
|
|
232
|
-
let downloadProgressCallbackWithTryCatch: DownloadProgressCallback | undefined;
|
|
239
|
+
log(LogLevel.DEBUG, `sync start`);
|
|
233
240
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
};
|
|
242
|
-
}
|
|
241
|
+
let syncStatusCallbackWithTryCatch: SyncStatusChangedCallback = (status) => {
|
|
242
|
+
log(LogLevel.DEBUG, `sync status ${SyncStatus[status]}`);
|
|
243
|
+
|
|
244
|
+
if (typeof syncStatusChangedCallback !== 'function') {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
243
247
|
|
|
248
|
+
try {
|
|
249
|
+
syncStatusChangedCallback(status);
|
|
250
|
+
} catch (error) {
|
|
251
|
+
log(LogLevel.ERROR, `An error has occurred : ${error instanceof Error ? error.stack : 'unknown'}`);
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
let downloadProgressCallbackWithTryCatch: DownloadProgressCallback | undefined;
|
|
244
256
|
if (typeof downloadProgressCallback === 'function') {
|
|
245
257
|
downloadProgressCallbackWithTryCatch = (...args) => {
|
|
246
258
|
try {
|
|
247
259
|
downloadProgressCallback(...args);
|
|
248
260
|
} catch (error) {
|
|
249
|
-
log(`An error has occurred: ${error instanceof Error ? error.stack : 'unknown'}`);
|
|
261
|
+
log(LogLevel.ERROR, `An error has occurred: ${error instanceof Error ? error.stack : 'unknown'}`);
|
|
250
262
|
}
|
|
251
263
|
};
|
|
252
264
|
}
|
|
@@ -254,7 +266,7 @@ export const sync = (() => {
|
|
|
254
266
|
if (syncInProgress) {
|
|
255
267
|
typeof syncStatusCallbackWithTryCatch === 'function'
|
|
256
268
|
? syncStatusCallbackWithTryCatch(SyncStatus.SYNC_IN_PROGRESS)
|
|
257
|
-
: log('Sync already in progress.');
|
|
269
|
+
: log(LogLevel.WARN, 'Sync already in progress.');
|
|
258
270
|
return Promise.resolve(SyncStatus.SYNC_IN_PROGRESS);
|
|
259
271
|
}
|
|
260
272
|
|
package/src/telemetry.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NativeRNAppZungCodePushModule } from './internals/NativeRNAppZungCodePushModule';
|
|
2
|
+
import { reloadCachedConfiguration } from './internals/getConfiguration';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Controls telemetry reporting.
|
|
6
|
+
*
|
|
7
|
+
* @param enabled - When false, updates on this device will stop appearing as failed, pending or succeeded in analytics.
|
|
8
|
+
*/
|
|
9
|
+
export async function setTelemetryEnabled(enabled: boolean): Promise<void> {
|
|
10
|
+
await NativeRNAppZungCodePushModule.setTelemetryEnabled(enabled);
|
|
11
|
+
await reloadCachedConfiguration();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Gets the current telemetry enabled status.
|
|
16
|
+
*
|
|
17
|
+
* When setTelemetryEnabled has never been enabled, returns the default value set in your configuration.
|
|
18
|
+
*/
|
|
19
|
+
export function getTelemetryEnabled(): Promise<boolean> {
|
|
20
|
+
return NativeRNAppZungCodePushModule.getTelemetryEnabled();
|
|
21
|
+
}
|