From 37513dee29bbf94cc0c755b96a87e1a7ecc6a7a2 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Fri, 17 Mar 2023 12:59:57 -0400 Subject: [PATCH] Remove direct dependency on 'abort-controller' package (#7366) Signed-off-by: Sebastian Malton --- package-lock.json | 2 -- packages/core/package.json | 1 - packages/core/src/common/fetch/timeout-controller.ts | 4 +++- packages/core/src/common/k8s-api/__tests__/kube-api.test.ts | 1 - packages/core/src/common/k8s-api/kube-api.ts | 1 - packages/core/src/common/k8s-api/kube-object.store.ts | 1 - packages/core/src/main/k8s-request.injectable.ts | 4 ++-- packages/core/src/renderer/kube-watch-api/kube-watch-api.ts | 1 - packages/open-lens/package.json | 1 - packages/utility-features/utilities/src/abort-controller.ts | 2 -- packages/utility-features/utilities/src/delay.ts | 2 -- packages/utility-features/utilities/src/reject-promise.ts | 2 -- 12 files changed, 5 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b313d03d2..dc05949860 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34401,7 +34401,6 @@ "@sentry/electron": "^3.0.8", "@sentry/integrations": "^6.19.3", "@side/jest-runtime": "^1.1.0", - "abort-controller": "^3.0.0", "auto-bind": "^4.0.0", "await-lock": "^2.2.2", "byline": "^5.0.0", @@ -36702,7 +36701,6 @@ "@types/webpack-dev-server": "^4.7.2", "@types/webpack-env": "^1.18.0", "@types/webpack-node-externals": "2.5.3", - "abort-controller": "^3.0.0", "autoprefixer": "^10.4.13", "circular-dependency-plugin": "^5.2.2", "concurrently": "^7.6.0", diff --git a/packages/core/package.json b/packages/core/package.json index bf304a4c13..deceb2161c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -134,7 +134,6 @@ "@sentry/electron": "^3.0.8", "@sentry/integrations": "^6.19.3", "@side/jest-runtime": "^1.1.0", - "abort-controller": "^3.0.0", "auto-bind": "^4.0.0", "await-lock": "^2.2.2", "byline": "^5.0.0", diff --git a/packages/core/src/common/fetch/timeout-controller.ts b/packages/core/src/common/fetch/timeout-controller.ts index 702becdc9d..c4688218db 100644 --- a/packages/core/src/common/fetch/timeout-controller.ts +++ b/packages/core/src/common/fetch/timeout-controller.ts @@ -3,13 +3,15 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ +import { formatDuration } from "@k8slens/utilities"; + /** * Creates an AbortController with an associated timeout * @param timeout The number of milliseconds before this controller will auto abort */ export function withTimeout(timeout: number): AbortController { const controller = new AbortController(); - const id = setTimeout(() => controller.abort(), timeout); + const id = setTimeout(() => controller.abort(`Operation timed out: timeout ${formatDuration(timeout)}`), timeout); controller.signal.addEventListener("abort", () => clearTimeout(id)); diff --git a/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts b/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts index 2b3978c0eb..eaa355d0e0 100644 --- a/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts +++ b/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts @@ -19,7 +19,6 @@ import { flushPromises } from "@k8slens/test-utils"; import createKubeJsonApiInjectable from "../create-kube-json-api.injectable"; import type { IKubeWatchEvent } from "../kube-watch-event"; import type { KubeJsonApiDataFor } from "../kube-object"; -import AbortController from "abort-controller"; import setupAutoRegistrationInjectable from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable"; import { createMockResponseFromStream, createMockResponseFromString } from "../../../test-utils/mock-responses"; import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable"; diff --git a/packages/core/src/common/k8s-api/kube-api.ts b/packages/core/src/common/k8s-api/kube-api.ts index 95210478a1..f34ef6bdbb 100644 --- a/packages/core/src/common/k8s-api/kube-api.ts +++ b/packages/core/src/common/k8s-api/kube-api.ts @@ -20,7 +20,6 @@ import type { Patch } from "rfc6902"; import assert from "assert"; import type { PartialDeep } from "type-fest"; import type { Logger } from "../logger"; -import type AbortController from "abort-controller"; import { matches } from "lodash/fp"; import { makeObservable, observable } from "mobx"; diff --git a/packages/core/src/common/k8s-api/kube-object.store.ts b/packages/core/src/common/k8s-api/kube-object.store.ts index f26b05283e..09b26d4142 100644 --- a/packages/core/src/common/k8s-api/kube-object.store.ts +++ b/packages/core/src/common/k8s-api/kube-object.store.ts @@ -17,7 +17,6 @@ import type { Patch } from "rfc6902"; import type { Logger } from "../logger"; import assert from "assert"; import type { PartialDeep } from "type-fest"; -import AbortController from "abort-controller"; import type { ClusterContext } from "../../renderer/cluster-frame-context/cluster-frame-context"; import autoBind from "auto-bind"; diff --git a/packages/core/src/main/k8s-request.injectable.ts b/packages/core/src/main/k8s-request.injectable.ts index 70ca3c3b6e..efa9df1fe7 100644 --- a/packages/core/src/main/k8s-request.injectable.ts +++ b/packages/core/src/main/k8s-request.injectable.ts @@ -34,8 +34,8 @@ const k8sRequestInjectable = getInjectable({ ) => { const controller = timeout ? withTimeout(timeout) : undefined; - if (controller) { - signal?.addEventListener("abort", () => controller.abort()); + if (controller && signal) { + signal.addEventListener("abort", () => controller.abort()); } const response = await lensFetch(`/${cluster.id}${pathnameAndQuery}`, { diff --git a/packages/core/src/renderer/kube-watch-api/kube-watch-api.ts b/packages/core/src/renderer/kube-watch-api/kube-watch-api.ts index f3dc0ae237..cf6e6486e8 100644 --- a/packages/core/src/renderer/kube-watch-api/kube-watch-api.ts +++ b/packages/core/src/renderer/kube-watch-api/kube-watch-api.ts @@ -8,7 +8,6 @@ import { disposer, getOrInsert, noop, WrappedAbortController } from "@k8slens/ut import { once } from "lodash"; import type { Logger } from "../../common/logger"; import type { KubeObjectStoreLoadAllParams, KubeObjectStoreSubscribeParams } from "../../common/k8s-api/kube-object.store"; -import AbortController from "abort-controller"; import type { ClusterContext } from "../cluster-frame-context/cluster-frame-context"; // Kubernetes watch-api client diff --git a/packages/open-lens/package.json b/packages/open-lens/package.json index c6fe1d227a..539f3ecb55 100644 --- a/packages/open-lens/package.json +++ b/packages/open-lens/package.json @@ -241,7 +241,6 @@ "@types/webpack-dev-server": "^4.7.2", "@types/webpack-env": "^1.18.0", "@types/webpack-node-externals": "2.5.3", - "abort-controller": "^3.0.0", "autoprefixer": "^10.4.13", "circular-dependency-plugin": "^5.2.2", "concurrently": "^7.6.0", diff --git a/packages/utility-features/utilities/src/abort-controller.ts b/packages/utility-features/utilities/src/abort-controller.ts index b062fce487..784b495a9e 100644 --- a/packages/utility-features/utilities/src/abort-controller.ts +++ b/packages/utility-features/utilities/src/abort-controller.ts @@ -3,8 +3,6 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import AbortController from "abort-controller"; - /** * This is like an `AbortController` but will also abort if the parent aborts, * but won't make the parent abort if this aborts (single direction) diff --git a/packages/utility-features/utilities/src/delay.ts b/packages/utility-features/utilities/src/delay.ts index 96171f6535..d86395026b 100644 --- a/packages/utility-features/utilities/src/delay.ts +++ b/packages/utility-features/utilities/src/delay.ts @@ -3,8 +3,6 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type AbortController from "abort-controller"; - /** * Return a promise that will be resolved after at least `timeout` ms have * passed. If `failFast` is provided then the promise is also resolved if it has diff --git a/packages/utility-features/utilities/src/reject-promise.ts b/packages/utility-features/utilities/src/reject-promise.ts index 8212bacd3f..0211586783 100644 --- a/packages/utility-features/utilities/src/reject-promise.ts +++ b/packages/utility-features/utilities/src/reject-promise.ts @@ -3,8 +3,6 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { AbortSignal } from "abort-controller"; - /** * Creates a new promise that will be rejected when the signal rejects. *