From 4c9ee6257391d342fafe3de5df8dc90bd123fe80 Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 11:34:52 +0000 Subject: [PATCH 1/7] added max retries to bundle handler --- src/framework/handlers/bundle.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/framework/handlers/bundle.js b/src/framework/handlers/bundle.js index 8208f340ee0..bf46c0056e5 100644 --- a/src/framework/handlers/bundle.js +++ b/src/framework/handlers/bundle.js @@ -18,7 +18,7 @@ class BundleHandler extends ResourceHandler { super(app, 'bundle'); this._assets = app.assets; - this.maxRetries = 0; + this._retries = 0; } load(url, callback) { @@ -51,8 +51,15 @@ class BundleHandler extends ResourceHandler { callback(err); }); }).catch((err) => { + this._retries++; Debug.error(err); - callback(err); + if (this._retries < this.maxRetries) { + Debug.error(`Bundle failed to load retrying (attempt ${this._retries}`); + this.load(url, callback); + } else { + callback(err); + } + }); } From 802660d73fbb41f900afd1bc3aaae28de02a2b09 Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 11:36:41 +0000 Subject: [PATCH 2/7] reset retries on callback --- src/framework/handlers/bundle.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/framework/handlers/bundle.js b/src/framework/handlers/bundle.js index bf46c0056e5..cc42191a34b 100644 --- a/src/framework/handlers/bundle.js +++ b/src/framework/handlers/bundle.js @@ -48,15 +48,17 @@ class BundleHandler extends ResourceHandler { untar.on('error', (err) => { Debug.error(err); + this._retries = 0; callback(err); }); }).catch((err) => { this._retries++; - Debug.error(err); if (this._retries < this.maxRetries) { Debug.error(`Bundle failed to load retrying (attempt ${this._retries}`); this.load(url, callback); } else { + Debug.error(err); + this._retries = 0; callback(err); } From f7f3f50464d96ce2fb544f1baf04f8da2b73d452 Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 11:59:00 +0000 Subject: [PATCH 3/7] extracted fetchRetries into separate function --- src/framework/handlers/bundle.js | 37 ++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/framework/handlers/bundle.js b/src/framework/handlers/bundle.js index cc42191a34b..7c77f36910d 100644 --- a/src/framework/handlers/bundle.js +++ b/src/framework/handlers/bundle.js @@ -18,7 +18,25 @@ class BundleHandler extends ResourceHandler { super(app, 'bundle'); this._assets = app.assets; - this._retries = 0; + } + + _fetchRetries(url, options, retries = 0) { + return new Promise((resolve, reject) => { + while (true) { + try { + resolve(fetch(url, options)); + return; + } catch (e) { + retries++; + if (retries < this.maxRetries) { + Debug.error(`Bundle failed to load retrying (attempt ${retries}`); + } else { + reject(e); + return; + } + } + } + }); } load(url, callback) { @@ -29,10 +47,10 @@ class BundleHandler extends ResourceHandler { }; } - fetch(url.load, { + this._fetchRetries(url.load, { mode: 'cors', credentials: 'include' - }).then((res) => { + }, this.maxRetries).then((res) => { const bundle = new Bundle(); callback(null, bundle); @@ -48,20 +66,11 @@ class BundleHandler extends ResourceHandler { untar.on('error', (err) => { Debug.error(err); - this._retries = 0; callback(err); }); }).catch((err) => { - this._retries++; - if (this._retries < this.maxRetries) { - Debug.error(`Bundle failed to load retrying (attempt ${this._retries}`); - this.load(url, callback); - } else { - Debug.error(err); - this._retries = 0; - callback(err); - } - + Debug.error(err); + callback(err); }); } From aa344ed24f63ce016735aeaa7c231ca3c6b29523 Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 12:16:41 +0000 Subject: [PATCH 4/7] fixed fetch resolving --- src/framework/handlers/bundle.js | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/framework/handlers/bundle.js b/src/framework/handlers/bundle.js index 7c77f36910d..f2fc915dafe 100644 --- a/src/framework/handlers/bundle.js +++ b/src/framework/handlers/bundle.js @@ -20,23 +20,19 @@ class BundleHandler extends ResourceHandler { this._assets = app.assets; } - _fetchRetries(url, options, retries = 0) { - return new Promise((resolve, reject) => { - while (true) { - try { - resolve(fetch(url, options)); - return; - } catch (e) { - retries++; - if (retries < this.maxRetries) { - Debug.error(`Bundle failed to load retrying (attempt ${retries}`); - } else { - reject(e); - return; - } + async _fetchRetries(url, options, retries = 0) { + while (true) { + try { + return await fetch(url, options); + } catch (e) { + retries++; + if (retries < this.maxRetries) { + Debug.error(`Bundle failed to load retrying (attempt ${retries}`); + } else { + throw e; } } - }); + } } load(url, callback) { From 37f200437517baa0de02b3b7545d237a87dafe80 Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 12:23:41 +0000 Subject: [PATCH 5/7] added thumbnails for bundle example --- examples/thumbnails/loaders_bundle_large.webp | Bin 0 -> 2612 bytes examples/thumbnails/loaders_bundle_small.webp | Bin 0 -> 548 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/thumbnails/loaders_bundle_large.webp create mode 100644 examples/thumbnails/loaders_bundle_small.webp diff --git a/examples/thumbnails/loaders_bundle_large.webp b/examples/thumbnails/loaders_bundle_large.webp new file mode 100644 index 0000000000000000000000000000000000000000..f99f86ffc6945761bc604224386515e5ff65a2ed GIT binary patch literal 2612 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 literal 0 HcmV?d00001 From e95408195a98513a705306a831c21e5bcfbd0a8a Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 12:29:57 +0000 Subject: [PATCH 6/7] rewrote fetch retries without await inside loop --- src/framework/handlers/bundle.js | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/framework/handlers/bundle.js b/src/framework/handlers/bundle.js index f2fc915dafe..a3c52d4284f 100644 --- a/src/framework/handlers/bundle.js +++ b/src/framework/handlers/bundle.js @@ -20,19 +20,21 @@ class BundleHandler extends ResourceHandler { this._assets = app.assets; } - async _fetchRetries(url, options, retries = 0) { - while (true) { - try { - return await fetch(url, options); - } catch (e) { - retries++; - if (retries < this.maxRetries) { - Debug.error(`Bundle failed to load retrying (attempt ${retries}`); - } else { - throw e; - } - } - } + _fetchRetries(url, options, retries = 0) { + return new Promise((resolve, reject) => { + const tryFetch = () => { + fetch(url, options).then(resolve).catch((err) => { + retries++; + if (retries < this.maxRetries) { + Debug.error(`Bundle failed to load retrying (attempt ${retries}`); + tryFetch(); + } else { + reject(err); + } + }); + }; + tryFetch(); + }); } load(url, callback) { From 973f64468ee8120a62d88b7bbeafce2df168f17f Mon Sep 17 00:00:00 2001 From: kpal Date: Thu, 7 Mar 2024 15:53:28 +0000 Subject: [PATCH 7/7] removed images from PR --- examples/thumbnails/loaders_bundle_large.webp | Bin 2612 -> 0 bytes examples/thumbnails/loaders_bundle_small.webp | Bin 548 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/thumbnails/loaders_bundle_large.webp delete mode 100644 examples/thumbnails/loaders_bundle_small.webp diff --git a/examples/thumbnails/loaders_bundle_large.webp b/examples/thumbnails/loaders_bundle_large.webp deleted file mode 100644 index f99f86ffc6945761bc604224386515e5ff65a2ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2612 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