Skip to content

Commit 42d42e4

Browse files
Download error: Error: Could not access local package. Error: The request timed out. #24
1 parent 32a6ef8 commit 42d42e4

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

src/TNSRemotePackage.ts

+33-21
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,41 @@ export class TNSRemotePackage implements IRemotePackage {
1616
serverUrl: string;
1717

1818
download(downloadSuccess: SuccessCallback<ILocalPackage>, downloadError?: ErrorCallback, downloadProgress?: SuccessCallback<DownloadProgress>): void {
19-
getFile(this.downloadUrl).then(
20-
(file: File) => {
21-
let tnsLocalPackage: ILocalPackage = new TNSLocalPackage();
22-
tnsLocalPackage.localPath = file.path;
23-
tnsLocalPackage.deploymentKey = this.deploymentKey;
24-
tnsLocalPackage.description = this.description;
25-
tnsLocalPackage.label = this.label;
26-
tnsLocalPackage.appVersion = this.appVersion;
27-
tnsLocalPackage.isMandatory = this.isMandatory;
28-
tnsLocalPackage.packageHash = this.packageHash;
29-
tnsLocalPackage.isFirstRun = false;
30-
// TODO (low prio) for failedInstall, see https://github.com/Microsoft/cordova-plugin-code-push/blob/055d9e625d47d56e707d9624c9a14a37736516bb/www/remotePackage.ts#L55 (but prolly not too relevant)
31-
tnsLocalPackage.failedInstall = false;
32-
tnsLocalPackage.serverUrl = this.serverUrl;
19+
const onDownloadSuccess = (file: File) => {
20+
let tnsLocalPackage: ILocalPackage = new TNSLocalPackage();
21+
tnsLocalPackage.localPath = file.path;
22+
tnsLocalPackage.deploymentKey = this.deploymentKey;
23+
tnsLocalPackage.description = this.description;
24+
tnsLocalPackage.label = this.label;
25+
tnsLocalPackage.appVersion = this.appVersion;
26+
tnsLocalPackage.isMandatory = this.isMandatory;
27+
tnsLocalPackage.packageHash = this.packageHash;
28+
tnsLocalPackage.isFirstRun = false;
29+
// TODO (low prio) for failedInstall, see https://github.com/Microsoft/cordova-plugin-code-push/blob/055d9e625d47d56e707d9624c9a14a37736516bb/www/remotePackage.ts#L55 (but prolly not too relevant)
30+
tnsLocalPackage.failedInstall = false;
31+
tnsLocalPackage.serverUrl = this.serverUrl;
3332

34-
downloadSuccess(tnsLocalPackage);
33+
downloadSuccess(tnsLocalPackage);
3534

36-
new TNSAcquisitionManager(this.deploymentKey, this.serverUrl).reportStatusDownload(tnsLocalPackage);
37-
},
38-
(e: any) => {
39-
downloadError(new Error("Could not access local package. " + e));
40-
}
41-
);
35+
new TNSAcquisitionManager(this.deploymentKey, this.serverUrl).reportStatusDownload(tnsLocalPackage);
36+
};
37+
38+
// download, with a silly but effective retry mechanism
39+
getFile(this.downloadUrl)
40+
.then(onDownloadSuccess)
41+
.catch(() => {
42+
setTimeout(() => {
43+
getFile(this.downloadUrl)
44+
.then(onDownloadSuccess)
45+
.catch(() => {
46+
setTimeout(() => {
47+
getFile(this.downloadUrl)
48+
.then(onDownloadSuccess)
49+
.catch((e: any) => downloadError(new Error("Could not download remote package. " + e)));
50+
}, 3000);
51+
});
52+
}, 3000);
53+
});
4254
}
4355

4456
abortDownload(abortSuccess?: SuccessCallback<void>, abortError?: ErrorCallback): void {

0 commit comments

Comments
 (0)