fix(core): Update dependencies and fix service worker cache manager and task manager functionalities

This commit is contained in:
2024-08-27 11:22:13 +02:00
parent 511de8040a
commit d7a9b26873
9 changed files with 748 additions and 668 deletions

View File

@@ -75,12 +75,14 @@ export class CacheManager {
// A list of local resources we always want to be cached.
this.losslessServiceWorkerRef.serviceWindowRef.addEventListener('fetch', async (fetchEventArg: any) => {
// Lets block scopes we don't want to be passing through the serviceworker
const parsedUrl = new URL(fetchEventArg.request.url)
const originalRequest: Request = fetchEventArg.request;
const parsedUrl = new URL(originalRequest.url);
if (
parsedUrl.hostname.includes('paddle.com')
|| parsedUrl.hostname.includes('paypal.com')
|| parsedUrl.hostname.includes('reception.lossless.one')
|| parsedUrl.pathname.startsWith('/socket.io')
|| originalRequest.url.startsWith('https://umami.')
) {
logger.log('note',`serviceworker not active for ${parsedUrl.toString()}`);
return;
@@ -89,16 +91,15 @@ export class CacheManager {
// lets continue for the rest
const done = plugins.smartpromise.defer<Response>();
fetchEventArg.respondWith(done.promise);
const originalRequest: Request = fetchEventArg.request;
if (
(originalRequest.method === 'GET' &&
(originalRequest.url.startsWith(this.losslessServiceWorkerRef.serviceWindowRef.location.origin) &&
!originalRequest.url.includes('/api/') &&
!originalRequest.url.includes('smartserve/reloadcheck'))) ||
originalRequest.url.includes('https://assetbroker.lossless.one/public') ||
originalRequest.url.includes('https://assetbroker.lossless.one/brandfiles') ||
originalRequest.url.includes('https://assetbroker.lossless.one/websites') ||
originalRequest.url.includes('https://assetbroker.') ||
originalRequest.url.includes('https://assetbroker.') ||
originalRequest.url.includes('https://assetbroker.') ||
originalRequest.url.includes('https://unpkg.com') ||
originalRequest.url.includes('https://fonts.googleapis.com') ||
originalRequest.url.includes('https://fonts.gstatic.com')

View File

@@ -7,9 +7,18 @@ import { ServiceWorker } from './classes.serviceworker.js';
*/
export class TaskManager {
public serviceworkerRef: ServiceWorker;
public taskmanager = new plugins.taskbuffer.TaskManager();
constructor(serviceWorkerRefArg: ServiceWorker) {
this.serviceworkerRef = serviceWorkerRefArg;
this.taskmanager.start();
}
public updateTask = new plugins.taskbuffer.Task({
name: 'updateTask',
taskFunction: async () => {
await this.serviceworkerRef.cacheManager.cleanCaches('a new app version has been communicated by the server.');
}
})
}