diff --git a/service_worker_api/service_worker_api-test.ts b/service_worker_api/service_worker_api-test.ts index e144880ba1..0d39cc509b 100644 --- a/service_worker_api/service_worker_api-test.ts +++ b/service_worker_api/service_worker_api-test.ts @@ -19,13 +19,11 @@ self.addEventListener('fetch', function(event: FetchEvent) { }); self.caches.open('v1').then(function(cache: Cache) { - cache.matchAll('/images/').then(function(response: Array) { + cache.matchAll('/images/').then(function(response: Array) { response.forEach(function(element, index, array) { - cache.delete(element); - + cache.delete(element.url); }); }); - }); self.addEventListener('install', function(event: InstallEvent) { @@ -56,7 +54,11 @@ self.addEventListener('install', function(event: InstallEvent) { }); self.addEventListener('fetch', function(event: FetchEvent) { - var cachedResponse = self.caches.match(event.request).catch(function() { + var cachedResponse = self.caches.match(event.request).then(function(response: Response) { + if (response) { + return response; + } + }).catch(function() { return self.fetch(event.request).then(function(response: Response) { return self.caches.open('v1').then(function(cache) { cache.put(event.request, response.clone()); @@ -71,8 +73,8 @@ self.addEventListener('fetch', function(event: FetchEvent) { }); self.caches.open('v1').then(function(cache) { - cache.match('/images/image.png').then(function(response) { - cache.delete(response); + cache.match('/images/image.png').then(function(response: Response) { + cache.delete(response.url); }); }); @@ -185,4 +187,4 @@ self.addEventListener('notificationclick', function(event: NotificationEvent) { if (self.clients.openWindow) return self.clients.openWindow('/'); })); -}); \ No newline at end of file +}); diff --git a/service_worker_api/service_worker_api.d.ts b/service_worker_api/service_worker_api.d.ts index 77c80b6706..6084efc4a0 100644 --- a/service_worker_api/service_worker_api.d.ts +++ b/service_worker_api/service_worker_api.d.ts @@ -3,7 +3,8 @@ // Definitions by: Tristan Caron // Definitions: https://github.com/borisyankov/DefinitelyTyped -/// +// // REMOVED third "/" so this doesn't fire. Problem with duplicate Promises +// between es6 and typescript - https://github.com/DefinitelyTyped/DefinitelyTyped/issues/5015 /** * Provides methods relating to the body of the response/request, allowing you @@ -279,16 +280,16 @@ interface Cache { * @param request The Request you are attempting to find in the Cache. * @param {CacheOptions} options */ - match(request: Request | string, options?: CacheOptions): Promise; + match(request: Request | string, options?: CacheOptions): Promise; /** - * Returns a Promise that resolves to an array of all matching requests in + * Returns a Promise that resolves to an array of all matching responses in * the Cache object. * * @param request The Request you are attempting to find in the Cache. * @param {CacheOptions} options */ - matchAll(request: Request | string, options?: CacheOptions): Promise>; + matchAll(request: Request | string, options?: CacheOptions): Promise>; /** * Returns a Promise that resolves to a new Cache entry whose key @@ -893,4 +894,4 @@ interface Window extends ServiceWorkerGlobalScope { interface NotificationEvent extends Event, ExtendableEvent { notification: any; -} \ No newline at end of file +}