From 2cd5e129f1baf7a5958723b8ea4cb400ef8ee544 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Fri, 20 Nov 2020 07:51:42 +0300 Subject: [PATCH] Revert "Use @typescript-eslint/semi." This reverts commit 890fa5dd9e238dd173e7069c5b4a35e5c4967524. --- .eslintrc.js | 6 ++-- build/download_kubectl.ts | 6 ++-- src/common/event-bus.ts | 2 +- src/common/rbac.ts | 2 +- src/common/user-store.ts | 6 ++-- src/common/workspace-store.ts | 14 ++++---- src/extensions/cluster-feature.ts | 2 +- src/extensions/extension-loader.ts | 2 +- src/extensions/extension-manager.ts | 8 ++--- src/extensions/extension-store.ts | 2 +- src/extensions/lens-main-extension.ts | 2 +- src/extensions/lens-renderer-extension.ts | 20 +++++------ .../renderer-api/kube-object-status.ts | 2 +- src/main/app-updater.ts | 2 +- .../base-cluster-detector.ts | 6 ++-- .../cluster-detectors/cluster-id-detector.ts | 2 +- .../distribution-detector.ts | 4 +-- .../cluster-detectors/last-seen-detector.ts | 2 +- .../cluster-detectors/nodes-count-detector.ts | 2 +- .../cluster-detectors/version-detector.ts | 4 +-- src/main/cluster.ts | 4 +-- src/main/context-handler.ts | 8 ++--- src/main/helm/helm-chart-manager.ts | 6 ++-- src/main/helm/helm-repo-manager.ts | 8 ++--- src/main/kube-auth-proxy.ts | 12 +++---- src/main/kubeconfig-manager.ts | 2 +- src/main/kubectl.ts | 14 ++++---- src/main/lens-binary.ts | 22 ++++++------ src/main/lens-proxy.ts | 10 +++--- src/main/menu.ts | 2 +- src/main/node-shell-session.ts | 4 +-- src/main/port_spec.ts | 8 ++--- src/main/prometheus/helm.ts | 6 ++-- src/main/prometheus/lens.ts | 6 ++-- src/main/prometheus/operator.ts | 6 ++-- src/main/prometheus/provider-registry.ts | 18 +++++----- src/main/prometheus/stacklight.ts | 6 ++-- src/main/routes/metrics-route.ts | 2 +- src/main/routes/port-forward-route.ts | 18 +++++----- src/main/routes/watch-route.ts | 12 +++---- src/main/shell-session.ts | 8 ++--- .../api/endpoints/cluster-role-binding.api.ts | 6 ++-- .../api/endpoints/cluster-role.api.ts | 6 ++-- src/renderer/api/endpoints/cluster.api.ts | 10 +++--- .../api/endpoints/component-status.api.ts | 8 ++--- src/renderer/api/endpoints/configmap.api.ts | 4 +-- src/renderer/api/endpoints/crd.api.ts | 12 +++---- src/renderer/api/endpoints/cron-job.api.ts | 16 ++++----- src/renderer/api/endpoints/daemon-set.api.ts | 10 +++--- src/renderer/api/endpoints/deployment.api.ts | 10 +++--- src/renderer/api/endpoints/endpoint.api.ts | 8 ++--- src/renderer/api/endpoints/events.api.ts | 28 +++++++-------- src/renderer/api/endpoints/helm-charts.api.ts | 34 +++++++++---------- .../api/endpoints/helm-releases.api.ts | 14 ++++---- src/renderer/api/endpoints/hpa.api.ts | 8 ++--- src/renderer/api/endpoints/ingress.api.ts | 10 +++--- src/renderer/api/endpoints/job.api.ts | 10 +++--- src/renderer/api/endpoints/namespaces.api.ts | 2 +- .../api/endpoints/network-policy.api.ts | 8 ++--- src/renderer/api/endpoints/nodes.api.ts | 10 +++--- .../endpoints/persistent-volume-claims.api.ts | 10 +++--- .../api/endpoints/persistent-volume.api.ts | 10 +++--- src/renderer/api/endpoints/pod-metrics.api.ts | 12 +++---- .../api/endpoints/poddisruptionbudget.api.ts | 4 +-- src/renderer/api/endpoints/pods.api.ts | 10 +++--- .../api/endpoints/podsecuritypolicy.api.ts | 8 ++--- src/renderer/api/endpoints/replica-set.api.ts | 10 +++--- .../api/endpoints/resource-quota.api.ts | 10 +++--- .../api/endpoints/role-binding.api.ts | 10 +++--- src/renderer/api/endpoints/role.api.ts | 8 ++--- src/renderer/api/endpoints/secret.api.ts | 8 ++--- .../endpoints/selfsubjectrulesreviews.api.ts | 10 +++--- .../api/endpoints/service-accounts.api.ts | 6 ++-- src/renderer/api/endpoints/service.api.ts | 10 +++--- .../api/endpoints/stateful-set.api.ts | 10 +++--- .../api/endpoints/storage-class.api.ts | 8 ++--- src/renderer/api/kube-api.ts | 14 ++++---- src/renderer/api/kube-object.ts | 4 +-- src/renderer/api/terminal-api.ts | 2 +- src/renderer/bootstrap.tsx | 2 +- .../components/+add-cluster/add-cluster.tsx | 16 ++++----- .../+apps-helm-charts/helm-charts.tsx | 4 +-- .../+apps-releases/release-details.tsx | 4 +-- .../release-rollback-dialog.tsx | 4 +-- .../components/+apps-releases/releases.tsx | 4 +-- .../+cluster-settings/cluster-settings.tsx | 2 +- .../components/cluster-home-dir-setting.tsx | 2 +- .../components/cluster-name-setting.tsx | 2 +- .../components/cluster-prometheus-setting.tsx | 4 +-- .../components/cluster-proxy-setting.tsx | 2 +- .../components/+cluster/cluster.store.ts | 2 +- .../+config-autoscalers/hpa.store.ts | 2 +- .../+config-maps/config-map-details.tsx | 2 +- .../+config-maps/config-maps.store.ts | 2 +- .../pod-disruption-budgets.store.ts | 2 +- .../add-quota-dialog.tsx | 12 +++---- .../resource-quotas.store.ts | 2 +- .../+config-secrets/add-secret-dialog.tsx | 14 ++++---- .../+config-secrets/secret-details.tsx | 4 +-- .../+config-secrets/secrets.store.ts | 2 +- .../components/+custom-resources/crd.store.ts | 2 +- .../components/+events/event.store.ts | 4 +-- .../components/+extensions/extensions.tsx | 2 +- .../+namespaces/add-namespace-dialog.tsx | 4 +-- .../+namespaces/namespace-select.tsx | 2 +- .../+network-endpoints/endpoints.store.ts | 2 +- .../+network-policies/network-policy.store.ts | 2 +- .../+network-services/services.store.ts | 2 +- src/renderer/components/+nodes/nodes.store.ts | 2 +- .../pod-security-policies.store.ts | 2 +- .../components/+preferences/preferences.tsx | 4 +-- .../+storage-classes/storage-class.store.ts | 2 +- .../volume-claim.store.ts | 2 +- .../+storage-volumes/volumes.store.ts | 2 +- .../add-role-binding-dialog.tsx | 8 ++--- .../role-bindings.store.ts | 2 +- .../add-role-dialog.tsx | 6 ++-- .../+user-management-roles/roles.store.ts | 2 +- .../create-service-account-dialog.tsx | 8 ++--- .../service-accounts-details.tsx | 2 +- .../service-accounts-secret.tsx | 2 +- .../service-accounts.store.ts | 2 +- .../components/+whats-new/whats-new.tsx | 2 +- .../cronjob-trigger-dialog.tsx | 8 ++--- .../+workloads-cronjobs/cronjob.store.ts | 2 +- .../+workloads-daemonsets/daemonsets.store.ts | 2 +- .../deployment-scale-dialog.tsx | 12 +++---- .../deployments.store.ts | 2 +- .../components/+workloads-jobs/job.store.ts | 2 +- .../overview-workload-status.tsx | 2 +- .../+workloads-pods/pod-details-list.tsx | 4 +-- .../replicasets.store.ts | 2 +- .../+workloads-replicasets/replicasets.tsx | 2 +- .../statefulset.store.ts | 2 +- .../components/+workspaces/workspaces.tsx | 12 +++---- src/renderer/components/chart/chart.tsx | 6 ++-- .../components/chart/useRealTimeMetrics.ts | 2 +- .../cluster-manager/cluster-status.tsx | 4 +-- .../cluster-manager/clusters-menu.tsx | 6 ++-- .../confirm-dialog/confirm-dialog.tsx | 6 ++-- src/renderer/components/dialog/dialog.tsx | 12 +++---- .../components/dialog/logs-dialog.tsx | 2 +- .../components/dock/create-resource.tsx | 6 ++-- src/renderer/components/dock/dock.tsx | 4 +-- .../components/dock/edit-resource.tsx | 4 +-- src/renderer/components/dock/editor-panel.tsx | 10 +++--- src/renderer/components/dock/info-panel.tsx | 8 ++--- .../components/dock/install-chart.tsx | 2 +- .../components/dock/pod-logs.store.ts | 6 ++-- src/renderer/components/dock/pod-logs.tsx | 12 +++---- src/renderer/components/dock/terminal.ts | 18 +++++----- .../components/dock/upgrade-chart.tsx | 6 ++-- .../drawer/drawer-param-toggler.tsx | 4 +-- src/renderer/components/drawer/drawer.tsx | 18 +++++----- .../error-boundary/error-boundary.tsx | 4 +-- src/renderer/components/input/file-input.tsx | 4 +-- src/renderer/components/input/input.tsx | 4 +-- .../components/input/search-input-url.tsx | 10 +++--- .../components/input/search-input.tsx | 6 ++-- .../item-object-list/item-list-layout.tsx | 2 +- .../item-object-list/page-filters-list.tsx | 6 ++-- .../item-object-list/page-filters-select.tsx | 6 ++-- .../kube-object/kube-object-details.tsx | 2 +- .../kube-object/kube-object-list-layout.tsx | 2 +- .../kubeconfig-dialog/kubeconfig-dialog.tsx | 8 ++--- .../components/layout/main-layout.tsx | 4 +-- .../components/layout/page-layout.tsx | 2 +- src/renderer/components/menu/menu-actions.tsx | 2 +- src/renderer/components/radio/radio.tsx | 6 ++-- .../resizing-anchor/resizing-anchor.tsx | 12 +++---- .../resource-metrics/resource-metrics.tsx | 2 +- src/renderer/components/select/select.tsx | 2 +- src/renderer/components/table/table-head.tsx | 2 +- src/renderer/components/table/table.tsx | 4 +-- src/renderer/components/tabs/tabs.tsx | 2 +- .../components/virtual-list/virtual-list.tsx | 6 ++-- src/renderer/components/wizard/wizard.tsx | 8 ++--- src/renderer/i18n.ts | 2 +- src/renderer/utils/createStorage.ts | 2 +- 179 files changed, 555 insertions(+), 557 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index e50982d63a..211d4ee87f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -49,8 +49,7 @@ module.exports = { "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-empty-interface": "off", "indent": ["error", 2], - "semi": "off", - "@typescript-eslint/semi": ["error"], + "semi": ["error", "always"], }, }, { @@ -79,8 +78,7 @@ module.exports = { "@typescript-eslint/ban-types": "off", "@typescript-eslint/no-empty-function": "off", "indent": ["error", 2], - "semi": "off", - "@typescript-eslint/semi": ["error"], + "semi": ["error", "always"], }, } ] diff --git a/build/download_kubectl.ts b/build/download_kubectl.ts index 137588ff58..c3d6621bcb 100644 --- a/build/download_kubectl.ts +++ b/build/download_kubectl.ts @@ -7,10 +7,10 @@ import { ensureDir, pathExists } from "fs-extra"; import path from "path"; class KubectlDownloader { - public kubectlVersion: string; - protected url: string; + public kubectlVersion: string + protected url: string protected path: string; - protected dirname: string; + protected dirname: string constructor(clusterVersion: string, platform: string, arch: string, target: string) { this.kubectlVersion = clusterVersion; diff --git a/src/common/event-bus.ts b/src/common/event-bus.ts index a05a43bcd1..887a839431 100644 --- a/src/common/event-bus.ts +++ b/src/common/event-bus.ts @@ -4,6 +4,6 @@ export type AppEvent = { name: string; action: string; params?: object; -}; +} export const appEventBus = new EventEmitter<[AppEvent]>(); diff --git a/src/common/rbac.ts b/src/common/rbac.ts index 4097de95c9..363a94f3e2 100644 --- a/src/common/rbac.ts +++ b/src/common/rbac.ts @@ -4,7 +4,7 @@ export type KubeResource = "namespaces" | "nodes" | "events" | "resourcequotas" | "services" | "secrets" | "configmaps" | "ingresses" | "networkpolicies" | "persistentvolumes" | "storageclasses" | "pods" | "daemonsets" | "deployments" | "statefulsets" | "replicasets" | "jobs" | "cronjobs" | - "endpoints" | "customresourcedefinitions" | "horizontalpodautoscalers" | "podsecuritypolicies" | "poddisruptionbudgets"; + "endpoints" | "customresourcedefinitions" | "horizontalpodautoscalers" | "podsecuritypolicies" | "poddisruptionbudgets" export interface KubeApiResource { resource: KubeResource; // valid resource name diff --git a/src/common/user-store.ts b/src/common/user-store.ts index c1eba70a43..8e89677df5 100644 --- a/src/common/user-store.ts +++ b/src/common/user-store.ts @@ -31,7 +31,7 @@ export interface UserPreferences { } export class UserStore extends BaseStore { - static readonly defaultTheme: ThemeId = "lens-dark"; + static readonly defaultTheme: ThemeId = "lens-dark" private constructor() { super({ @@ -42,7 +42,7 @@ export class UserStore extends BaseStore { this.handleOnLoad(); } - @observable lastSeenAppVersion = "0.0.0"; + @observable lastSeenAppVersion = "0.0.0" @observable kubeConfigPath = kubeConfigDefaultPath; // used in add-cluster page for providing context @observable seenContexts = observable.set(); @observable newContexts = observable.set(); @@ -113,7 +113,7 @@ export class UserStore extends BaseStore { logger.error(err); this.resetKubeConfigPath(); } - }; + } @action markNewContextsAsSeen() { diff --git a/src/common/workspace-store.ts b/src/common/workspace-store.ts index 75ab36f19e..a56ceddf0b 100644 --- a/src/common/workspace-store.ts +++ b/src/common/workspace-store.ts @@ -27,12 +27,12 @@ export interface WorkspaceState { } export class Workspace implements WorkspaceModel, WorkspaceState { - @observable id: WorkspaceId; - @observable name: string; - @observable description?: string; - @observable ownerRef?: string; - @observable enabled: boolean; - @observable lastActiveClusterId?: ClusterId; + @observable id: WorkspaceId + @observable name: string + @observable description?: string + @observable ownerRef?: string + @observable enabled: boolean + @observable lastActiveClusterId?: ClusterId constructor(data: WorkspaceModel) { Object.assign(this, data); @@ -76,7 +76,7 @@ export class Workspace implements WorkspaceModel, WorkspaceState { } export class WorkspaceStore extends BaseStore { - static readonly defaultId: WorkspaceId = "default"; + static readonly defaultId: WorkspaceId = "default" private constructor() { super({ diff --git a/src/extensions/cluster-feature.ts b/src/extensions/cluster-feature.ts index 6381d267cc..f2680fc17d 100644 --- a/src/extensions/cluster-feature.ts +++ b/src/extensions/cluster-feature.ts @@ -26,7 +26,7 @@ export abstract class ClusterFeature { installed: false, latestVersion: null, canUpgrade: false - }; + } abstract async install(cluster: Cluster): Promise; diff --git a/src/extensions/extension-loader.ts b/src/extensions/extension-loader.ts index c71fe90db2..050b186ee1 100644 --- a/src/extensions/extension-loader.ts +++ b/src/extensions/extension-loader.ts @@ -18,7 +18,7 @@ export function extensionPackagesRoot() { export class ExtensionLoader { protected extensions = observable.map(); protected instances = observable.map(); - protected readonly requestExtensionsChannel = "extensions:loaded"; + protected readonly requestExtensionsChannel = "extensions:loaded" @observable isLoaded = false; whenLoaded = when(() => this.isLoaded); diff --git a/src/extensions/extension-manager.ts b/src/extensions/extension-manager.ts index 0e51eeb666..e5ef9fd218 100644 --- a/src/extensions/extension-manager.ts +++ b/src/extensions/extension-manager.ts @@ -16,19 +16,19 @@ export interface InstalledExtension { type Dependencies = { [name: string]: string; -}; +} type PackageJson = { dependencies: Dependencies; -}; +} export class ExtensionManager { - protected bundledFolderPath: string; + protected bundledFolderPath: string protected packagesJson: PackageJson = { dependencies: {} - }; + } get extensionPackagesRoot() { return extensionPackagesRoot(); diff --git a/src/extensions/extension-store.ts b/src/extensions/extension-store.ts index a8078994ca..4150835200 100644 --- a/src/extensions/extension-store.ts +++ b/src/extensions/extension-store.ts @@ -3,7 +3,7 @@ import * as path from "path"; import { LensExtension } from "./lens-extension"; export abstract class ExtensionStore extends BaseStore { - protected extension: LensExtension; + protected extension: LensExtension async loadExtension(extension: LensExtension) { this.extension = extension; diff --git a/src/extensions/lens-main-extension.ts b/src/extensions/lens-main-extension.ts index b425c5bf46..1e1a3c4f5c 100644 --- a/src/extensions/lens-main-extension.ts +++ b/src/extensions/lens-main-extension.ts @@ -5,7 +5,7 @@ import { WindowManager } from "../main/window-manager"; import { getExtensionPageUrl } from "./registries/page-registry"; export class LensMainExtension extends LensExtension { - @observable.shallow appMenus: MenuRegistration[] = []; + @observable.shallow appMenus: MenuRegistration[] = [] async navigate

(pageId?: string, params?: P, frameId?: number) { const windowManager = WindowManager.getInstance(); diff --git a/src/extensions/lens-renderer-extension.ts b/src/extensions/lens-renderer-extension.ts index 56ed90684f..156109574b 100644 --- a/src/extensions/lens-renderer-extension.ts +++ b/src/extensions/lens-renderer-extension.ts @@ -4,16 +4,16 @@ import { LensExtension } from "./lens-extension"; import { getExtensionPageUrl } from "./registries/page-registry"; export class LensRendererExtension extends LensExtension { - @observable.shallow globalPages: PageRegistration[] = []; - @observable.shallow clusterPages: PageRegistration[] = []; - @observable.shallow globalPageMenus: PageMenuRegistration[] = []; - @observable.shallow clusterPageMenus: PageMenuRegistration[] = []; - @observable.shallow kubeObjectStatusTexts: KubeObjectStatusRegistration[] = []; - @observable.shallow appPreferences: AppPreferenceRegistration[] = []; - @observable.shallow clusterFeatures: ClusterFeatureRegistration[] = []; - @observable.shallow statusBarItems: StatusBarRegistration[] = []; - @observable.shallow kubeObjectDetailItems: KubeObjectDetailRegistration[] = []; - @observable.shallow kubeObjectMenuItems: KubeObjectMenuRegistration[] = []; + @observable.shallow globalPages: PageRegistration[] = [] + @observable.shallow clusterPages: PageRegistration[] = [] + @observable.shallow globalPageMenus: PageMenuRegistration[] = [] + @observable.shallow clusterPageMenus: PageMenuRegistration[] = [] + @observable.shallow kubeObjectStatusTexts: KubeObjectStatusRegistration[] = [] + @observable.shallow appPreferences: AppPreferenceRegistration[] = [] + @observable.shallow clusterFeatures: ClusterFeatureRegistration[] = [] + @observable.shallow statusBarItems: StatusBarRegistration[] = [] + @observable.shallow kubeObjectDetailItems: KubeObjectDetailRegistration[] = [] + @observable.shallow kubeObjectMenuItems: KubeObjectMenuRegistration[] = [] async navigate

(pageId?: string, params?: P) { const { navigate } = await import("../renderer/navigation"); diff --git a/src/extensions/renderer-api/kube-object-status.ts b/src/extensions/renderer-api/kube-object-status.ts index f609d736fe..22994ee85d 100644 --- a/src/extensions/renderer-api/kube-object-status.ts +++ b/src/extensions/renderer-api/kube-object-status.ts @@ -2,7 +2,7 @@ export type KubeObjectStatus = { level: KubeObjectStatusLevel; text: string; timestamp?: string; -}; +} export enum KubeObjectStatusLevel { INFO = 1, diff --git a/src/main/app-updater.ts b/src/main/app-updater.ts index c7b6659149..563c219534 100644 --- a/src/main/app-updater.ts +++ b/src/main/app-updater.ts @@ -2,7 +2,7 @@ import { autoUpdater } from "electron-updater"; import logger from "./logger"; export class AppUpdater { - static readonly defaultUpdateIntervalMs = 1000 * 60 * 60 * 24; // once a day + static readonly defaultUpdateIntervalMs = 1000 * 60 * 60 * 24 // once a day static checkForUpdates() { return autoUpdater.checkForUpdatesAndNotify(); diff --git a/src/main/cluster-detectors/base-cluster-detector.ts b/src/main/cluster-detectors/base-cluster-detector.ts index f73cc2ac81..b35d75ee70 100644 --- a/src/main/cluster-detectors/base-cluster-detector.ts +++ b/src/main/cluster-detectors/base-cluster-detector.ts @@ -4,11 +4,11 @@ import { Cluster } from "../cluster"; export type ClusterDetectionResult = { value: string | number | boolean accuracy: number -}; +} export class BaseClusterDetector { - cluster: Cluster; - key: string; + cluster: Cluster + key: string constructor(cluster: Cluster) { this.cluster = cluster; diff --git a/src/main/cluster-detectors/cluster-id-detector.ts b/src/main/cluster-detectors/cluster-id-detector.ts index 8419ae9db4..669cb5e1ba 100644 --- a/src/main/cluster-detectors/cluster-id-detector.ts +++ b/src/main/cluster-detectors/cluster-id-detector.ts @@ -3,7 +3,7 @@ import { createHash } from "crypto"; import { ClusterMetadataKey } from "../cluster"; export class ClusterIdDetector extends BaseClusterDetector { - key = ClusterMetadataKey.CLUSTER_ID; + key = ClusterMetadataKey.CLUSTER_ID public async detect() { let id: string; diff --git a/src/main/cluster-detectors/distribution-detector.ts b/src/main/cluster-detectors/distribution-detector.ts index 181425cb26..5b8b96831d 100644 --- a/src/main/cluster-detectors/distribution-detector.ts +++ b/src/main/cluster-detectors/distribution-detector.ts @@ -2,8 +2,8 @@ import { BaseClusterDetector } from "./base-cluster-detector"; import { ClusterMetadataKey } from "../cluster"; export class DistributionDetector extends BaseClusterDetector { - key = ClusterMetadataKey.DISTRIBUTION; - version: string; + key = ClusterMetadataKey.DISTRIBUTION + version: string public async detect() { this.version = await this.getKubernetesVersion(); diff --git a/src/main/cluster-detectors/last-seen-detector.ts b/src/main/cluster-detectors/last-seen-detector.ts index d56483625a..e915925e69 100644 --- a/src/main/cluster-detectors/last-seen-detector.ts +++ b/src/main/cluster-detectors/last-seen-detector.ts @@ -2,7 +2,7 @@ import { BaseClusterDetector } from "./base-cluster-detector"; import { ClusterMetadataKey } from "../cluster"; export class LastSeenDetector extends BaseClusterDetector { - key = ClusterMetadataKey.LAST_SEEN; + key = ClusterMetadataKey.LAST_SEEN public async detect() { if (!this.cluster.accessible) return null; diff --git a/src/main/cluster-detectors/nodes-count-detector.ts b/src/main/cluster-detectors/nodes-count-detector.ts index ba5fc93583..dcb2af1ea9 100644 --- a/src/main/cluster-detectors/nodes-count-detector.ts +++ b/src/main/cluster-detectors/nodes-count-detector.ts @@ -2,7 +2,7 @@ import { BaseClusterDetector } from "./base-cluster-detector"; import { ClusterMetadataKey } from "../cluster"; export class NodesCountDetector extends BaseClusterDetector { - key = ClusterMetadataKey.NODES_COUNT; + key = ClusterMetadataKey.NODES_COUNT public async detect() { if (!this.cluster.accessible) return null; diff --git a/src/main/cluster-detectors/version-detector.ts b/src/main/cluster-detectors/version-detector.ts index e59e6291b9..11eb34e1dc 100644 --- a/src/main/cluster-detectors/version-detector.ts +++ b/src/main/cluster-detectors/version-detector.ts @@ -2,8 +2,8 @@ import { BaseClusterDetector } from "./base-cluster-detector"; import { ClusterMetadataKey } from "../cluster"; export class VersionDetector extends BaseClusterDetector { - key = ClusterMetadataKey.VERSION; - value: string; + key = ClusterMetadataKey.VERSION + value: string public async detect() { const version = await this.getKubernetesVersion(); diff --git a/src/main/cluster.ts b/src/main/cluster.ts index e2831e8c3f..0c6643e1e5 100644 --- a/src/main/cluster.ts +++ b/src/main/cluster.ts @@ -32,7 +32,7 @@ export enum ClusterMetadataKey { export type ClusterRefreshOptions = { refreshMetadata?: boolean -}; +} export interface ClusterState { initialized: boolean; @@ -50,7 +50,7 @@ export interface ClusterState { export class Cluster implements ClusterModel, ClusterState { public id: ClusterId; - public kubeCtl: Kubectl; + public kubeCtl: Kubectl public contextHandler: ContextHandler; public ownerRef: string; protected kubeconfigManager: KubeconfigManager; diff --git a/src/main/context-handler.ts b/src/main/context-handler.ts index 10f84ced6d..e148b12c6e 100644 --- a/src/main/context-handler.ts +++ b/src/main/context-handler.ts @@ -12,10 +12,10 @@ import { KubeAuthProxy } from "./kube-auth-proxy"; export class ContextHandler { public proxyPort: number; public clusterUrl: UrlWithStringQuery; - protected kubeAuthProxy: KubeAuthProxy; - protected apiTarget: httpProxy.ServerOptions; - protected prometheusProvider: string; - protected prometheusPath: string; + protected kubeAuthProxy: KubeAuthProxy + protected apiTarget: httpProxy.ServerOptions + protected prometheusProvider: string + protected prometheusPath: string constructor(protected cluster: Cluster) { this.clusterUrl = url.parse(cluster.apiUrl); diff --git a/src/main/helm/helm-chart-manager.ts b/src/main/helm/helm-chart-manager.ts index 42c1a30ed2..46a2670aae 100644 --- a/src/main/helm/helm-chart-manager.ts +++ b/src/main/helm/helm-chart-manager.ts @@ -7,11 +7,11 @@ import { helmCli } from "./helm-cli"; type CachedYaml = { entries: any; // todo: types -}; +} export class HelmChartManager { - protected cache: any = {}; - protected repo: HelmRepo; + protected cache: any = {} + protected repo: HelmRepo constructor(repo: HelmRepo){ this.cache = HelmRepoManager.cache; diff --git a/src/main/helm/helm-repo-manager.ts b/src/main/helm/helm-repo-manager.ts index dff372a301..1c9647ae4f 100644 --- a/src/main/helm/helm-repo-manager.ts +++ b/src/main/helm/helm-repo-manager.ts @@ -10,7 +10,7 @@ import logger from "../logger"; export type HelmEnv = Record & { HELM_REPOSITORY_CACHE?: string; HELM_REPOSITORY_CONFIG?: string; -}; +} export interface HelmRepoConfig { repositories: HelmRepo[] @@ -29,11 +29,11 @@ export interface HelmRepo { } export class HelmRepoManager extends Singleton { - static cache = {}; // todo: remove implicit updates in helm-chart-manager.ts + static cache = {} // todo: remove implicit updates in helm-chart-manager.ts protected repos: HelmRepo[]; - protected helmEnv: HelmEnv; - protected initialized: boolean; + protected helmEnv: HelmEnv + protected initialized: boolean async loadAvailableRepos(): Promise { const res = await customRequestPromise({ diff --git a/src/main/kube-auth-proxy.ts b/src/main/kube-auth-proxy.ts index 3ad76e52b0..b773bbb944 100644 --- a/src/main/kube-auth-proxy.ts +++ b/src/main/kube-auth-proxy.ts @@ -12,13 +12,13 @@ export interface KubeAuthProxyLog { } export class KubeAuthProxy { - public lastError: string; + public lastError: string - protected cluster: Cluster; - protected env: NodeJS.ProcessEnv = null; - protected proxyProcess: ChildProcess; - protected port: number; - protected kubectl: Kubectl; + protected cluster: Cluster + protected env: NodeJS.ProcessEnv = null + protected proxyProcess: ChildProcess + protected port: number + protected kubectl: Kubectl constructor(cluster: Cluster, port: number, env: NodeJS.ProcessEnv) { this.env = env; diff --git a/src/main/kubeconfig-manager.ts b/src/main/kubeconfig-manager.ts index a8b3ae3fce..757a6f768b 100644 --- a/src/main/kubeconfig-manager.ts +++ b/src/main/kubeconfig-manager.ts @@ -8,7 +8,7 @@ import { dumpConfigYaml, loadConfig } from "../common/kube-helpers"; import logger from "./logger"; export class KubeconfigManager { - protected configDir = app.getPath("temp"); + protected configDir = app.getPath("temp") protected tempFile: string; private constructor(protected cluster: Cluster, protected contextHandler: ContextHandler, protected port: number) { } diff --git a/src/main/kubectl.ts b/src/main/kubectl.ts index 5d3f12746e..b2c3623a3f 100644 --- a/src/main/kubectl.ts +++ b/src/main/kubectl.ts @@ -54,18 +54,18 @@ export function bundledKubectlPath(): string { } export class Kubectl { - public kubectlVersion: string; - protected directory: string; - protected url: string; - protected path: string; - protected dirname: string; + public kubectlVersion: string + protected directory: string + protected url: string + protected path: string + protected dirname: string static get kubectlDir() { return path.join((app || remote.app).getPath("userData"), "binaries", "kubectl"); } - public static readonly bundledKubectlVersion: string = bundledVersion; - public static invalidBundle = false; + public static readonly bundledKubectlVersion: string = bundledVersion + public static invalidBundle = false private static bundledInstance: Kubectl; // Returns the single bundled Kubectl instance diff --git a/src/main/lens-binary.ts b/src/main/lens-binary.ts index fc6b59ee74..5cec928225 100644 --- a/src/main/lens-binary.ts +++ b/src/main/lens-binary.ts @@ -12,22 +12,22 @@ export type LensBinaryOpts = { originalBinaryName: string; newBinaryName?: string; requestOpts?: request.Options; -}; +} export class LensBinary { - public binaryVersion: string; - protected directory: string; - protected url: string; + public binaryVersion: string + protected directory: string + protected url: string protected path: string; protected tarPath: string; - protected dirname: string; - protected binaryName: string; - protected platformName: string; - protected arch: string; - protected originalBinaryName: string; - protected requestOpts: request.Options; - protected logger: Console | winston.Logger; + protected dirname: string + protected binaryName: string + protected platformName: string + protected arch: string + protected originalBinaryName: string + protected requestOpts: request.Options + protected logger: Console | winston.Logger constructor(opts: LensBinaryOpts) { const baseDir = opts.baseDir; diff --git a/src/main/lens-proxy.ts b/src/main/lens-proxy.ts index 03b1b15d29..236b23850c 100644 --- a/src/main/lens-proxy.ts +++ b/src/main/lens-proxy.ts @@ -12,11 +12,11 @@ import { ContextHandler } from "./context-handler"; import logger from "./logger"; export class LensProxy { - protected origin: string; - protected proxyServer: http.Server; - protected router: Router; - protected closed = false; - protected retryCounters = new Map(); + protected origin: string + protected proxyServer: http.Server + protected router: Router + protected closed = false + protected retryCounters = new Map() static create(port: number, clusterManager: ClusterManager) { return new LensProxy(port, clusterManager).listen(); diff --git a/src/main/menu.ts b/src/main/menu.ts index 99a0d0bb55..1baad66a8b 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -11,7 +11,7 @@ import { menuRegistry } from "../extensions/registries/menu-registry"; import logger from "./logger"; import { exitApp } from "./exit-app"; -export type MenuTopId = "mac" | "file" | "edit" | "view" | "help"; +export type MenuTopId = "mac" | "file" | "edit" | "view" | "help" export function initMenu(windowManager: WindowManager) { return autorun(() => buildMenu(windowManager), { diff --git a/src/main/node-shell-session.ts b/src/main/node-shell-session.ts index 3d48afebc5..b5a2ca2a77 100644 --- a/src/main/node-shell-session.ts +++ b/src/main/node-shell-session.ts @@ -10,8 +10,8 @@ import { appEventBus } from "../common/event-bus"; export class NodeShellSession extends ShellSession { protected nodeName: string; - protected podId: string; - protected kc: KubeConfig; + protected podId: string + protected kc: KubeConfig constructor(socket: WebSocket, cluster: Cluster, nodeName: string) { super(socket, cluster); diff --git a/src/main/port_spec.ts b/src/main/port_spec.ts index bf01eb5dde..ea8a6972b1 100644 --- a/src/main/port_spec.ts +++ b/src/main/port_spec.ts @@ -10,15 +10,15 @@ jest.mock("net", () => { listen = jest.fn(() => { this.emit('listening'); return this; - }); + }) address = () => { newPort = Math.round(Math.random() * 10000); return { port: newPort }; - }; - unref = jest.fn(); - close = jest.fn(cb => cb()); + } + unref = jest.fn() + close = jest.fn(cb => cb()) }; }, }; diff --git a/src/main/prometheus/helm.ts b/src/main/prometheus/helm.ts index 56d739c630..33d4bd0c61 100644 --- a/src/main/prometheus/helm.ts +++ b/src/main/prometheus/helm.ts @@ -4,9 +4,9 @@ import { PrometheusService } from "./provider-registry"; import logger from "../logger"; export class PrometheusHelm extends PrometheusLens { - id = "helm"; - name = "Helm"; - rateAccuracy = "5m"; + id = "helm" + name = "Helm" + rateAccuracy = "5m" public async getPrometheusService(client: CoreV1Api): Promise { const labelSelector = "app=prometheus,component=server,heritage=Helm"; diff --git a/src/main/prometheus/lens.ts b/src/main/prometheus/lens.ts index 76a459212d..af3c3a2f70 100644 --- a/src/main/prometheus/lens.ts +++ b/src/main/prometheus/lens.ts @@ -3,9 +3,9 @@ import { CoreV1Api } from "@kubernetes/client-node"; import logger from "../logger"; export class PrometheusLens implements PrometheusProvider { - id = "lens"; - name = "Lens"; - rateAccuracy = "1m"; + id = "lens" + name = "Lens" + rateAccuracy = "1m" public async getPrometheusService(client: CoreV1Api): Promise { try { diff --git a/src/main/prometheus/operator.ts b/src/main/prometheus/operator.ts index 8e27a4a6f3..06044414c1 100644 --- a/src/main/prometheus/operator.ts +++ b/src/main/prometheus/operator.ts @@ -3,9 +3,9 @@ import { CoreV1Api, V1Service } from "@kubernetes/client-node"; import logger from "../logger"; export class PrometheusOperator implements PrometheusProvider { - rateAccuracy = "1m"; - id = "operator"; - name = "Prometheus Operator"; + rateAccuracy = "1m" + id = "operator" + name = "Prometheus Operator" public async getPrometheusService(client: CoreV1Api): Promise { try { diff --git a/src/main/prometheus/provider-registry.ts b/src/main/prometheus/provider-registry.ts index 641b1b8cf2..58e6dafdc0 100644 --- a/src/main/prometheus/provider-registry.ts +++ b/src/main/prometheus/provider-registry.ts @@ -11,7 +11,7 @@ export type PrometheusClusterQuery = { cpuCapacity: string; podUsage: string; podCapacity: string; -}; +} export type PrometheusNodeQuery = { memoryUsage: string; @@ -20,7 +20,7 @@ export type PrometheusNodeQuery = { cpuCapacity: string; fsSize: string; fsUsage: string; -}; +} export type PrometheusPodQuery = { memoryUsage: string; @@ -32,32 +32,32 @@ export type PrometheusPodQuery = { fsUsage: string; networkReceive: string; networkTransmit: string; -}; +} export type PrometheusPvcQuery = { diskUsage: string; diskCapacity: string; -}; +} export type PrometheusIngressQuery = { bytesSentSuccess: string; bytesSentFailure: string; requestDurationSeconds: string; responseDurationSeconds: string; -}; +} export type PrometheusQueryOpts = { [key: string]: string | any; }; -export type PrometheusQuery = PrometheusNodeQuery | PrometheusClusterQuery | PrometheusPodQuery | PrometheusPvcQuery | PrometheusIngressQuery; +export type PrometheusQuery = PrometheusNodeQuery | PrometheusClusterQuery | PrometheusPodQuery | PrometheusPvcQuery | PrometheusIngressQuery export type PrometheusService = { id: string; namespace: string; service: string; port: number; -}; +} export interface PrometheusProvider { id: string; @@ -68,10 +68,10 @@ export interface PrometheusProvider { export type PrometheusProviderList = { [key: string]: PrometheusProvider; -}; +} export class PrometheusProviderRegistry { - private static prometheusProviders: PrometheusProviderList = {}; + private static prometheusProviders: PrometheusProviderList = {} static getProvider(type: string): PrometheusProvider { if (!this.prometheusProviders[type]) { diff --git a/src/main/prometheus/stacklight.ts b/src/main/prometheus/stacklight.ts index 35394336d3..d613aa852a 100644 --- a/src/main/prometheus/stacklight.ts +++ b/src/main/prometheus/stacklight.ts @@ -3,9 +3,9 @@ import { CoreV1Api } from "@kubernetes/client-node"; import logger from "../logger"; export class PrometheusStacklight implements PrometheusProvider { - id = "stacklight"; - name = "Stacklight"; - rateAccuracy = "1m"; + id = "stacklight" + name = "Stacklight" + rateAccuracy = "1m" public async getPrometheusService(client: CoreV1Api): Promise { try { diff --git a/src/main/routes/metrics-route.ts b/src/main/routes/metrics-route.ts index 254abe188f..f0d6763424 100644 --- a/src/main/routes/metrics-route.ts +++ b/src/main/routes/metrics-route.ts @@ -5,7 +5,7 @@ import _ from "lodash"; export type IMetricsQuery = string | string[] | { [metricName: string]: string; -}; +} // This is used for backoff retry tracking. const MAX_ATTEMPTS = 5; diff --git a/src/main/routes/port-forward-route.ts b/src/main/routes/port-forward-route.ts index 55402ff72f..84121c48fd 100644 --- a/src/main/routes/port-forward-route.ts +++ b/src/main/routes/port-forward-route.ts @@ -8,7 +8,7 @@ import * as tcpPortUsed from "tcp-port-used"; import logger from "../logger"; class PortForward { - public static portForwards: PortForward[] = []; + public static portForwards: PortForward[] = [] static getPortforward(forward: {clusterId: string; kind: string; name: string; namespace: string; port: string}) { return PortForward.portForwards.find((pf) => { @@ -22,14 +22,14 @@ class PortForward { }); } - public clusterId: string; - public process: ChildProcessWithoutNullStreams; - public kubeConfig: string; - public kind: string; - public namespace: string; - public name: string; - public port: string; - public localPort: number; + public clusterId: string + public process: ChildProcessWithoutNullStreams + public kubeConfig: string + public kind: string + public namespace: string + public name: string + public port: string + public localPort: number constructor(obj: any) { Object.assign(this, obj); diff --git a/src/main/routes/watch-route.ts b/src/main/routes/watch-route.ts index dd42460a9d..abc92389c4 100644 --- a/src/main/routes/watch-route.ts +++ b/src/main/routes/watch-route.ts @@ -6,12 +6,12 @@ import { Request } from "request"; import logger from "../logger"; class ApiWatcher { - private apiUrl: string; - private response: ServerResponse; - private watchRequest: Request; - private watch: Watch; - private processor: NodeJS.Timeout; - private eventBuffer: any[] = []; + private apiUrl: string + private response: ServerResponse + private watchRequest: Request + private watch: Watch + private processor: NodeJS.Timeout + private eventBuffer: any[] = [] constructor(apiUrl: string, kubeConfig: KubeConfig, response: ServerResponse) { this.apiUrl = apiUrl; diff --git a/src/main/shell-session.ts b/src/main/shell-session.ts index 42e0039047..d67636ce5f 100644 --- a/src/main/shell-session.ts +++ b/src/main/shell-session.ts @@ -13,11 +13,11 @@ import { appEventBus } from "../common/event-bus"; import { userStore } from "../common/user-store"; export class ShellSession extends EventEmitter { - static shellEnvs: Map = new Map(); + static shellEnvs: Map = new Map() - protected websocket: WebSocket; - protected shellProcess: pty.IPty; - protected kubeconfigPath: string; + protected websocket: WebSocket + protected shellProcess: pty.IPty + protected kubeconfigPath: string protected nodeShellPod: string; protected kubectl: Kubectl; protected kubectlBinDir: string; diff --git a/src/renderer/api/endpoints/cluster-role-binding.api.ts b/src/renderer/api/endpoints/cluster-role-binding.api.ts index d566717bff..35e4ded7e7 100644 --- a/src/renderer/api/endpoints/cluster-role-binding.api.ts +++ b/src/renderer/api/endpoints/cluster-role-binding.api.ts @@ -2,9 +2,9 @@ import { RoleBinding } from "./role-binding.api"; import { KubeApi } from "../kube-api"; export class ClusterRoleBinding extends RoleBinding { - static kind = "ClusterRoleBinding"; - static namespaced = false; - static apiBase = "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings"; + static kind = "ClusterRoleBinding" + static namespaced = false + static apiBase = "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings" } export const clusterRoleBindingApi = new KubeApi({ diff --git a/src/renderer/api/endpoints/cluster-role.api.ts b/src/renderer/api/endpoints/cluster-role.api.ts index 9e3c90ca2e..8a99f7ad27 100644 --- a/src/renderer/api/endpoints/cluster-role.api.ts +++ b/src/renderer/api/endpoints/cluster-role.api.ts @@ -4,9 +4,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class ClusterRole extends Role { - static kind = "ClusterRole"; - static namespaced = false; - static apiBase = "/apis/rbac.authorization.k8s.io/v1/clusterroles"; + static kind = "ClusterRole" + static namespaced = false + static apiBase = "/apis/rbac.authorization.k8s.io/v1/clusterroles" } export const clusterRoleApi = new KubeApi({ diff --git a/src/renderer/api/endpoints/cluster.api.ts b/src/renderer/api/endpoints/cluster.api.ts index 43783e1c00..d7e70433e6 100644 --- a/src/renderer/api/endpoints/cluster.api.ts +++ b/src/renderer/api/endpoints/cluster.api.ts @@ -3,8 +3,8 @@ import { KubeObject } from "../kube-object"; import { KubeApi } from "../kube-api"; export class ClusterApi extends KubeApi { - static kind = "Cluster"; - static namespaced = true; + static kind = "Cluster" + static namespaced = true async getMetrics(nodeNames: string[], params?: IMetricsReqParams): Promise { const nodes = nodeNames.join("|"); @@ -52,7 +52,7 @@ export interface IClusterMetrics { export class Cluster extends KubeObject { static kind = "Cluster"; - static apiBase = "/apis/cluster.k8s.io/v1alpha1/clusters"; + static apiBase = "/apis/cluster.k8s.io/v1alpha1/clusters" spec: { clusterNetwork?: { @@ -69,7 +69,7 @@ export class Cluster extends KubeObject { profile: string; }; }; - }; + } status?: { apiEndpoints: { host: string; @@ -84,7 +84,7 @@ export class Cluster extends KubeObject { }; errorMessage?: string; errorReason?: string; - }; + } getStatus() { if (this.metadata.deletionTimestamp) return ClusterStatus.REMOVING; diff --git a/src/renderer/api/endpoints/component-status.api.ts b/src/renderer/api/endpoints/component-status.api.ts index fec4dda1da..7f7e04fe2a 100644 --- a/src/renderer/api/endpoints/component-status.api.ts +++ b/src/renderer/api/endpoints/component-status.api.ts @@ -8,11 +8,11 @@ export interface IComponentStatusCondition { } export class ComponentStatus extends KubeObject { - static kind = "ComponentStatus"; - static namespaced = false; - static apiBase = "/api/v1/componentstatuses"; + static kind = "ComponentStatus" + static namespaced = false + static apiBase = "/api/v1/componentstatuses" - conditions: IComponentStatusCondition[]; + conditions: IComponentStatusCondition[] getTruthyConditions() { return this.conditions.filter(c => c.status === "True"); diff --git a/src/renderer/api/endpoints/configmap.api.ts b/src/renderer/api/endpoints/configmap.api.ts index 042fb59d86..59f3e3b090 100644 --- a/src/renderer/api/endpoints/configmap.api.ts +++ b/src/renderer/api/endpoints/configmap.api.ts @@ -7,7 +7,7 @@ import { KubeApi } from "../kube-api"; export class ConfigMap extends KubeObject { static kind = "ConfigMap"; static namespaced = true; - static apiBase = "/api/v1/configmaps"; + static apiBase = "/api/v1/configmaps" constructor(data: KubeJsonApiData) { super(data); @@ -16,7 +16,7 @@ export class ConfigMap extends KubeObject { data: { [param: string]: string; - }; + } getKeys(): string[] { return Object.keys(this.data); diff --git a/src/renderer/api/endpoints/crd.api.ts b/src/renderer/api/endpoints/crd.api.ts index 02690a2afd..1ff305642e 100644 --- a/src/renderer/api/endpoints/crd.api.ts +++ b/src/renderer/api/endpoints/crd.api.ts @@ -7,20 +7,20 @@ type AdditionalPrinterColumnsCommon = { type: "integer" | "number" | "string" | "boolean" | "date"; priority: number; description: string; -}; +} export type AdditionalPrinterColumnsV1 = AdditionalPrinterColumnsCommon & { jsonPath: string; -}; +} type AdditionalPrinterColumnsV1Beta = AdditionalPrinterColumnsCommon & { JSONPath: string; -}; +} export class CustomResourceDefinition extends KubeObject { static kind = "CustomResourceDefinition"; static namespaced = false; - static apiBase = "/apis/apiextensions.k8s.io/v1/customresourcedefinitions"; + static apiBase = "/apis/apiextensions.k8s.io/v1/customresourcedefinitions" spec: { group: string; @@ -45,7 +45,7 @@ export class CustomResourceDefinition extends KubeObject { webhook?: any; }; additionalPrinterColumns?: AdditionalPrinterColumnsV1Beta[]; // removed in v1 - }; + } status: { conditions: { lastTransitionTime: string; @@ -62,7 +62,7 @@ export class CustomResourceDefinition extends KubeObject { listKind: string; }; storedVersions: string[]; - }; + } getResourceUrl() { return crdResourcesURL({ diff --git a/src/renderer/api/endpoints/cron-job.api.ts b/src/renderer/api/endpoints/cron-job.api.ts index 2cca8bfb3d..0ddb32fb73 100644 --- a/src/renderer/api/endpoints/cron-job.api.ts +++ b/src/renderer/api/endpoints/cron-job.api.ts @@ -7,12 +7,12 @@ import { KubeApi } from "../kube-api"; @autobind() export class CronJob extends KubeObject { - static kind = "CronJob"; - static namespaced = true; - static apiBase = "/apis/batch/v1beta1/cronjobs"; + static kind = "CronJob" + static namespaced = true + static apiBase = "/apis/batch/v1beta1/cronjobs" - kind: string; - apiVersion: string; + kind: string + apiVersion: string metadata: { name: string; namespace: string; @@ -26,7 +26,7 @@ export class CronJob extends KubeObject { annotations: { [key: string]: string; }; - }; + } spec: { schedule: string; concurrencyPolicy: string; @@ -59,10 +59,10 @@ export class CronJob extends KubeObject { }; successfulJobsHistoryLimit: number; failedJobsHistoryLimit: number; - }; + } status: { lastScheduleTime?: string; - }; + } getSuspendFlag() { return this.spec.suspend.toString(); diff --git a/src/renderer/api/endpoints/daemon-set.api.ts b/src/renderer/api/endpoints/daemon-set.api.ts index 63fc6363e4..41bd01c6af 100644 --- a/src/renderer/api/endpoints/daemon-set.api.ts +++ b/src/renderer/api/endpoints/daemon-set.api.ts @@ -6,9 +6,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class DaemonSet extends WorkloadKubeObject { - static kind = "DaemonSet"; - static namespaced = true; - static apiBase = "/apis/apps/v1/daemonsets"; + static kind = "DaemonSet" + static namespaced = true + static apiBase = "/apis/apps/v1/daemonsets" spec: { selector: { @@ -51,7 +51,7 @@ export class DaemonSet extends WorkloadKubeObject { }; }; revisionHistoryLimit: number; - }; + } status: { currentNumberScheduled: number; numberMisscheduled: number; @@ -61,7 +61,7 @@ export class DaemonSet extends WorkloadKubeObject { updatedNumberScheduled: number; numberAvailable: number; numberUnavailable: number; - }; + } getImages() { const containers: IPodContainer[] = get(this, "spec.template.spec.containers", []); diff --git a/src/renderer/api/endpoints/deployment.api.ts b/src/renderer/api/endpoints/deployment.api.ts index 28ed71f86a..da65003e73 100644 --- a/src/renderer/api/endpoints/deployment.api.ts +++ b/src/renderer/api/endpoints/deployment.api.ts @@ -48,9 +48,9 @@ export class DeploymentApi extends KubeApi { @autobind() export class Deployment extends WorkloadKubeObject { - static kind = "Deployment"; - static namespaced = true; - static apiBase = "/apis/apps/v1/deployments"; + static kind = "Deployment" + static namespaced = true + static apiBase = "/apis/apps/v1/deployments" spec: { replicas: number; @@ -151,7 +151,7 @@ export class Deployment extends WorkloadKubeObject { maxSurge: number; }; }; - }; + } status: { observedGeneration: number; replicas: number; @@ -167,7 +167,7 @@ export class Deployment extends WorkloadKubeObject { reason: string; message: string; }[]; - }; + } getConditions(activeOnly = false) { const { conditions } = this.status; diff --git a/src/renderer/api/endpoints/endpoint.api.ts b/src/renderer/api/endpoints/endpoint.api.ts index 121836a637..d04d553b18 100644 --- a/src/renderer/api/endpoints/endpoint.api.ts +++ b/src/renderer/api/endpoints/endpoint.api.ts @@ -98,11 +98,11 @@ export class EndpointSubset implements IEndpointSubset { @autobind() export class Endpoint extends KubeObject { - static kind = "Endpoints"; - static namespaced = true; - static apiBase = "/api/v1/endpoints"; + static kind = "Endpoints" + static namespaced = true + static apiBase = "/api/v1/endpoints" - subsets: IEndpointSubset[]; + subsets: IEndpointSubset[] getEndpointSubsets(): EndpointSubset[] { const subsets = this.subsets || []; diff --git a/src/renderer/api/endpoints/events.api.ts b/src/renderer/api/endpoints/events.api.ts index 51dbf3c3b5..31ebe09045 100644 --- a/src/renderer/api/endpoints/events.api.ts +++ b/src/renderer/api/endpoints/events.api.ts @@ -6,9 +6,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class KubeEvent extends KubeObject { - static kind = "Event"; - static namespaced = true; - static apiBase = "/api/v1/events"; + static kind = "Event" + static namespaced = true + static apiBase = "/api/v1/events" involvedObject: { kind: string; @@ -18,20 +18,20 @@ export class KubeEvent extends KubeObject { apiVersion: string; resourceVersion: string; fieldPath: string; - }; - reason: string; - message: string; + } + reason: string + message: string source: { component: string; host: string; - }; - firstTimestamp: string; - lastTimestamp: string; - count: number; - type: string; - eventTime: null; - reportingComponent: string; - reportingInstance: string; + } + firstTimestamp: string + lastTimestamp: string + count: number + type: string + eventTime: null + reportingComponent: string + reportingInstance: string isWarning() { return this.type === "Warning"; diff --git a/src/renderer/api/endpoints/helm-charts.api.ts b/src/renderer/api/endpoints/helm-charts.api.ts index e6328f136b..69246143a6 100644 --- a/src/renderer/api/endpoints/helm-charts.api.ts +++ b/src/renderer/api/endpoints/helm-charts.api.ts @@ -61,27 +61,27 @@ export class HelmChart { return new HelmChart(data); } - apiVersion: string; - name: string; - version: string; - repo: string; - kubeVersion?: string; - created: string; - description?: string; - digest: string; - keywords?: string[]; - home?: string; - sources?: string[]; + apiVersion: string + name: string + version: string + repo: string + kubeVersion?: string + created: string + description?: string + digest: string + keywords?: string[] + home?: string + sources?: string[] maintainers?: { name: string; email: string; url: string; - }[]; - engine?: string; - icon?: string; - appVersion?: string; - deprecated?: boolean; - tillerVersion?: string; + }[] + engine?: string + icon?: string + appVersion?: string + deprecated?: boolean + tillerVersion?: string getId() { return this.digest; diff --git a/src/renderer/api/endpoints/helm-releases.api.ts b/src/renderer/api/endpoints/helm-releases.api.ts index 0ddbf1c734..6edbe4145b 100644 --- a/src/renderer/api/endpoints/helm-releases.api.ts +++ b/src/renderer/api/endpoints/helm-releases.api.ts @@ -135,13 +135,13 @@ export class HelmRelease implements ItemObject { return new HelmRelease(data); } - appVersion: string; - name: string; - namespace: string; - chart: string; - status: string; - updated: string; - revision: string; + appVersion: string + name: string + namespace: string + chart: string + status: string + updated: string + revision: string getId() { return this.namespace + this.name; diff --git a/src/renderer/api/endpoints/hpa.api.ts b/src/renderer/api/endpoints/hpa.api.ts index 79e6cada0f..9df5ab188b 100644 --- a/src/renderer/api/endpoints/hpa.api.ts +++ b/src/renderer/api/endpoints/hpa.api.ts @@ -20,7 +20,7 @@ export type IHpaMetricData = T & { currentAverageValue?: string; targetAverageUtilization?: number; targetAverageValue?: string; -}; +} export interface IHpaMetric { [kind: string]: IHpaMetricData; @@ -41,7 +41,7 @@ export interface IHpaMetric { export class HorizontalPodAutoscaler extends KubeObject { static kind = "HorizontalPodAutoscaler"; static namespaced = true; - static apiBase = "/apis/autoscaling/v2beta1/horizontalpodautoscalers"; + static apiBase = "/apis/autoscaling/v2beta1/horizontalpodautoscalers" spec: { scaleTargetRef: { @@ -52,7 +52,7 @@ export class HorizontalPodAutoscaler extends KubeObject { minReplicas: number; maxReplicas: number; metrics: IHpaMetric[]; - }; + } status: { currentReplicas: number; desiredReplicas: number; @@ -64,7 +64,7 @@ export class HorizontalPodAutoscaler extends KubeObject { status: string; type: string; }[]; - }; + } getMaxPods() { return this.spec.maxReplicas || 0; diff --git a/src/renderer/api/endpoints/ingress.api.ts b/src/renderer/api/endpoints/ingress.api.ts index 0594e3446e..d5ff66be82 100644 --- a/src/renderer/api/endpoints/ingress.api.ts +++ b/src/renderer/api/endpoints/ingress.api.ts @@ -31,9 +31,9 @@ export interface ILoadBalancerIngress { } @autobind() export class Ingress extends KubeObject { - static kind = "Ingress"; - static namespaced = true; - static apiBase = "/apis/extensions/v1beta1/ingresses"; + static kind = "Ingress" + static namespaced = true + static apiBase = "/apis/extensions/v1beta1/ingresses" spec: { tls: { @@ -55,12 +55,12 @@ export class Ingress extends KubeObject { serviceName: string; servicePort: number; }; - }; + } status: { loadBalancer: { ingress: ILoadBalancerIngress[]; }; - }; + } getRoutes() { const { spec: { tls, rules } } = this; diff --git a/src/renderer/api/endpoints/job.api.ts b/src/renderer/api/endpoints/job.api.ts index 1dc78fdc94..0083df2cc8 100644 --- a/src/renderer/api/endpoints/job.api.ts +++ b/src/renderer/api/endpoints/job.api.ts @@ -7,9 +7,9 @@ import { JsonApiParams } from "../json-api"; @autobind() export class Job extends WorkloadKubeObject { - static kind = "Job"; - static namespaced = true; - static apiBase = "/apis/batch/v1/jobs"; + static kind = "Job" + static namespaced = true + static apiBase = "/apis/batch/v1/jobs" spec: { parallelism?: number; @@ -56,7 +56,7 @@ export class Job extends WorkloadKubeObject { serviceAccountName?: string; serviceAccount?: string; schedulerName?: string; - }; + } status: { conditions: { type: string; @@ -68,7 +68,7 @@ export class Job extends WorkloadKubeObject { startTime: string; completionTime: string; succeeded: number; - }; + } getDesiredCompletions() { return this.spec.completions || 0; diff --git a/src/renderer/api/endpoints/namespaces.api.ts b/src/renderer/api/endpoints/namespaces.api.ts index 430565bf57..c615789cd9 100644 --- a/src/renderer/api/endpoints/namespaces.api.ts +++ b/src/renderer/api/endpoints/namespaces.api.ts @@ -15,7 +15,7 @@ export class Namespace extends KubeObject { status?: { phase: string; - }; + } getStatus() { return this.status ? this.status.phase : "-"; diff --git a/src/renderer/api/endpoints/network-policy.api.ts b/src/renderer/api/endpoints/network-policy.api.ts index 4ecd333854..e1b1860d3d 100644 --- a/src/renderer/api/endpoints/network-policy.api.ts +++ b/src/renderer/api/endpoints/network-policy.api.ts @@ -37,9 +37,9 @@ export interface IPolicyEgress { @autobind() export class NetworkPolicy extends KubeObject { - static kind = "NetworkPolicy"; - static namespaced = true; - static apiBase = "/apis/networking.k8s.io/v1/networkpolicies"; + static kind = "NetworkPolicy" + static namespaced = true + static apiBase = "/apis/networking.k8s.io/v1/networkpolicies" spec: { podSelector: { @@ -51,7 +51,7 @@ export class NetworkPolicy extends KubeObject { policyTypes: string[]; ingress: IPolicyIngress[]; egress: IPolicyEgress[]; - }; + } getMatchLabels(): string[] { if (!this.spec.podSelector || !this.spec.podSelector.matchLabels) return []; diff --git a/src/renderer/api/endpoints/nodes.api.ts b/src/renderer/api/endpoints/nodes.api.ts index c85cd8f9b0..2b6ad85083 100644 --- a/src/renderer/api/endpoints/nodes.api.ts +++ b/src/renderer/api/endpoints/nodes.api.ts @@ -30,9 +30,9 @@ export interface INodeMetrics { @autobind() export class Node extends KubeObject { - static kind = "Node"; - static namespaced = false; - static apiBase = "/api/v1/nodes"; + static kind = "Node" + static namespaced = false + static apiBase = "/api/v1/nodes" spec: { podCIDR: string; @@ -43,7 +43,7 @@ export class Node extends KubeObject { effect: string; }[]; unschedulable?: boolean; - }; + } status: { capacity: { cpu: string; @@ -83,7 +83,7 @@ export class Node extends KubeObject { names: string[]; sizeBytes: number; }[]; - }; + } getNodeConditionText() { const { conditions } = this.status; diff --git a/src/renderer/api/endpoints/persistent-volume-claims.api.ts b/src/renderer/api/endpoints/persistent-volume-claims.api.ts index 9aa73bb0bc..91d1663a43 100644 --- a/src/renderer/api/endpoints/persistent-volume-claims.api.ts +++ b/src/renderer/api/endpoints/persistent-volume-claims.api.ts @@ -23,9 +23,9 @@ export interface IPvcMetrics { @autobind() export class PersistentVolumeClaim extends KubeObject { - static kind = "PersistentVolumeClaim"; - static namespaced = true; - static apiBase = "/api/v1/persistentvolumeclaims"; + static kind = "PersistentVolumeClaim" + static namespaced = true + static apiBase = "/api/v1/persistentvolumeclaims" spec: { accessModes: string[]; @@ -45,10 +45,10 @@ export class PersistentVolumeClaim extends KubeObject { storage: string; // 8Gi }; }; - }; + } status: { phase: string; // Pending - }; + } getPods(allPods: Pod[]): Pod[] { const pods = allPods.filter(pod => pod.getNs() === this.getNs()); diff --git a/src/renderer/api/endpoints/persistent-volume.api.ts b/src/renderer/api/endpoints/persistent-volume.api.ts index 5e31eeb028..c985215c52 100644 --- a/src/renderer/api/endpoints/persistent-volume.api.ts +++ b/src/renderer/api/endpoints/persistent-volume.api.ts @@ -5,9 +5,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class PersistentVolume extends KubeObject { - static kind = "PersistentVolume"; - static namespaced = false; - static apiBase = "/api/v1/persistentvolumes"; + static kind = "PersistentVolume" + static namespaced = false + static apiBase = "/api/v1/persistentvolumes" spec: { capacity: { @@ -38,12 +38,12 @@ export class PersistentVolume extends KubeObject { path: string; server: string; }; - }; + } status: { phase: string; reason?: string; - }; + } getCapacity(inBytes = false) { const capacity = this.spec.capacity; diff --git a/src/renderer/api/endpoints/pod-metrics.api.ts b/src/renderer/api/endpoints/pod-metrics.api.ts index acf6e7b20f..7e01a1a990 100644 --- a/src/renderer/api/endpoints/pod-metrics.api.ts +++ b/src/renderer/api/endpoints/pod-metrics.api.ts @@ -2,19 +2,19 @@ import { KubeObject } from "../kube-object"; import { KubeApi } from "../kube-api"; export class PodMetrics extends KubeObject { - static kind = "Pod"; - static namespaced = true; - static apiBase = "/apis/metrics.k8s.io/v1beta1/pods"; + static kind = "Pod" + static namespaced = true + static apiBase = "/apis/metrics.k8s.io/v1beta1/pods" - timestamp: string; - window: string; + timestamp: string + window: string containers: { name: string; usage: { cpu: string; memory: string; }; - }[]; + }[] } export const podMetricsApi = new KubeApi({ diff --git a/src/renderer/api/endpoints/poddisruptionbudget.api.ts b/src/renderer/api/endpoints/poddisruptionbudget.api.ts index b76260ae6f..ea7e0575ff 100644 --- a/src/renderer/api/endpoints/poddisruptionbudget.api.ts +++ b/src/renderer/api/endpoints/poddisruptionbudget.api.ts @@ -12,13 +12,13 @@ export class PodDisruptionBudget extends KubeObject { minAvailable: string; maxUnavailable: string; selector: { matchLabels: { [app: string]: string } }; - }; + } status: { currentHealthy: number desiredHealthy: number disruptionsAllowed: number expectedPods: number - }; + } getSelectors() { const selector = this.spec.selector; diff --git a/src/renderer/api/endpoints/pods.api.ts b/src/renderer/api/endpoints/pods.api.ts index a5c833b5fa..31ead8eb9d 100644 --- a/src/renderer/api/endpoints/pods.api.ts +++ b/src/renderer/api/endpoints/pods.api.ts @@ -171,9 +171,9 @@ export interface IPodContainerStatus { @autobind() export class Pod extends WorkloadKubeObject { - static kind = "Pod"; - static namespaced = true; - static apiBase = "/api/v1/pods"; + static kind = "Pod" + static namespaced = true + static apiBase = "/api/v1/pods" spec: { volumes?: { @@ -215,7 +215,7 @@ export class Pod extends WorkloadKubeObject { tolerationSeconds: number; }[]; affinity: IAffinity; - }; + } status: { phase: string; conditions: { @@ -231,7 +231,7 @@ export class Pod extends WorkloadKubeObject { containerStatuses?: IPodContainerStatus[]; qosClass: string; reason?: string; - }; + } getInitContainers() { return this.spec.initContainers || []; diff --git a/src/renderer/api/endpoints/podsecuritypolicy.api.ts b/src/renderer/api/endpoints/podsecuritypolicy.api.ts index c7981f65be..aa705c8748 100644 --- a/src/renderer/api/endpoints/podsecuritypolicy.api.ts +++ b/src/renderer/api/endpoints/podsecuritypolicy.api.ts @@ -4,9 +4,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class PodSecurityPolicy extends KubeObject { - static kind = "PodSecurityPolicy"; - static namespaced = false; - static apiBase = "/apis/policy/v1beta1/podsecuritypolicies"; + static kind = "PodSecurityPolicy" + static namespaced = false + static apiBase = "/apis/policy/v1beta1/podsecuritypolicies" spec: { allowPrivilegeEscalation?: boolean; @@ -66,7 +66,7 @@ export class PodSecurityPolicy extends KubeObject { ranges: { max: number; min: number }[]; }; volumes?: string[]; - }; + } isPrivileged() { return !!this.spec.privileged; diff --git a/src/renderer/api/endpoints/replica-set.api.ts b/src/renderer/api/endpoints/replica-set.api.ts index d1081811e9..71e415ae2e 100644 --- a/src/renderer/api/endpoints/replica-set.api.ts +++ b/src/renderer/api/endpoints/replica-set.api.ts @@ -6,9 +6,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class ReplicaSet extends WorkloadKubeObject { - static kind = "ReplicaSet"; - static namespaced = true; - static apiBase = "/apis/apps/v1/replicasets"; + static kind = "ReplicaSet" + static namespaced = true + static apiBase = "/apis/apps/v1/replicasets" spec: { replicas?: number; @@ -37,14 +37,14 @@ export class ReplicaSet extends WorkloadKubeObject { terminationGracePeriodSeconds?: number; dnsPolicy?: string; schedulerName?: string; - }; + } status: { replicas: number; fullyLabeledReplicas: number; readyReplicas: number; availableReplicas: number; observedGeneration: number; - }; + } getImages() { const containers: IPodContainer[] = get(this, "spec.template.spec.containers", []); diff --git a/src/renderer/api/endpoints/resource-quota.api.ts b/src/renderer/api/endpoints/resource-quota.api.ts index a19e4025c5..f58a224c0e 100644 --- a/src/renderer/api/endpoints/resource-quota.api.ts +++ b/src/renderer/api/endpoints/resource-quota.api.ts @@ -31,9 +31,9 @@ export interface IResourceQuotaValues { } export class ResourceQuota extends KubeObject { - static kind = "ResourceQuota"; - static namespaced = true; - static apiBase = "/api/v1/resourcequotas"; + static kind = "ResourceQuota" + static namespaced = true + static apiBase = "/api/v1/resourcequotas" constructor(data: KubeJsonApiData) { super(data); @@ -49,12 +49,12 @@ export class ResourceQuota extends KubeObject { values: string[]; }[]; }; - }; + } status: { hard: IResourceQuotaValues; used: IResourceQuotaValues; - }; + } getScopeSelector() { const { matchExpressions = [] } = this.spec.scopeSelector || {}; diff --git a/src/renderer/api/endpoints/role-binding.api.ts b/src/renderer/api/endpoints/role-binding.api.ts index 866656ee56..b13b853172 100644 --- a/src/renderer/api/endpoints/role-binding.api.ts +++ b/src/renderer/api/endpoints/role-binding.api.ts @@ -11,16 +11,16 @@ export interface IRoleBindingSubject { @autobind() export class RoleBinding extends KubeObject { - static kind = "RoleBinding"; - static namespaced = true; - static apiBase = "/apis/rbac.authorization.k8s.io/v1/rolebindings"; + static kind = "RoleBinding" + static namespaced = true + static apiBase = "/apis/rbac.authorization.k8s.io/v1/rolebindings" - subjects?: IRoleBindingSubject[]; + subjects?: IRoleBindingSubject[] roleRef: { kind: string; name: string; apiGroup?: string; - }; + } getSubjects() { return this.subjects || []; diff --git a/src/renderer/api/endpoints/role.api.ts b/src/renderer/api/endpoints/role.api.ts index c89834ed05..400761cfbe 100644 --- a/src/renderer/api/endpoints/role.api.ts +++ b/src/renderer/api/endpoints/role.api.ts @@ -2,16 +2,16 @@ import { KubeObject } from "../kube-object"; import { KubeApi } from "../kube-api"; export class Role extends KubeObject { - static kind = "Role"; - static namespaced = true; - static apiBase = "/apis/rbac.authorization.k8s.io/v1/roles"; + static kind = "Role" + static namespaced = true + static apiBase = "/apis/rbac.authorization.k8s.io/v1/roles" rules: { verbs: string[]; apiGroups: string[]; resources: string[]; resourceNames?: string[]; - }[]; + }[] getRules() { return this.rules || []; diff --git a/src/renderer/api/endpoints/secret.api.ts b/src/renderer/api/endpoints/secret.api.ts index 16262570df..f2166abbe1 100644 --- a/src/renderer/api/endpoints/secret.api.ts +++ b/src/renderer/api/endpoints/secret.api.ts @@ -21,15 +21,15 @@ export interface ISecretRef { @autobind() export class Secret extends KubeObject { - static kind = "Secret"; - static namespaced = true; - static apiBase = "/api/v1/secrets"; + static kind = "Secret" + static namespaced = true + static apiBase = "/api/v1/secrets" type: SecretType; data: { [prop: string]: string; token?: string; - }; + } constructor(data: KubeJsonApiData) { super(data); diff --git a/src/renderer/api/endpoints/selfsubjectrulesreviews.api.ts b/src/renderer/api/endpoints/selfsubjectrulesreviews.api.ts index 149a94e678..dbb95fe5ae 100644 --- a/src/renderer/api/endpoints/selfsubjectrulesreviews.api.ts +++ b/src/renderer/api/endpoints/selfsubjectrulesreviews.api.ts @@ -21,20 +21,20 @@ export interface ISelfSubjectReviewRule { } export class SelfSubjectRulesReview extends KubeObject { - static kind = "SelfSubjectRulesReview"; - static namespaced = false; - static apiBase = "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews"; + static kind = "SelfSubjectRulesReview" + static namespaced = false + static apiBase = "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews" spec: { // todo: add more types from api docs namespace?: string; - }; + } status: { resourceRules: ISelfSubjectReviewRule[]; nonResourceRules: ISelfSubjectReviewRule[]; incomplete: boolean; - }; + } getResourceRules() { const rules = this.status && this.status.resourceRules || []; diff --git a/src/renderer/api/endpoints/service-accounts.api.ts b/src/renderer/api/endpoints/service-accounts.api.ts index 9f449cdec4..4f3ae47014 100644 --- a/src/renderer/api/endpoints/service-accounts.api.ts +++ b/src/renderer/api/endpoints/service-accounts.api.ts @@ -6,14 +6,14 @@ import { KubeApi } from "../kube-api"; export class ServiceAccount extends KubeObject { static kind = "ServiceAccount"; static namespaced = true; - static apiBase = "/api/v1/serviceaccounts"; + static apiBase = "/api/v1/serviceaccounts" secrets?: { name: string; - }[]; + }[] imagePullSecrets?: { name: string; - }[]; + }[] getSecrets() { return this.secrets || []; diff --git a/src/renderer/api/endpoints/service.api.ts b/src/renderer/api/endpoints/service.api.ts index 5524e85263..7ab2711244 100644 --- a/src/renderer/api/endpoints/service.api.ts +++ b/src/renderer/api/endpoints/service.api.ts @@ -31,9 +31,9 @@ export class ServicePort implements IServicePort { @autobind() export class Service extends KubeObject { - static kind = "Service"; - static namespaced = true; - static apiBase = "/api/v1/services"; + static kind = "Service" + static namespaced = true + static apiBase = "/api/v1/services" spec: { type: string; @@ -44,7 +44,7 @@ export class Service extends KubeObject { selector: { [key: string]: string }; ports: ServicePort[]; externalIPs?: string[]; // https://kubernetes.io/docs/concepts/services-networking/service/#external-ips - }; + } status: { loadBalancer?: { @@ -53,7 +53,7 @@ export class Service extends KubeObject { hostname?: string; }[]; }; - }; + } getClusterIp() { return this.spec.clusterIP; diff --git a/src/renderer/api/endpoints/stateful-set.api.ts b/src/renderer/api/endpoints/stateful-set.api.ts index 6a6f8c151d..119c4001b8 100644 --- a/src/renderer/api/endpoints/stateful-set.api.ts +++ b/src/renderer/api/endpoints/stateful-set.api.ts @@ -6,9 +6,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class StatefulSet extends WorkloadKubeObject { - static kind = "StatefulSet"; - static namespaced = true; - static apiBase = "/apis/apps/v1/statefulsets"; + static kind = "StatefulSet" + static namespaced = true + static apiBase = "/apis/apps/v1/statefulsets" spec: { serviceName: string; @@ -62,7 +62,7 @@ export class StatefulSet extends WorkloadKubeObject { }; }; }[]; - }; + } status: { observedGeneration: number; replicas: number; @@ -70,7 +70,7 @@ export class StatefulSet extends WorkloadKubeObject { currentRevision: string; updateRevision: string; collisionCount: number; - }; + } getImages() { const containers: IPodContainer[] = get(this, "spec.template.spec.containers", []); diff --git a/src/renderer/api/endpoints/storage-class.api.ts b/src/renderer/api/endpoints/storage-class.api.ts index adb2059e4a..2ff187698d 100644 --- a/src/renderer/api/endpoints/storage-class.api.ts +++ b/src/renderer/api/endpoints/storage-class.api.ts @@ -4,9 +4,9 @@ import { KubeApi } from "../kube-api"; @autobind() export class StorageClass extends KubeObject { - static kind = "StorageClass"; - static namespaced = false; - static apiBase = "/apis/storage.k8s.io/v1/storageclasses"; + static kind = "StorageClass" + static namespaced = false + static apiBase = "/apis/storage.k8s.io/v1/storageclasses" provisioner: string; // e.g. "storage.k8s.io/v1" mountOptions?: string[]; @@ -14,7 +14,7 @@ export class StorageClass extends KubeObject { reclaimPolicy: string; parameters: { [param: string]: string; // every provisioner has own set of these parameters - }; + } isDefault() { const annotations = this.metadata.annotations || {}; diff --git a/src/renderer/api/kube-api.ts b/src/renderer/api/kube-api.ts index d4840d3620..c95d409eac 100644 --- a/src/renderer/api/kube-api.ts +++ b/src/renderer/api/kube-api.ts @@ -62,14 +62,14 @@ export class KubeApi { return () => disposers.forEach(unwatch => unwatch()); } - readonly kind: string; - readonly apiBase: string; - readonly apiPrefix: string; - readonly apiGroup: string; - readonly apiVersion: string; + readonly kind: string + readonly apiBase: string + readonly apiPrefix: string + readonly apiGroup: string + readonly apiVersion: string readonly apiVersionPreferred?: string; - readonly apiResource: string; - readonly isNamespaced: boolean; + readonly apiResource: string + readonly isNamespaced: boolean public objectConstructor: IKubeObjectConstructor; protected request: KubeJsonApi; diff --git a/src/renderer/api/kube-object.ts b/src/renderer/api/kube-object.ts index 8d0e6123f3..6f89b6b48d 100644 --- a/src/renderer/api/kube-object.ts +++ b/src/renderer/api/kube-object.ts @@ -72,8 +72,8 @@ export class KubeObject implements ItemObject { Object.assign(this, data); } - apiVersion: string; - kind: string; + apiVersion: string + kind: string metadata: IKubeObjectMetadata; status?: any; // todo: type-safety support diff --git a/src/renderer/api/terminal-api.ts b/src/renderer/api/terminal-api.ts index 4f66544f86..bcffd316be 100644 --- a/src/renderer/api/terminal-api.ts +++ b/src/renderer/api/terminal-api.ts @@ -28,7 +28,7 @@ export type TerminalApiQuery = Record & { id: string; node?: string; type?: string | "node"; -}; +} export class TerminalApi extends WebSocketApi { protected size: { Width: number; Height: number }; diff --git a/src/renderer/bootstrap.tsx b/src/renderer/bootstrap.tsx index 7aa78f1682..35fad54719 100644 --- a/src/renderer/bootstrap.tsx +++ b/src/renderer/bootstrap.tsx @@ -18,7 +18,7 @@ import { extensionLoader } from "../extensions/extension-loader"; type AppComponent = React.ComponentType & { init?(): Promise; -}; +} export { React, diff --git a/src/renderer/components/+add-cluster/add-cluster.tsx b/src/renderer/components/+add-cluster/add-cluster.tsx index abb28d090e..62254f5804 100644 --- a/src/renderer/components/+add-cluster/add-cluster.tsx +++ b/src/renderer/components/+add-cluster/add-cluster.tsx @@ -39,10 +39,10 @@ export class AddCluster extends React.Component { @observable selectedContexts = observable.array(); @observable sourceTab = KubeConfigSourceTab.FILE; @observable kubeConfigPath = ""; - @observable customConfig = ""; - @observable proxyServer = ""; - @observable isWaiting = false; - @observable showSettings = false; + @observable customConfig = "" + @observable proxyServer = "" + @observable isWaiting = false + @observable showSettings = false @observable dropAreaActive = false; componentDidMount() { @@ -117,7 +117,7 @@ export class AddCluster extends React.Component { if (!canceled && filePaths.length) { this.setKubeConfig(filePaths[0]); } - }; + } @action addClusters = () => { @@ -183,7 +183,7 @@ export class AddCluster extends React.Component { } finally { this.isWaiting = false; } - }; + } renderInfo() { return ( @@ -328,13 +328,13 @@ export class AddCluster extends React.Component { this.setKubeConfig(userStore.kubeConfigPath); // revert to previous valid path } } - }; + } onKubeConfigTabChange = (tabId: KubeConfigSourceTab) => { this.sourceTab = tabId; this.error = ""; this.refreshContexts(); - }; + } protected formatContextLabel = ({ value: context }: SelectOption) => { const isNew = userStore.newContexts.has(context); diff --git a/src/renderer/components/+apps-helm-charts/helm-charts.tsx b/src/renderer/components/+apps-helm-charts/helm-charts.tsx index c8b5312800..27ecc4b679 100644 --- a/src/renderer/components/+apps-helm-charts/helm-charts.tsx +++ b/src/renderer/components/+apps-helm-charts/helm-charts.tsx @@ -44,11 +44,11 @@ export class HelmCharts extends Component { } })); } - }; + } hideDetails = () => { this.showDetails(null); - }; + } render() { return ( diff --git a/src/renderer/components/+apps-releases/release-details.tsx b/src/renderer/components/+apps-releases/release-details.tsx index a27db5dc83..1a8f32796a 100644 --- a/src/renderer/components/+apps-releases/release-details.tsx +++ b/src/renderer/components/+apps-releases/release-details.tsx @@ -94,13 +94,13 @@ export class ReleaseDetails extends Component { Notifications.error(err); } this.saving = false; - }; + } upgradeVersion = () => { const { release, hideDetails } = this.props; createUpgradeChartTab(release); hideDetails(); - }; + } renderValues() { const { values, saving } = this; diff --git a/src/renderer/components/+apps-releases/release-rollback-dialog.tsx b/src/renderer/components/+apps-releases/release-rollback-dialog.tsx index f1c1841775..afadaaa508 100644 --- a/src/renderer/components/+apps-releases/release-rollback-dialog.tsx +++ b/src/renderer/components/+apps-releases/release-rollback-dialog.tsx @@ -46,7 +46,7 @@ export class ReleaseRollbackDialog extends React.Component { this.revisions.replace(releases); this.revision = this.revisions[0]; this.isLoading = false; - }; + } rollback = async () => { const revisionNumber = this.revision.revision; @@ -60,7 +60,7 @@ export class ReleaseRollbackDialog extends React.Component { close = () => { ReleaseRollbackDialog.close(); - }; + } renderContent() { const { revision, revisions } = this; diff --git a/src/renderer/components/+apps-releases/releases.tsx b/src/renderer/components/+apps-releases/releases.tsx index 29dd11deb8..38e4329a8c 100644 --- a/src/renderer/components/+apps-releases/releases.tsx +++ b/src/renderer/components/+apps-releases/releases.tsx @@ -58,11 +58,11 @@ export class HelmReleases extends Component { } })); } - }; + } hideDetails = () => { this.showDetails(null); - }; + } renderRemoveDialogMessage(selectedItems: HelmRelease[]) { const releaseNames = selectedItems.map(item => item.getName()).join(", "); diff --git a/src/renderer/components/+cluster-settings/cluster-settings.tsx b/src/renderer/components/+cluster-settings/cluster-settings.tsx index 6188e8867e..2d399ec0fb 100644 --- a/src/renderer/components/+cluster-settings/cluster-settings.tsx +++ b/src/renderer/components/+cluster-settings/cluster-settings.tsx @@ -45,7 +45,7 @@ export class ClusterSettings extends React.Component { await requestMain(clusterActivateHandler, this.cluster.id); await requestMain(clusterRefreshHandler, this.cluster.id); } - }; + } render() { const cluster = this.cluster; diff --git a/src/renderer/components/+cluster-settings/components/cluster-home-dir-setting.tsx b/src/renderer/components/+cluster-settings/components/cluster-home-dir-setting.tsx index 35c18cc5e5..965333d4db 100644 --- a/src/renderer/components/+cluster-settings/components/cluster-home-dir-setting.tsx +++ b/src/renderer/components/+cluster-settings/components/cluster-home-dir-setting.tsx @@ -27,7 +27,7 @@ export class ClusterHomeDirSetting extends React.Component { onChange = (value: string) => { this.directory = value; - }; + } render() { return ( diff --git a/src/renderer/components/+cluster-settings/components/cluster-name-setting.tsx b/src/renderer/components/+cluster-settings/components/cluster-name-setting.tsx index 631c6d54ef..54d76c08eb 100644 --- a/src/renderer/components/+cluster-settings/components/cluster-name-setting.tsx +++ b/src/renderer/components/+cluster-settings/components/cluster-name-setting.tsx @@ -28,7 +28,7 @@ export class ClusterNameSetting extends React.Component { onChange = (value: string) => { this.name = value; - }; + } render() { return ( diff --git a/src/renderer/components/+cluster-settings/components/cluster-prometheus-setting.tsx b/src/renderer/components/+cluster-settings/components/cluster-prometheus-setting.tsx index d3bc9b4e46..d66f555410 100644 --- a/src/renderer/components/+cluster-settings/components/cluster-prometheus-setting.tsx +++ b/src/renderer/components/+cluster-settings/components/cluster-prometheus-setting.tsx @@ -60,13 +60,13 @@ export class ClusterPrometheusSetting extends React.Component { port: parseInt(parsed[2]), prefix: apiPrefix }; - }; + } onSaveProvider = () => { this.props.cluster.preferences.prometheusProvider = this.provider ? { type: this.provider } : null; - }; + } onSavePath = () => { this.props.cluster.preferences.prometheus = this.parsePrometheusPath(); diff --git a/src/renderer/components/+cluster-settings/components/cluster-proxy-setting.tsx b/src/renderer/components/+cluster-settings/components/cluster-proxy-setting.tsx index d43f571495..8409cc5bde 100644 --- a/src/renderer/components/+cluster-settings/components/cluster-proxy-setting.tsx +++ b/src/renderer/components/+cluster-settings/components/cluster-proxy-setting.tsx @@ -28,7 +28,7 @@ export class ClusterProxySetting extends React.Component { onChange = (value: string) => { this.proxy = value; - }; + } render() { return ( diff --git a/src/renderer/components/+cluster/cluster.store.ts b/src/renderer/components/+cluster/cluster.store.ts index 63d8f07b3b..7c61a3579e 100644 --- a/src/renderer/components/+cluster/cluster.store.ts +++ b/src/renderer/components/+cluster/cluster.store.ts @@ -18,7 +18,7 @@ export enum MetricNodeRole { @autobind() export class ClusterStore extends KubeObjectStore { - api = clusterApi; + api = clusterApi @observable metrics: Partial = {}; @observable liveMetrics: Partial = {}; diff --git a/src/renderer/components/+config-autoscalers/hpa.store.ts b/src/renderer/components/+config-autoscalers/hpa.store.ts index 478c2ca563..240f42a309 100644 --- a/src/renderer/components/+config-autoscalers/hpa.store.ts +++ b/src/renderer/components/+config-autoscalers/hpa.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class HPAStore extends KubeObjectStore { - api = hpaApi; + api = hpaApi } export const hpaStore = new HPAStore(); diff --git a/src/renderer/components/+config-maps/config-map-details.tsx b/src/renderer/components/+config-maps/config-map-details.tsx index bd796a2323..2a692e0e09 100644 --- a/src/renderer/components/+config-maps/config-map-details.tsx +++ b/src/renderer/components/+config-maps/config-map-details.tsx @@ -47,7 +47,7 @@ export class ConfigMapDetails extends React.Component { } finally { this.isSaving = false; } - }; + } render() { const { object: configMap } = this.props; diff --git a/src/renderer/components/+config-maps/config-maps.store.ts b/src/renderer/components/+config-maps/config-maps.store.ts index 23a80a9f4a..d6dcc5f916 100644 --- a/src/renderer/components/+config-maps/config-maps.store.ts +++ b/src/renderer/components/+config-maps/config-maps.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class ConfigMapsStore extends KubeObjectStore { - api = configMapApi; + api = configMapApi } export const configMapsStore = new ConfigMapsStore(); diff --git a/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.store.ts b/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.store.ts index 0f0d79ab2d..1eca71e1ba 100644 --- a/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.store.ts +++ b/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class PodDisruptionBudgetsStore extends KubeObjectStore { - api = pdbApi; + api = pdbApi } export const podDisruptionBudgetsStore = new PodDisruptionBudgetsStore(); diff --git a/src/renderer/components/+config-resource-quotas/add-quota-dialog.tsx b/src/renderer/components/+config-resource-quotas/add-quota-dialog.tsx index 3759958750..02cb2110f6 100644 --- a/src/renderer/components/+config-resource-quotas/add-quota-dialog.tsx +++ b/src/renderer/components/+config-resource-quotas/add-quota-dialog.tsx @@ -45,7 +45,7 @@ export class AddQuotaDialog extends React.Component { "count/deployments.extensions": "", }; - public defaultNamespace = "default"; + public defaultNamespace = "default" @observable quotaName = ""; @observable quotaSelectValue = ""; @@ -83,11 +83,11 @@ export class AddQuotaDialog extends React.Component { if (!this.quotaSelectValue) return; this.quotas[this.quotaSelectValue] = this.quotaInputValue; this.quotaInputValue = ""; - }; + } close = () => { AddQuotaDialog.close(); - }; + } reset = () => { this.quotaName = ""; @@ -95,7 +95,7 @@ export class AddQuotaDialog extends React.Component { this.quotaInputValue = ""; this.namespace = this.defaultNamespace; this.quotas = AddQuotaDialog.defaultQuotas; - }; + } addQuota = async () => { try { @@ -113,7 +113,7 @@ export class AddQuotaDialog extends React.Component { } catch (err) { Notifications.error(err); } - }; + } onInputQuota = (evt: React.KeyboardEvent) => { switch (evt.key) { @@ -122,7 +122,7 @@ export class AddQuotaDialog extends React.Component { evt.preventDefault(); // don't submit form break; } - }; + } render() { const { ...dialogProps } = this.props; diff --git a/src/renderer/components/+config-resource-quotas/resource-quotas.store.ts b/src/renderer/components/+config-resource-quotas/resource-quotas.store.ts index 554fec891a..b5450da9cd 100644 --- a/src/renderer/components/+config-resource-quotas/resource-quotas.store.ts +++ b/src/renderer/components/+config-resource-quotas/resource-quotas.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class ResourceQuotasStore extends KubeObjectStore { - api = resourceQuotaApi; + api = resourceQuotaApi } export const resourceQuotaStore = new ResourceQuotasStore(); diff --git a/src/renderer/components/+config-secrets/add-secret-dialog.tsx b/src/renderer/components/+config-secrets/add-secret-dialog.tsx index 8519be5bda..a1b69602b1 100644 --- a/src/renderer/components/+config-secrets/add-secret-dialog.tsx +++ b/src/renderer/components/+config-secrets/add-secret-dialog.tsx @@ -58,7 +58,7 @@ export class AddSecretDialog extends React.Component { { key: "kubernetes.io/service-account.uid", required: true } ], }, - }; + } get types() { return Object.keys(this.secretTemplate) as SecretType[]; @@ -72,11 +72,11 @@ export class AddSecretDialog extends React.Component { reset = () => { this.name = ""; this.secret = this.secretTemplate; - }; + } close = () => { AddSecretDialog.close(); - }; + } private getDataFromFields = (fields: ISecretTemplateField[] = [], processValue?: (val: string) => string) => { return fields.reduce((data, field) => { @@ -86,7 +86,7 @@ export class AddSecretDialog extends React.Component { } return data; }, {}); - }; + } createSecret = async () => { const { name, namespace, type } = this; @@ -109,18 +109,18 @@ export class AddSecretDialog extends React.Component { } catch (err) { Notifications.error(err); } - }; + } addField = (field: ISecretField) => { const fields = this.secret[this.type][field] || []; fields.push({ key: "", value: "" }); this.secret[this.type][field] = fields; - }; + } removeField = (field: ISecretField, index: number) => { const fields = this.secret[this.type][field] || []; fields.splice(index, 1); - }; + } renderFields(field: ISecretField) { const fields = this.secret[this.type][field] || []; diff --git a/src/renderer/components/+config-secrets/secret-details.tsx b/src/renderer/components/+config-secrets/secret-details.tsx index 5937737a5a..255cd3cb73 100644 --- a/src/renderer/components/+config-secrets/secret-details.tsx +++ b/src/renderer/components/+config-secrets/secret-details.tsx @@ -49,11 +49,11 @@ export class SecretDetails extends React.Component { Notifications.error(err); } this.isSaving = false; - }; + } editData = (name: string, value: string, encoded: boolean) => { this.data[name] = encoded ? value : base64.encode(value); - }; + } render() { const { object: secret } = this.props; diff --git a/src/renderer/components/+config-secrets/secrets.store.ts b/src/renderer/components/+config-secrets/secrets.store.ts index 9dfc8cb6af..df5a78b3ac 100644 --- a/src/renderer/components/+config-secrets/secrets.store.ts +++ b/src/renderer/components/+config-secrets/secrets.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class SecretsStore extends KubeObjectStore { - api = secretsApi; + api = secretsApi } export const secretsStore = new SecretsStore(); diff --git a/src/renderer/components/+custom-resources/crd.store.ts b/src/renderer/components/+custom-resources/crd.store.ts index 54e1d3df66..587fa8656d 100644 --- a/src/renderer/components/+custom-resources/crd.store.ts +++ b/src/renderer/components/+custom-resources/crd.store.ts @@ -20,7 +20,7 @@ function initStore(crd: CustomResourceDefinition) { @autobind() export class CRDStore extends KubeObjectStore { - api = crdApi; + api = crdApi constructor() { super(); diff --git a/src/renderer/components/+events/event.store.ts b/src/renderer/components/+events/event.store.ts index 484c9701c1..b40957d765 100644 --- a/src/renderer/components/+events/event.store.ts +++ b/src/renderer/components/+events/event.store.ts @@ -10,8 +10,8 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class EventStore extends KubeObjectStore { - api = eventApi; - limit = 1000; + api = eventApi + limit = 1000 protected bindWatchEventsUpdater() { return super.bindWatchEventsUpdater(5000); diff --git a/src/renderer/components/+extensions/extensions.tsx b/src/renderer/components/+extensions/extensions.tsx index 875861a8dd..df0fd0fb9b 100644 --- a/src/renderer/components/+extensions/extensions.tsx +++ b/src/renderer/components/+extensions/extensions.tsx @@ -15,7 +15,7 @@ import { extensionManager } from "../../../extensions/extension-manager"; @observer export class Extensions extends React.Component { - @observable search = ""; + @observable search = "" @computed get extensions() { const searchText = this.search.toLowerCase(); diff --git a/src/renderer/components/+namespaces/add-namespace-dialog.tsx b/src/renderer/components/+namespaces/add-namespace-dialog.tsx index a31a44de94..86e5e596cc 100644 --- a/src/renderer/components/+namespaces/add-namespace-dialog.tsx +++ b/src/renderer/components/+namespaces/add-namespace-dialog.tsx @@ -33,7 +33,7 @@ export class AddNamespaceDialog extends React.Component { close = () => { AddNamespaceDialog.close(); - }; + } addNamespace = async () => { const { namespace } = this; @@ -45,7 +45,7 @@ export class AddNamespaceDialog extends React.Component { Notifications.error(err); onError && onError(err); } - }; + } render() { const { ...dialogProps } = this.props; diff --git a/src/renderer/components/+namespaces/namespace-select.tsx b/src/renderer/components/+namespaces/namespace-select.tsx index e1c64f8342..05c2b279a0 100644 --- a/src/renderer/components/+namespaces/namespace-select.tsx +++ b/src/renderer/components/+namespaces/namespace-select.tsx @@ -62,7 +62,7 @@ export class NamespaceSelect extends React.Component { {value} ); - }; + } render() { const { className, showIcons, showClusterOption, clusterOptionLabel, customizeOptions, ...selectProps } = this.props; diff --git a/src/renderer/components/+network-endpoints/endpoints.store.ts b/src/renderer/components/+network-endpoints/endpoints.store.ts index d61a12126e..5d4a6b6ff7 100644 --- a/src/renderer/components/+network-endpoints/endpoints.store.ts +++ b/src/renderer/components/+network-endpoints/endpoints.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class EndpointStore extends KubeObjectStore { - api = endpointApi; + api = endpointApi } export const endpointStore = new EndpointStore(); diff --git a/src/renderer/components/+network-policies/network-policy.store.ts b/src/renderer/components/+network-policies/network-policy.store.ts index e33a17fa09..0f37de3ac0 100644 --- a/src/renderer/components/+network-policies/network-policy.store.ts +++ b/src/renderer/components/+network-policies/network-policy.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class NetworkPolicyStore extends KubeObjectStore { - api = networkPolicyApi; + api = networkPolicyApi } export const networkPolicyStore = new NetworkPolicyStore(); diff --git a/src/renderer/components/+network-services/services.store.ts b/src/renderer/components/+network-services/services.store.ts index 8c6d16d746..d3e3c7b983 100644 --- a/src/renderer/components/+network-services/services.store.ts +++ b/src/renderer/components/+network-services/services.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class ServiceStore extends KubeObjectStore { - api = serviceApi; + api = serviceApi } export const serviceStore = new ServiceStore(); diff --git a/src/renderer/components/+nodes/nodes.store.ts b/src/renderer/components/+nodes/nodes.store.ts index 94fd3e4dd9..6d2a7d7829 100644 --- a/src/renderer/components/+nodes/nodes.store.ts +++ b/src/renderer/components/+nodes/nodes.store.ts @@ -6,7 +6,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class NodesStore extends KubeObjectStore { - api = nodesApi; + api = nodesApi @observable metrics: Partial = {}; @observable nodeMetrics: Partial = null; diff --git a/src/renderer/components/+pod-security-policies/pod-security-policies.store.ts b/src/renderer/components/+pod-security-policies/pod-security-policies.store.ts index 53ecde3d9d..1cb1237dd2 100644 --- a/src/renderer/components/+pod-security-policies/pod-security-policies.store.ts +++ b/src/renderer/components/+pod-security-policies/pod-security-policies.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class PodSecurityPoliciesStore extends KubeObjectStore { - api = pspApi; + api = pspApi } export const podSecurityPoliciesStore = new PodSecurityPoliciesStore(); diff --git a/src/renderer/components/+preferences/preferences.tsx b/src/renderer/components/+preferences/preferences.tsx index 78f2896a73..fa9a987c14 100644 --- a/src/renderer/components/+preferences/preferences.tsx +++ b/src/renderer/components/+preferences/preferences.tsx @@ -89,7 +89,7 @@ export class Preferences extends React.Component { this.helmLoading = true; await this.addRepo(repo); this.helmLoading = false; - }; + } formatHelmOptionLabel = ({ value: repo }: SelectOption) => { const isAdded = this.helmAddedRepos.has(repo.name); @@ -99,7 +99,7 @@ export class Preferences extends React.Component { {isAdded && } ); - }; + } render() { const { preferences } = userStore; diff --git a/src/renderer/components/+storage-classes/storage-class.store.ts b/src/renderer/components/+storage-classes/storage-class.store.ts index 9e388456a5..9ff90bc921 100644 --- a/src/renderer/components/+storage-classes/storage-class.store.ts +++ b/src/renderer/components/+storage-classes/storage-class.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class StorageClassStore extends KubeObjectStore { - api = storageClassApi; + api = storageClassApi } export const storageClassStore = new StorageClassStore(); diff --git a/src/renderer/components/+storage-volume-claims/volume-claim.store.ts b/src/renderer/components/+storage-volume-claims/volume-claim.store.ts index 8c4baaaf76..ea07c4c6c1 100644 --- a/src/renderer/components/+storage-volume-claims/volume-claim.store.ts +++ b/src/renderer/components/+storage-volume-claims/volume-claim.store.ts @@ -6,7 +6,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class VolumeClaimStore extends KubeObjectStore { - api = pvcApi; + api = pvcApi @observable metrics: IPvcMetrics = null; @action diff --git a/src/renderer/components/+storage-volumes/volumes.store.ts b/src/renderer/components/+storage-volumes/volumes.store.ts index ea61525735..f065c562c9 100644 --- a/src/renderer/components/+storage-volumes/volumes.store.ts +++ b/src/renderer/components/+storage-volumes/volumes.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class PersistentVolumesStore extends KubeObjectStore { - api = persistentVolumeApi; + api = persistentVolumeApi } export const volumesStore = new PersistentVolumesStore(); diff --git a/src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx b/src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx index 227b2d936e..2bade4b600 100644 --- a/src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx +++ b/src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx @@ -72,7 +72,7 @@ export class AddRoleBindingDialog extends React.Component { close = () => { AddRoleBindingDialog.close(); - }; + } async loadData() { const stores = [ @@ -96,13 +96,13 @@ export class AddRoleBindingDialog extends React.Component { this.bindContext = role.getNs() || ""; } } - }; + } reset = () => { this.selectedRoleId = ""; this.bindContext = ""; this.selectedAccounts.clear(); - }; + } onBindContextChange = (namespace: string) => { this.bindContext = namespace; @@ -110,7 +110,7 @@ export class AddRoleBindingDialog extends React.Component { if (this.bindContext && this.bindContext !== roleContext) { this.selectedRoleId = ""; // reset previously selected role for specific context } - }; + } createBindings = async () => { const { selectedRole, bindContext: namespace, selectedBindings, bindingName, useRoleForBindingName } = this; diff --git a/src/renderer/components/+user-management-roles-bindings/role-bindings.store.ts b/src/renderer/components/+user-management-roles-bindings/role-bindings.store.ts index ed3e1c0a4f..d990cb5378 100644 --- a/src/renderer/components/+user-management-roles-bindings/role-bindings.store.ts +++ b/src/renderer/components/+user-management-roles-bindings/role-bindings.store.ts @@ -7,7 +7,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class RoleBindingsStore extends KubeObjectStore { - api = clusterRoleBindingApi; + api = clusterRoleBindingApi subscribe() { return super.subscribe([clusterRoleBindingApi, roleBindingApi]); diff --git a/src/renderer/components/+user-management-roles/add-role-dialog.tsx b/src/renderer/components/+user-management-roles/add-role-dialog.tsx index 56766c816d..55cf790145 100644 --- a/src/renderer/components/+user-management-roles/add-role-dialog.tsx +++ b/src/renderer/components/+user-management-roles/add-role-dialog.tsx @@ -31,11 +31,11 @@ export class AddRoleDialog extends React.Component { close = () => { AddRoleDialog.close(); - }; + } reset = () => { this.roleName = ""; - }; + } createRole = async () => { try { @@ -46,7 +46,7 @@ export class AddRoleDialog extends React.Component { } catch (err) { Notifications.error(err.toString()); } - }; + } render() { const { ...dialogProps } = this.props; diff --git a/src/renderer/components/+user-management-roles/roles.store.ts b/src/renderer/components/+user-management-roles/roles.store.ts index d3f17e520c..8bba3a8a92 100644 --- a/src/renderer/components/+user-management-roles/roles.store.ts +++ b/src/renderer/components/+user-management-roles/roles.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class RolesStore extends KubeObjectStore { - api = clusterRoleApi; + api = clusterRoleApi subscribe() { return super.subscribe([roleApi, clusterRoleApi]); diff --git a/src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx b/src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx index ce677c3353..d2dc8b43a8 100644 --- a/src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx +++ b/src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx @@ -22,8 +22,8 @@ interface Props extends Partial { export class CreateServiceAccountDialog extends React.Component { @observable static isOpen = false; - @observable name = ""; - @observable namespace = "default"; + @observable name = "" + @observable namespace = "default" static open() { CreateServiceAccountDialog.isOpen = true; @@ -35,7 +35,7 @@ export class CreateServiceAccountDialog extends React.Component { close = () => { CreateServiceAccountDialog.close(); - }; + } createAccount = async () => { const { name, namespace } = this; @@ -47,7 +47,7 @@ export class CreateServiceAccountDialog extends React.Component { } catch (err) { Notifications.error(err); } - }; + } render() { const { ...dialogProps } = this.props; diff --git a/src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx b/src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx index d560cd9199..ab5f9b4519 100644 --- a/src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx +++ b/src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx @@ -42,7 +42,7 @@ export class ServiceAccountsDetails extends React.Component { return secretsStore.load({ name, namespace }).catch(_err => { return this.generateDummySecretObject(name); }); }); this.imagePullSecrets = await Promise.all(imagePullSecrets); - }); + }) renderSecrets() { const { secrets } = this; diff --git a/src/renderer/components/+user-management-service-accounts/service-accounts-secret.tsx b/src/renderer/components/+user-management-service-accounts/service-accounts-secret.tsx index ad3eec3d2e..57d05fb474 100644 --- a/src/renderer/components/+user-management-service-accounts/service-accounts-secret.tsx +++ b/src/renderer/components/+user-management-service-accounts/service-accounts-secret.tsx @@ -18,7 +18,7 @@ interface State { export class ServiceAccountsSecret extends React.Component { public state: State = { showToken: false, - }; + } renderSecretValue() { const { secret } = this.props; diff --git a/src/renderer/components/+user-management-service-accounts/service-accounts.store.ts b/src/renderer/components/+user-management-service-accounts/service-accounts.store.ts index 1d3faa6b1c..ff958567ae 100644 --- a/src/renderer/components/+user-management-service-accounts/service-accounts.store.ts +++ b/src/renderer/components/+user-management-service-accounts/service-accounts.store.ts @@ -5,7 +5,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class ServiceAccountsStore extends KubeObjectStore { - api = serviceAccountsApi; + api = serviceAccountsApi protected async createItem(params: { name: string; namespace?: string }) { await super.createItem(params); diff --git a/src/renderer/components/+whats-new/whats-new.tsx b/src/renderer/components/+whats-new/whats-new.tsx index 9b0df95d70..278483c2b4 100644 --- a/src/renderer/components/+whats-new/whats-new.tsx +++ b/src/renderer/components/+whats-new/whats-new.tsx @@ -16,7 +16,7 @@ export class WhatsNew extends React.Component { ok = () => { navigate("/"); userStore.saveLastSeenAppVersion(); - }; + } render() { const logo = require("../../components/icon/lens-logo.svg"); diff --git a/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx b/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx index 5dda5989ae..8a12acddd1 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx +++ b/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx @@ -39,18 +39,18 @@ export class CronJobTriggerDialog extends Component { close = () => { CronJobTriggerDialog.close(); - }; + } onOpen = async () => { const { cronjob } = this; this.jobName = cronjob ? cronjob.getName() + "-manual-" + Math.random().toString(36).slice(2, 7) : ""; this.jobName = this.jobName.slice(0, 63); this.ready = true; - }; + } onClose = () => { this.ready = false; - }; + } trigger = async () => { const { cronjob } = this; @@ -72,7 +72,7 @@ export class CronJobTriggerDialog extends Component { } catch (err) { Notifications.error(err); } - }; + } renderContents() { return ( diff --git a/src/renderer/components/+workloads-cronjobs/cronjob.store.ts b/src/renderer/components/+workloads-cronjobs/cronjob.store.ts index 30915f733c..2c9026107f 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjob.store.ts +++ b/src/renderer/components/+workloads-cronjobs/cronjob.store.ts @@ -6,7 +6,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class CronJobStore extends KubeObjectStore { - api = cronJobApi; + api = cronJobApi getStatuses(cronJobs?: CronJob[]) { const status = { suspended: 0, scheduled: 0 }; diff --git a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts index e21bcc7548..8e048aac8a 100644 --- a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts +++ b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts @@ -7,7 +7,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class DaemonSetStore extends KubeObjectStore { - api = daemonSetApi; + api = daemonSetApi @observable metrics: IPodMetrics = null; diff --git a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx index 92ac7cfc97..afb15973fc 100644 --- a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx @@ -39,7 +39,7 @@ export class DeploymentScaleDialog extends Component { close = () => { DeploymentScaleDialog.close(); - }; + } @computed get scaleMax() { const { currentReplicas } = this; @@ -57,15 +57,15 @@ export class DeploymentScaleDialog extends Component { }); this.desiredReplicas = this.currentReplicas; this.ready = true; - }; + } onClose = () => { this.ready = false; - }; + } onChange = (evt: React.ChangeEvent, value: number) => { this.desiredReplicas = value; - }; + } scale = async () => { const { deployment } = this; @@ -81,11 +81,11 @@ export class DeploymentScaleDialog extends Component { } catch (err) { Notifications.error(err); } - }; + } desiredReplicasUp = () => { this.desiredReplicas < this.scaleMax && this.desiredReplicas++; - }; + } desiredReplicasDown = () => { this.desiredReplicas > 1 && this.desiredReplicas--; diff --git a/src/renderer/components/+workloads-deployments/deployments.store.ts b/src/renderer/components/+workloads-deployments/deployments.store.ts index 18697eab1d..89f32c573f 100644 --- a/src/renderer/components/+workloads-deployments/deployments.store.ts +++ b/src/renderer/components/+workloads-deployments/deployments.store.ts @@ -7,7 +7,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class DeploymentStore extends KubeObjectStore { - api = deploymentApi; + api = deploymentApi @observable metrics: IPodMetrics = null; protected sortItems(items: Deployment[]) { diff --git a/src/renderer/components/+workloads-jobs/job.store.ts b/src/renderer/components/+workloads-jobs/job.store.ts index 1661ee6a62..ca3d9f1fe0 100644 --- a/src/renderer/components/+workloads-jobs/job.store.ts +++ b/src/renderer/components/+workloads-jobs/job.store.ts @@ -7,7 +7,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class JobStore extends KubeObjectStore { - api = jobApi; + api = jobApi getChildPods(job: Job): Pod[] { return podsStore.getPodsByOwner(job); diff --git a/src/renderer/components/+workloads-overview/overview-workload-status.tsx b/src/renderer/components/+workloads-overview/overview-workload-status.tsx index 127fce2778..4aa9dce6fd 100644 --- a/src/renderer/components/+workloads-overview/overview-workload-status.tsx +++ b/src/renderer/components/+workloads-overview/overview-workload-status.tsx @@ -18,7 +18,7 @@ interface Props { @observer export class OverviewWorkloadStatus extends React.Component { - @observable elem: HTMLElement; + @observable elem: HTMLElement componentDidMount() { this.elem = findDOMNode(this) as HTMLElement; diff --git a/src/renderer/components/+workloads-pods/pod-details-list.tsx b/src/renderer/components/+workloads-pods/pod-details-list.tsx index 111562d06a..d2c96f399c 100644 --- a/src/renderer/components/+workloads-pods/pod-details-list.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-list.tsx @@ -38,7 +38,7 @@ interface OptionalProps { export class PodDetailsList extends React.Component { static defaultProps: OptionalProps = { showTitle: true - }; + } private metricsWatcher = interval(120, () => { podsStore.loadKubeMetrics(this.props.owner.getNs()); @@ -49,7 +49,7 @@ export class PodDetailsList extends React.Component { [sortBy.namespace]: (pod: Pod) => pod.getNs(), [sortBy.cpu]: (pod: Pod) => podsStore.getPodKubeMetrics(pod).cpu, [sortBy.memory]: (pod: Pod) => podsStore.getPodKubeMetrics(pod).memory, - }; + } componentDidMount() { this.metricsWatcher.start(true); diff --git a/src/renderer/components/+workloads-replicasets/replicasets.store.ts b/src/renderer/components/+workloads-replicasets/replicasets.store.ts index f28c11203b..75fc99dedd 100644 --- a/src/renderer/components/+workloads-replicasets/replicasets.store.ts +++ b/src/renderer/components/+workloads-replicasets/replicasets.store.ts @@ -7,7 +7,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class ReplicaSetStore extends KubeObjectStore { - api = replicaSetApi; + api = replicaSetApi @observable metrics: IPodMetrics = null; async loadMetrics(replicaSet: ReplicaSet) { diff --git a/src/renderer/components/+workloads-replicasets/replicasets.tsx b/src/renderer/components/+workloads-replicasets/replicasets.tsx index 41e8d9a0a9..58101bc32c 100644 --- a/src/renderer/components/+workloads-replicasets/replicasets.tsx +++ b/src/renderer/components/+workloads-replicasets/replicasets.tsx @@ -32,7 +32,7 @@ export class ReplicaSets extends React.Component { [sortBy.namespace]: (replicaSet: ReplicaSet) => replicaSet.getNs(), [sortBy.age]: (replicaSet: ReplicaSet) => replicaSet.metadata.creationTimestamp, [sortBy.pods]: (replicaSet: ReplicaSet) => this.getPodsLength(replicaSet), - }; + } getPodsLength(replicaSet: ReplicaSet) { return replicaSetStore.getChildPods(replicaSet).length; diff --git a/src/renderer/components/+workloads-statefulsets/statefulset.store.ts b/src/renderer/components/+workloads-statefulsets/statefulset.store.ts index 719d253c87..77d7358224 100644 --- a/src/renderer/components/+workloads-statefulsets/statefulset.store.ts +++ b/src/renderer/components/+workloads-statefulsets/statefulset.store.ts @@ -7,7 +7,7 @@ import { apiManager } from "../../api/api-manager"; @autobind() export class StatefulSetStore extends KubeObjectStore { - api = statefulSetApi; + api = statefulSetApi @observable metrics: IPodMetrics = null; async loadMetrics(statefulSet: StatefulSet) { diff --git a/src/renderer/components/+workspaces/workspaces.tsx b/src/renderer/components/+workspaces/workspaces.tsx index 0677023b3d..0f09bfa017 100644 --- a/src/renderer/components/+workspaces/workspaces.tsx +++ b/src/renderer/components/+workspaces/workspaces.tsx @@ -55,7 +55,7 @@ export class Workspaces extends React.Component { if (workspaceStore.addWorkspace(workspace)) { this.clearEditing(id); } - }; + } addWorkspace = () => { const workspaceId = uuid(); @@ -64,12 +64,12 @@ export class Workspaces extends React.Component { name: "", description: "" })); - }; + } editWorkspace = (id: WorkspaceId) => { const workspace = workspaceStore.getById(id); this.editingWorkspaces.set(id, toJS(workspace)); - }; + } activateWorkspace = (id: WorkspaceId) => { const clusterId = workspaceStore.getById(id).lastActiveClusterId; @@ -79,7 +79,7 @@ export class Workspaces extends React.Component { clearEditing = (id: WorkspaceId) => { this.editingWorkspaces.delete(id); - }; + } removeWorkspace = (id: WorkspaceId) => { const workspace = workspaceStore.getById(id); @@ -104,7 +104,7 @@ export class Workspaces extends React.Component { ), }); - }; + } onInputKeypress = (evt: React.KeyboardEvent, workspaceId: WorkspaceId) => { if (evt.key == 'Enter') { @@ -113,7 +113,7 @@ export class Workspaces extends React.Component { evt.currentTarget.focus(); this.saveWorkspace(workspaceId); } - }; + } render() { return ( diff --git a/src/renderer/components/chart/chart.tsx b/src/renderer/components/chart/chart.tsx index 5de0c9cf44..01d16c96ec 100644 --- a/src/renderer/components/chart/chart.tsx +++ b/src/renderer/components/chart/chart.tsx @@ -51,11 +51,11 @@ const defaultProps: Partial = { export class Chart extends React.Component { static defaultProps = defaultProps as object; - private canvas = React.createRef(); - private chart: ChartJS; + private canvas = React.createRef() + private chart: ChartJS // ChartJS adds _meta field to any data object passed to it. // We clone new data prop into currentChartData to compare props and prevProps - private currentChartData: ChartData; + private currentChartData: ChartData componentDidMount() { const { showChart } = this.props; diff --git a/src/renderer/components/chart/useRealTimeMetrics.ts b/src/renderer/components/chart/useRealTimeMetrics.ts index 7983d38b00..066817ca6b 100644 --- a/src/renderer/components/chart/useRealTimeMetrics.ts +++ b/src/renderer/components/chart/useRealTimeMetrics.ts @@ -3,7 +3,7 @@ import { useState, useEffect } from "react"; import { useInterval } from "../../hooks"; type IMetricValues = [number, string][]; -type IChartData = { x: number; y: string }[]; +type IChartData = { x: number; y: string }[] const defaultParams = { fetchInterval: 15, diff --git a/src/renderer/components/cluster-manager/cluster-status.tsx b/src/renderer/components/cluster-manager/cluster-status.tsx index bd8be870c2..e0d91d3319 100644 --- a/src/renderer/components/cluster-manager/cluster-status.tsx +++ b/src/renderer/components/cluster-manager/cluster-status.tsx @@ -50,14 +50,14 @@ export class ClusterStatus extends React.Component { activateCluster = async (force = false) => { await requestMain(clusterActivateHandler, this.props.clusterId, force); - }; + } reconnect = async () => { this.authOutput = []; this.isReconnecting = true; await this.activateCluster(true); this.isReconnecting = false; - }; + } renderContent() { const { authOutput, cluster, hasErrors } = this; diff --git a/src/renderer/components/cluster-manager/clusters-menu.tsx b/src/renderer/components/cluster-manager/clusters-menu.tsx index ab608815aa..d4767a15c4 100644 --- a/src/renderer/components/cluster-manager/clusters-menu.tsx +++ b/src/renderer/components/cluster-manager/clusters-menu.tsx @@ -33,11 +33,11 @@ interface Props { export class ClustersMenu extends React.Component { showCluster = (clusterId: ClusterId) => { navigate(clusterViewURL({ params: { clusterId } })); - }; + } addCluster = () => { navigate(addClusterURL()); - }; + } showContextMenu = (cluster: Cluster) => { const { Menu, MenuItem } = remote; @@ -88,7 +88,7 @@ export class ClustersMenu extends React.Component { menu.popup({ window: remote.getCurrentWindow() }); - }; + } @autobind() swapClusterIconOrder(result: DropResult) { diff --git a/src/renderer/components/confirm-dialog/confirm-dialog.tsx b/src/renderer/components/confirm-dialog/confirm-dialog.tsx index 491ba99012..1208170a42 100644 --- a/src/renderer/components/confirm-dialog/confirm-dialog.tsx +++ b/src/renderer/components/confirm-dialog/confirm-dialog.tsx @@ -57,15 +57,15 @@ export class ConfirmDialog extends React.Component { this.isSaving = false; } this.close(); - }; + } onClose = () => { this.isSaving = false; - }; + } close = () => { ConfirmDialog.close(); - }; + } render() { const { className, ...dialogProps } = this.props; diff --git a/src/renderer/components/dialog/dialog.tsx b/src/renderer/components/dialog/dialog.tsx index 7b08ab6e5d..5a4ce48f4e 100644 --- a/src/renderer/components/dialog/dialog.tsx +++ b/src/renderer/components/dialog/dialog.tsx @@ -42,11 +42,11 @@ export class Dialog extends React.PureComponent { }; @disposeOnUnmount - closeOnNavigate = reaction(() => navigation.getPath(), () => this.close()); + closeOnNavigate = reaction(() => navigation.getPath(), () => this.close()) public state: DialogState = { isOpen: this.props.isOpen, - }; + } get elem() { return findDOMNode(this) as HTMLElement; @@ -95,7 +95,7 @@ export class Dialog extends React.PureComponent { // Using document.body target to handle keydown event before Drawer does document.body.addEventListener('keydown', this.onEscapeKey); } - }; + } onClose = () => { this.props.onClose(); @@ -103,7 +103,7 @@ export class Dialog extends React.PureComponent { if (this.elem) this.elem.removeEventListener('click', this.onClickOutside); document.body.removeEventListener('keydown', this.onEscapeKey); } - }; + } onEscapeKey = (evt: KeyboardEvent) => { const escapeKey = evt.code === "Escape"; @@ -111,7 +111,7 @@ export class Dialog extends React.PureComponent { this.close(); evt.stopPropagation(); } - }; + } onClickOutside = (evt: MouseEvent) => { const target = evt.target as HTMLElement; @@ -119,7 +119,7 @@ export class Dialog extends React.PureComponent { this.close(); evt.stopPropagation(); } - }; + } render() { const { modal, animated, pinned } = this.props; diff --git a/src/renderer/components/dialog/logs-dialog.tsx b/src/renderer/components/dialog/logs-dialog.tsx index cfb7aecbe5..67afcc7ba7 100644 --- a/src/renderer/components/dialog/logs-dialog.tsx +++ b/src/renderer/components/dialog/logs-dialog.tsx @@ -24,7 +24,7 @@ export class LogsDialog extends React.Component { if (copyToClipboard(this.logsElem)) { Notifications.ok(_i18n._(t`Logs copied to clipboard.`)); } - }; + } render() { const { title, logs, ...dialogProps } = this.props; diff --git a/src/renderer/components/dock/create-resource.tsx b/src/renderer/components/dock/create-resource.tsx index 8fa20cad3e..9d4f5c09fb 100644 --- a/src/renderer/components/dock/create-resource.tsx +++ b/src/renderer/components/dock/create-resource.tsx @@ -22,7 +22,7 @@ interface Props { @observer export class CreateResource extends React.Component { - @observable error = ""; + @observable error = "" get tabId() { return this.props.tab.id; @@ -35,7 +35,7 @@ export class CreateResource extends React.Component { onChange = (value: string, error?: string) => { createResourceStore.setData(this.tabId, value); this.error = error; - }; + } create = async () => { if (this.error) return; @@ -63,7 +63,7 @@ export class CreateResource extends React.Component { ); Notifications.ok(successMessage); return successMessage; - }; + } render() { const { tabId, data, error, create, onChange } = this; diff --git a/src/renderer/components/dock/dock.tsx b/src/renderer/components/dock/dock.tsx index 112a02b09b..70ac2a2a84 100644 --- a/src/renderer/components/dock/dock.tsx +++ b/src/renderer/components/dock/dock.tsx @@ -42,13 +42,13 @@ export class Dock extends React.Component { if (selectedTab.pinned) close(); else closeTab(selectedTab.id); } - }; + } onChangeTab = (tab: IDockTab) => { const { open, selectTab } = dockStore; open(); selectTab(tab.id); - }; + } @autobind() renderTab(tab: IDockTab) { diff --git a/src/renderer/components/dock/edit-resource.tsx b/src/renderer/components/dock/edit-resource.tsx index 471a6aa75c..5e33c3668d 100644 --- a/src/renderer/components/dock/edit-resource.tsx +++ b/src/renderer/components/dock/edit-resource.tsx @@ -62,7 +62,7 @@ export class EditResource extends React.Component { onChange = (draft: string, error?: string) => { this.error = error; this.saveDraft(draft); - }; + } save = async () => { if (this.error) { @@ -79,7 +79,7 @@ export class EditResource extends React.Component { {resourceType} {resourceName} updated.

); - }; + } render() { const { tabId, resource, tabData, error, onChange, save } = this; diff --git a/src/renderer/components/dock/editor-panel.tsx b/src/renderer/components/dock/editor-panel.tsx index 8dee3ffa96..db718f27a2 100644 --- a/src/renderer/components/dock/editor-panel.tsx +++ b/src/renderer/components/dock/editor-panel.tsx @@ -21,7 +21,7 @@ export class EditorPanel extends React.Component { public editor: AceEditor; - @observable yamlError = ""; + @observable yamlError = "" componentDidMount() { // validate and run callback with optional error @@ -44,23 +44,23 @@ export class EditorPanel extends React.Component { onTabChange = () => { this.editor.focus(); - }; + } onResize = () => { this.editor.resize(); this.editor.focus(); - }; + } onCursorPosChange = (pos: Ace.Point) => { EditorPanel.cursorPos.setData(this.props.tabId, pos); - }; + } onChange = (value: string) => { this.validate(value); if (this.props.onChange) { this.props.onChange(value, this.yamlError); } - }; + } render() { const { value, tabId } = this.props; diff --git a/src/renderer/components/dock/info-panel.tsx b/src/renderer/components/dock/info-panel.tsx index 0404cc5981..1500dbae2d 100644 --- a/src/renderer/components/dock/info-panel.tsx +++ b/src/renderer/components/dock/info-panel.tsx @@ -38,7 +38,7 @@ export class InfoPanel extends Component { showSubmitClose: true, showInlineInfo: true, showNotifications: true, - }; + } @observable error = ""; @observable waiting = false; @@ -66,16 +66,16 @@ export class InfoPanel extends Component { } finally { this.waiting = false; } - }; + } submitAndClose = async () => { await this.submit(); this.close(); - }; + } close = () => { dockStore.closeTab(this.props.tabId); - }; + } renderErrorIcon() { if (!this.props.showInlineInfo || !this.errorInfo) { diff --git a/src/renderer/components/dock/install-chart.tsx b/src/renderer/components/dock/install-chart.tsx index 0c0713007d..388c6a2d94 100644 --- a/src/renderer/components/dock/install-chart.tsx +++ b/src/renderer/components/dock/install-chart.tsx @@ -103,7 +103,7 @@ export class InstallChart extends Component { return (

Chart Release {details.release.name} successfully created.

); - }; + } render() { const { tabId, chartData, values, versions, install } = this; diff --git a/src/renderer/components/dock/pod-logs.store.ts b/src/renderer/components/dock/pod-logs.store.ts index 6d2fae1545..3d6e0abf00 100644 --- a/src/renderer/components/dock/pod-logs.store.ts +++ b/src/renderer/components/dock/pod-logs.store.ts @@ -78,7 +78,7 @@ export class PodLogsStore extends DockTabStore { this.refresher.stop(); this.logs.set(tabId, message); } - }; + } /** * Function is used to refreser/stream-like requests. @@ -94,7 +94,7 @@ export class PodLogsStore extends DockTabStore { }); // Add newly received logs to bottom this.logs.set(tabId, [...oldLogs, ...logs]); - }; + } /** * Main logs loading function adds necessary data to payload and makes @@ -119,7 +119,7 @@ export class PodLogsStore extends DockTabStore { logs.pop(); // Remove last empty element return logs; }); - }; + } /** * Sets newLogSince separator timestamp to split old logs from new ones diff --git a/src/renderer/components/dock/pod-logs.tsx b/src/renderer/components/dock/pod-logs.tsx index 1e7d7e4a14..a3fb4070c8 100644 --- a/src/renderer/components/dock/pod-logs.tsx +++ b/src/renderer/components/dock/pod-logs.tsx @@ -79,13 +79,13 @@ export class PodLogs extends React.Component { this.ready = false; await podLogsStore.load(this.tabId); this.ready = true; - }; + } reload = async () => { podLogsStore.clearLogs(this.tabId); this.lastLineIsShown = true; await this.load(); - }; + } /** * Function loads more logs (usually after user scrolls to top) and sets proper @@ -101,7 +101,7 @@ export class PodLogs extends React.Component { // Set scroll position back to place where preloading started this.logsElement.current.scrollTop = (podLogsStore.lines - lines) * lineHeight; } - }; + } /** * A function for various actions after search is happened @@ -167,7 +167,7 @@ export class PodLogs extends React.Component { this.showJumpToBottom = true; } } - }; + } @action scrollToBottom = () => { @@ -177,7 +177,7 @@ export class PodLogs extends React.Component { this.showJumpToBottom = false; // Showing horizontal scrollbar after VirtualList settles down setTimeout(() => this.hideHorizontalScroll = false, 500); - }; + } /** * A function is called by VirtualList for rendering each of the row @@ -221,7 +221,7 @@ export class PodLogs extends React.Component { )} ); - }; + } renderJumpToBottom() { if (!this.logsElement) return null; diff --git a/src/renderer/components/dock/terminal.ts b/src/renderer/components/dock/terminal.ts index d0009f3c8b..167fdbe20d 100644 --- a/src/renderer/components/dock/terminal.ts +++ b/src/renderer/components/dock/terminal.ts @@ -132,39 +132,39 @@ export class Terminal { focus = () => { this.xterm.focus(); - }; + } onApiData = (data: string) => { this.xterm.write(data); - }; + } onData = (data: string) => { if (!this.api.isReady) return; this.api.sendCommand(data); - }; + } onScroll = () => { this.scrollPos = this.viewport.scrollTop; - }; + } onClear = () => { this.xterm.clear(); - }; + } onResize = () => { this.fitLazy(); this.focus(); - }; + } onActivate = () => { this.fit(); setTimeout(() => this.focus(), 250); // delay used to prevent focus on active tab this.viewport.scrollTop = this.scrollPos; // restore last scroll position - }; + } onClickLink = (evt: MouseEvent, link: string) => { window.open(link, "_blank"); - }; + } keyHandler = (evt: KeyboardEvent): boolean => { const { code, ctrlKey, type } = evt; @@ -190,7 +190,7 @@ export class Terminal { } return true; - }; + } } Terminal.init(); diff --git a/src/renderer/components/dock/upgrade-chart.tsx b/src/renderer/components/dock/upgrade-chart.tsx index 0f9ed625ce..6fb50e90bc 100644 --- a/src/renderer/components/dock/upgrade-chart.tsx +++ b/src/renderer/components/dock/upgrade-chart.tsx @@ -62,7 +62,7 @@ export class UpgradeChart extends React.Component { onChange = (value: string, error?: string) => { upgradeChartStore.values.setData(this.tabId, value); this.error = error; - }; + } upgrade = async () => { if (this.error) return; @@ -79,13 +79,13 @@ export class UpgradeChart extends React.Component { Release {releaseName} successfully upgraded to version {version}

); - }; + } formatVersionLabel = ({ value }: SelectOption) => { const chartName = this.release.getChart(); const { repo, version } = value; return `${repo}/${chartName}-${version}`; - }; + } render() { const { tabId, release, value, error, onChange, upgrade, versions, version } = this; diff --git a/src/renderer/components/drawer/drawer-param-toggler.tsx b/src/renderer/components/drawer/drawer-param-toggler.tsx index 181965e848..c4ec8fe1a3 100644 --- a/src/renderer/components/drawer/drawer-param-toggler.tsx +++ b/src/renderer/components/drawer/drawer-param-toggler.tsx @@ -13,11 +13,11 @@ interface State { open?: boolean; } export class DrawerParamToggler extends React.Component { - public state: State = {}; + public state: State = {} toggle = () => { this.setState({ open: !this.state.open }); - }; + } render() { const { label, children } = this.props; diff --git a/src/renderer/components/drawer/drawer.tsx b/src/renderer/components/drawer/drawer.tsx index 0c425c1624..7d3bb977db 100644 --- a/src/renderer/components/drawer/drawer.tsx +++ b/src/renderer/components/drawer/drawer.tsx @@ -30,9 +30,9 @@ const defaultProps: Partial = { export class Drawer extends React.Component { static defaultProps = defaultProps as object; - private mouseDownTarget: HTMLElement; - private contentElem: HTMLElement; - private scrollElem: HTMLElement; + private mouseDownTarget: HTMLElement + private contentElem: HTMLElement + private scrollElem: HTMLElement private scrollPos = new Map(); private stopListenLocation = history.listen(() => { @@ -57,13 +57,13 @@ export class Drawer extends React.Component { if (!this.scrollElem) return; const key = history.location.key; this.scrollPos.set(key, this.scrollElem.scrollTop); - }; + } restoreScrollPos = () => { if (!this.scrollElem) return; const key = history.location.key; this.scrollElem.scrollTop = this.scrollPos.get(key) || 0; - }; + } onEscapeKey = (evt: KeyboardEvent) => { if (!this.props.open) { @@ -72,7 +72,7 @@ export class Drawer extends React.Component { if (evt.code === "Escape") { this.close(); } - }; + } onClickOutside = (evt: MouseEvent) => { const { contentElem, mouseDownTarget, close, props: { open } } = this; @@ -85,18 +85,18 @@ export class Drawer extends React.Component { close(); } this.mouseDownTarget = null; - }; + } onMouseDown = (evt: MouseEvent) => { if (this.props.open) { this.mouseDownTarget = evt.target as HTMLElement; } - }; + } close = () => { const { open, onClose } = this.props; if (open) onClose(); - }; + } render() { const { open, position, title, animation, children, toolbar, size, usePortal } = this.props; diff --git a/src/renderer/components/error-boundary/error-boundary.tsx b/src/renderer/components/error-boundary/error-boundary.tsx index 87a214ff67..81f9de3784 100644 --- a/src/renderer/components/error-boundary/error-boundary.tsx +++ b/src/renderer/components/error-boundary/error-boundary.tsx @@ -25,7 +25,7 @@ export class ErrorBoundary extends React.Component { resetOnNavigate = reaction( () => navigation.getPath(), () => this.setState({ error: null, errorInfo: null }) - ); + ) componentDidCatch(error: Error, errorInfo: ErrorInfo) { this.setState({ error, errorInfo }); @@ -33,7 +33,7 @@ export class ErrorBoundary extends React.Component { back = () => { navigation.goBack(); - }; + } render() { const { error, errorInfo } = this.state; diff --git a/src/renderer/components/input/file-input.tsx b/src/renderer/components/input/file-input.tsx index 1293163797..c3356b04f1 100644 --- a/src/renderer/components/input/file-input.tsx +++ b/src/renderer/components/input/file-input.tsx @@ -24,7 +24,7 @@ export class FileInput extends React.Component { selectFiles = () => { this.input.click(); // opens system dialog for selecting files - }; + } protected onChange = async (evt: React.ChangeEvent) => { const fileList = Array.from(evt.target.files); @@ -49,7 +49,7 @@ export class FileInput extends React.Component { selectedFiles = await Promise.all(readingFiles); } this.props.onSelectFiles(...selectedFiles); - }; + } render() { const { onSelectFiles, readAsText, ...props } = this.props; diff --git a/src/renderer/components/input/input.tsx b/src/renderer/components/input/input.tsx index e61ecc3020..256b74ab0c 100644 --- a/src/renderer/components/input/input.tsx +++ b/src/renderer/components/input/input.tsx @@ -31,7 +31,7 @@ export type InputProps = Omit): void; onSubmit?(value: T): void; -}; +} interface State { focused?: boolean; @@ -59,7 +59,7 @@ export class Input extends React.Component { dirty: !!this.props.dirty, valid: true, errors: [], - }; + } setValue(value: string) { if (value !== this.getValue()) { diff --git a/src/renderer/components/input/search-input-url.tsx b/src/renderer/components/input/search-input-url.tsx index 854adc1024..d05fcf116c 100644 --- a/src/renderer/components/input/search-input-url.tsx +++ b/src/renderer/components/input/search-input-url.tsx @@ -15,25 +15,25 @@ export class SearchInputUrl extends React.Component { @observable inputVal = ""; // fix: use empty string to avoid react warnings @disposeOnUnmount - updateInput = autorun(() => this.inputVal = getSearch()); - updateUrl = debounce((val: string) => setSearch(val), 250); + updateInput = autorun(() => this.inputVal = getSearch()) + updateUrl = debounce((val: string) => setSearch(val), 250) setValue = (value: string) => { this.inputVal = value; this.updateUrl(value); - }; + } clear = () => { this.setValue(""); this.updateUrl.flush(); - }; + } onChange = (val: string, evt: React.ChangeEvent) => { this.setValue(val); if (this.props.onChange) { this.props.onChange(val, evt); } - }; + } render() { const { inputVal } = this; diff --git a/src/renderer/components/input/search-input.tsx b/src/renderer/components/input/search-input.tsx index 9c9530030b..26852ffd8a 100644 --- a/src/renderer/components/input/search-input.tsx +++ b/src/renderer/components/input/search-input.tsx @@ -40,11 +40,11 @@ export class SearchInput extends React.Component { if (this.props.onClear) { this.props.onClear(); } - }; + } onChange = (val: string, evt: React.ChangeEvent) => { this.props.onChange(val, evt); - }; + } onKeyDown = (evt: React.KeyboardEvent) => { if (this.props.onKeyDown) { @@ -56,7 +56,7 @@ export class SearchInput extends React.Component { this.clear(); evt.stopPropagation(); } - }; + } @autobind() focus(evt: KeyboardEvent) { diff --git a/src/renderer/components/item-object-list/item-list-layout.tsx b/src/renderer/components/item-object-list/item-list-layout.tsx index 9fbcb54add..045b1f86d4 100644 --- a/src/renderer/components/item-object-list/item-list-layout.tsx +++ b/src/renderer/components/item-object-list/item-list-layout.tsx @@ -154,7 +154,7 @@ export class ItemListLayout extends React.Component { } return items; }, - }; + } @computed get isReady() { const { isReady, store } = this.props; diff --git a/src/renderer/components/item-object-list/page-filters-list.tsx b/src/renderer/components/item-object-list/page-filters-list.tsx index 492dffe20a..f73ce3bfa0 100644 --- a/src/renderer/components/item-object-list/page-filters-list.tsx +++ b/src/renderer/components/item-object-list/page-filters-list.tsx @@ -18,10 +18,10 @@ export class PageFiltersList extends React.Component { get filters() { return pageFilters.activeFilters; } - }; + } - reset = () => pageFilters.reset(); - remove = (filter: Filter) => pageFilters.removeFilter(filter); + reset = () => pageFilters.reset() + remove = (filter: Filter) => pageFilters.removeFilter(filter) renderContent() { const { filters } = this.props; diff --git a/src/renderer/components/item-object-list/page-filters-select.tsx b/src/renderer/components/item-object-list/page-filters-select.tsx index 3727d1824a..25b3eae8fd 100644 --- a/src/renderer/components/item-object-list/page-filters-select.tsx +++ b/src/renderer/components/item-object-list/page-filters-select.tsx @@ -26,7 +26,7 @@ export class PageFiltersSelect extends React.Component { static defaultProps: Props = { allowEmpty: true, disableFilters: {}, - }; + } @computed get groupedOptions() { const options: GroupSelectOption[] = []; @@ -65,7 +65,7 @@ export class PageFiltersSelect extends React.Component { {selected && } ); - }; + } private onSelect = (option: SelectOptionFilter) => { const { type, value, selected } = option; @@ -77,7 +77,7 @@ export class PageFiltersSelect extends React.Component { else { removeFilter(filter); } - }; + } render() { const { groupedOptions, formatLabel, onSelect, options } = this; diff --git a/src/renderer/components/kube-object/kube-object-details.tsx b/src/renderer/components/kube-object/kube-object-details.tsx index fe5f665af1..6f04693089 100644 --- a/src/renderer/components/kube-object/kube-object-details.tsx +++ b/src/renderer/components/kube-object/kube-object-details.tsx @@ -60,7 +60,7 @@ export class KubeObjectDetails extends React.Component { } } } - }); + }) render() { const { object, isLoading, loadingError, isCrdInstance } = this; diff --git a/src/renderer/components/kube-object/kube-object-list-layout.tsx b/src/renderer/components/kube-object/kube-object-list-layout.tsx index 880c933e64..32aff7c804 100644 --- a/src/renderer/components/kube-object/kube-object-list-layout.tsx +++ b/src/renderer/components/kube-object/kube-object-list-layout.tsx @@ -25,7 +25,7 @@ export class KubeObjectListLayout extends React.Component { close = () => { KubeConfigDialog.close(); - }; + } onOpen = () => { this.loadConfig(); - }; + } async loadConfig() { const config = await this.data.loader().catch(err => { @@ -64,11 +64,11 @@ export class KubeConfigDialog extends React.Component { if (this.config && copyToClipboard(this.configTextArea)) { Notifications.ok(Config copied to clipboard); } - }; + } download = () => { downloadFile("config", this.config, "text/yaml"); - }; + } render() { const { isOpen, data = {} } = KubeConfigDialog; diff --git a/src/renderer/components/layout/main-layout.tsx b/src/renderer/components/layout/main-layout.tsx index 21eb5d882e..9eb1a29392 100755 --- a/src/renderer/components/layout/main-layout.tsx +++ b/src/renderer/components/layout/main-layout.tsx @@ -26,7 +26,7 @@ export class MainLayout extends React.Component { @observable isPinned = this.storage.get().pinnedSidebar; @observable isAccessible = true; - @observable sidebarWidth = this.storage.get().sidebarWidth; + @observable sidebarWidth = this.storage.get().sidebarWidth @disposeOnUnmount syncPinnedStateWithStorage = reaction( () => this.isPinned, @@ -49,7 +49,7 @@ export class MainLayout extends React.Component { return { "--sidebar-width": `${this.sidebarWidth}px`, }; - }; + } @autobind() adjustWidth(newWidth: number): void { diff --git a/src/renderer/components/layout/page-layout.tsx b/src/renderer/components/layout/page-layout.tsx index c99ef6bf84..86886e80ce 100644 --- a/src/renderer/components/layout/page-layout.tsx +++ b/src/renderer/components/layout/page-layout.tsx @@ -51,7 +51,7 @@ export class PageLayout extends React.Component { evt.stopPropagation(); this.back(evt); } - }; + } render() { const { diff --git a/src/renderer/components/menu/menu-actions.tsx b/src/renderer/components/menu/menu-actions.tsx index 9f6908d1e9..2568da5bdd 100644 --- a/src/renderer/components/menu/menu-actions.tsx +++ b/src/renderer/components/menu/menu-actions.tsx @@ -27,7 +27,7 @@ export class MenuActions extends React.Component { get removeConfirmationMessage() { return _i18n._(t`Remove item?`); } - }; + } public id = uniqueId("menu_actions_"); diff --git a/src/renderer/components/radio/radio.tsx b/src/renderer/components/radio/radio.tsx index 6153cb5b09..54107d4ad5 100644 --- a/src/renderer/components/radio/radio.tsx +++ b/src/renderer/components/radio/radio.tsx @@ -42,7 +42,7 @@ export type RadioProps = React.HTMLProps & { checked?: boolean; disabled?: boolean; onChange?(value: React.ChangeEvent): void; -}; +} export class Radio extends React.Component { private elem: HTMLElement; @@ -52,7 +52,7 @@ export class Radio extends React.Component { if (!checked && onChange) { onChange(value); } - }; + } onKeyDown = (e: React.KeyboardEvent) => { const SPACE_KEY = e.keyCode === 32; @@ -61,7 +61,7 @@ export class Radio extends React.Component { this.elem.click(); e.preventDefault(); } - }; + } render() { const { className, label, checked, children, ...inputProps } = this.props; diff --git a/src/renderer/components/resizing-anchor/resizing-anchor.tsx b/src/renderer/components/resizing-anchor/resizing-anchor.tsx index e481c89bd3..2ff8842eeb 100644 --- a/src/renderer/components/resizing-anchor/resizing-anchor.tsx +++ b/src/renderer/components/resizing-anchor/resizing-anchor.tsx @@ -143,7 +143,7 @@ function directionDelta(P1: number, P2: number, M: number): number | false { } export class ResizingAnchor extends React.PureComponent { - @observable lastMouseEvent?: MouseEvent; + @observable lastMouseEvent?: MouseEvent @observable.ref ref?: React.RefObject; static defaultProps = { @@ -160,8 +160,8 @@ export class ResizingAnchor extends React.PureComponent { maxExtent: Number.POSITIVE_INFINITY, minExtent: 0, placement: ResizeSide.LEADING, - }; - static IS_RESIZING = "resizing"; + } + static IS_RESIZING = "resizing" constructor(props: Props) { super(props); @@ -191,7 +191,7 @@ export class ResizingAnchor extends React.PureComponent { this.lastMouseEvent = undefined; onStart(); - }; + } calculateDelta(from: Position, to: Position): number | false { const node = this.ref.current; @@ -259,7 +259,7 @@ export class ResizingAnchor extends React.PureComponent { } else if (previousExtent >= maxExtent && maxExtent >= unboundedExtent) { onMaxExtentSubceed(); } - }, 100); + }, 100) @action onDragEnd = (_event: MouseEvent) => { @@ -267,7 +267,7 @@ export class ResizingAnchor extends React.PureComponent { document.removeEventListener("mousemove", this.onDrag); document.removeEventListener("mouseup", this.onDragEnd); document.body.classList.remove(ResizingAnchor.IS_RESIZING); - }; + } render() { const { disabled, direction, placement, onDoubleClick } = this.props; diff --git a/src/renderer/components/resource-metrics/resource-metrics.tsx b/src/renderer/components/resource-metrics/resource-metrics.tsx index 20258f30d0..3d956214a1 100644 --- a/src/renderer/components/resource-metrics/resource-metrics.tsx +++ b/src/renderer/components/resource-metrics/resource-metrics.tsx @@ -22,7 +22,7 @@ export type IResourceMetricsValue = { object: T; tabId: number; params?: P; -}; +} export const ResourceMetricsContext = createContext(null); diff --git a/src/renderer/components/select/select.tsx b/src/renderer/components/select/select.tsx index 43cdfe1464..00524c01b2 100644 --- a/src/renderer/components/select/select.tsx +++ b/src/renderer/components/select/select.tsx @@ -37,7 +37,7 @@ export class Select extends React.Component { autoConvertOptions: true, menuPortalTarget: document.body, menuPlacement: "auto", - }; + } @computed get theme() { return this.props.themeName || themeStore.activeTheme.type; diff --git a/src/renderer/components/table/table-head.tsx b/src/renderer/components/table/table-head.tsx index 7e06a48a31..eb629a4606 100644 --- a/src/renderer/components/table/table-head.tsx +++ b/src/renderer/components/table/table-head.tsx @@ -15,7 +15,7 @@ export interface TableHeadProps extends React.DOMAttributes { export class TableHead extends React.Component { static defaultProps: TableHeadProps = { sticky: true, - }; + } render() { const { className, sticky, nowrap, showTopLine, children, ...headProps } = this.props; diff --git a/src/renderer/components/table/table.tsx b/src/renderer/components/table/table.tsx index 0822beee8d..ec64be6be9 100644 --- a/src/renderer/components/table/table.tsx +++ b/src/renderer/components/table/table.tsx @@ -16,7 +16,7 @@ import { ItemObject } from "../../item.store"; export type TableSortBy = string; export type TableOrderBy = "asc" | "desc" | string; -export type TableSortParams = { sortBy: TableSortBy; orderBy: TableOrderBy }; +export type TableSortParams = { sortBy: TableSortBy; orderBy: TableOrderBy } export type TableSortCallback = (data: D) => string | number | (string | number)[]; export interface TableProps extends React.DOMAttributes { @@ -51,7 +51,7 @@ export class Table extends React.Component { rowPadding: "8px", rowLineHeight: "17px", sortSyncWithUrl: true, - }; + } @observable sortParamsLocal = this.props.sortByDefault; diff --git a/src/renderer/components/tabs/tabs.tsx b/src/renderer/components/tabs/tabs.tsx index 027631ed3d..4b611ce762 100644 --- a/src/renderer/components/tabs/tabs.tsx +++ b/src/renderer/components/tabs/tabs.tsx @@ -12,7 +12,7 @@ interface TabsContextValue { onChange?(value: D): void; } -type Omit = Pick>; +type Omit = Pick> export interface TabsProps extends TabsContextValue, Omit, "onChange"> { className?: string; diff --git a/src/renderer/components/virtual-list/virtual-list.tsx b/src/renderer/components/virtual-list/virtual-list.tsx index ed63a7a5ab..35ee54cec2 100644 --- a/src/renderer/components/virtual-list/virtual-list.tsx +++ b/src/renderer/components/virtual-list/virtual-list.tsx @@ -71,7 +71,7 @@ export class VirtualList extends Component { this.setState({ height: parentHeight, }); - }, 250); + }, 250) getItemSize = (index: number) => this.props.rowHeights[index]; @@ -81,11 +81,11 @@ export class VirtualList extends Component { const index = items.findIndex(item => item.getId() == selectedItemId); if (index === -1) return; this.listRef.current.scrollToItem(index, "start"); - }); + }) scrollToItem = (index: number, align: Align) => { this.listRef.current.scrollToItem(index, align); - }; + } render() { const { width, className, items, getRow, onScroll, outerRef } = this.props; diff --git a/src/renderer/components/wizard/wizard.tsx b/src/renderer/components/wizard/wizard.tsx index 1134bccd0a..d404f9ab6d 100755 --- a/src/renderer/components/wizard/wizard.tsx +++ b/src/renderer/components/wizard/wizard.tsx @@ -136,7 +136,7 @@ export class WizardStep extends React.Component { const next = this.props.next; @@ -167,7 +167,7 @@ export class WizardStep extends React.Component { if (!this.form.noValidate) { @@ -175,7 +175,7 @@ export class WizardStep extends React.Component { static defaultOptions: IStorageHelperOptions = { addKeyPrefix: true, useSession: false, - }; + } constructor(protected key: string, protected defaultValue?: T, protected options?: IStorageHelperOptions) { this.options = Object.assign({}, StorageHelper.defaultOptions, options);