diff --git a/packages/workbox-core/src/_private.ts b/packages/workbox-core/src/_private.ts index 4721f190d..455b7cd08 100644 --- a/packages/workbox-core/src/_private.ts +++ b/packages/workbox-core/src/_private.ts @@ -7,7 +7,6 @@ */ // We either expose defaults or we expose every named export. -import {allSettled} from './_private/allSettled.js'; import {assert} from './_private/assert.js'; import {cacheNames} from './_private/cacheNames.js'; import {cacheMatchIgnoreParams} from './_private/cacheMatchIgnoreParams.js'; @@ -26,7 +25,6 @@ import {WorkboxError} from './_private/WorkboxError.js'; import './_version.js'; export { - allSettled, assert, cacheMatchIgnoreParams, cacheNames, diff --git a/packages/workbox-core/src/_private/allSettled.ts b/packages/workbox-core/src/_private/allSettled.ts deleted file mode 100644 index 29ee7e7b8..000000000 --- a/packages/workbox-core/src/_private/allSettled.ts +++ /dev/null @@ -1,46 +0,0 @@ -import '../_version.js'; - -export interface PromiseResolution { - status: 'fulfilled'; - value: T; -} - -export interface PromiseRejection { - status: 'rejected'; - reason: unknown; -} - -export type PromiseResult = PromiseResolution | PromiseRejection; - -/** - * Promise.allSettled polyfill based on - * - * https://github.com/es-shims/Promise.allSettled/blob/main/implementation.js - * - * which is (c) 2019 Jordan Harband and used under the terms of the MIT license. - * - * @private - */ -function allSettled( - iterable: Iterable>, -): Promise[]> { - const values = Array.from(iterable); - return Promise.all( - values.map(function (item) { - const onFulfill = function (value: T) { - return {status: 'fulfilled' as const, value: value}; - }; - const onReject = function (reason: unknown) { - return {status: 'rejected' as const, reason: reason}; - }; - const itemPromise = Promise.resolve(item); - try { - return itemPromise.then(onFulfill, onReject); - } catch (e) { - return Promise.reject(e); - } - }), - ); -} - -export {allSettled}; diff --git a/packages/workbox-strategies/src/StrategyHandler.ts b/packages/workbox-strategies/src/StrategyHandler.ts index 6c1d7864d..56c60bcae 100644 --- a/packages/workbox-strategies/src/StrategyHandler.ts +++ b/packages/workbox-strategies/src/StrategyHandler.ts @@ -6,10 +6,6 @@ https://opensource.org/licenses/MIT. */ -import { - allSettled, - PromiseRejection, -} from 'workbox-core/_private/allSettled.js'; import {assert} from 'workbox-core/_private/assert.js'; import {cacheMatchIgnoreParams} from 'workbox-core/_private/cacheMatchIgnoreParams.js'; import {Deferred} from 'workbox-core/_private/Deferred.js'; @@ -566,10 +562,10 @@ class StrategyHandler { async doneWaiting(): Promise { while (this._extendLifetimePromises.length) { const promises = this._extendLifetimePromises.splice(0); - const result = await allSettled(promises); + const result = await Promise.allSettled(promises); const firstRejection = result.find((i) => i.status === 'rejected'); if (firstRejection) { - throw (firstRejection as PromiseRejection).reason; + throw (firstRejection as PromiseRejectedResult).reason; } } } diff --git a/tsconfig.json b/tsconfig.json index 9ca662e37..37bf717ed 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "composite": true, "declaration": true, - "lib": ["es2017", "webworker"], + "lib": ["es2020", "webworker"], "module": "esnext", "moduleResolution": "node", "noFallthroughCasesInSwitch": true,