diff --git a/.eslintrc.js b/.eslintrc.js index 3fd52c2465..d08d9549a0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -31,20 +31,20 @@ module.exports = { ], rules: { "indent": ["error", 2, { - "SwitchCase": 1, + SwitchCase: 1, }], "no-unused-vars": "off", "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": [ "warn", { - "vars": "all", - "args": "after-used", - "ignoreRestSiblings": true, + vars: "all", + args: "after-used", + ignoreRestSiblings: true, } ], "quotes": ["error", "double", { - "avoidEscape": true, - "allowTemplateLiterals": true, + avoidEscape: true, + allowTemplateLiterals: true, }], "semi": ["error", "always"], "object-shorthand": "error", @@ -52,13 +52,17 @@ module.exports = { "template-curly-spacing": "error", "padding-line-between-statements": [ "error", - { "blankLine": "always", "prev": "*", "next": "return" }, - { "blankLine": "always", "prev": "*", "next": "block-like" }, - { "blankLine": "always", "prev": "*", "next": "function" }, - { "blankLine": "always", "prev": "*", "next": "class" }, - { "blankLine": "always", "prev": ["const", "let", "var"], "next": "*" }, - { "blankLine": "any", "prev": ["const", "let", "var"], "next": ["const", "let", "var"]}, - ] + { blankLine: "always", prev: "*", next: "return" }, + { blankLine: "always", prev: "*", next: "block-like" }, + { blankLine: "always", prev: "*", next: "function" }, + { blankLine: "always", prev: "*", next: "class" }, + { blankLine: "always", prev: ["const", "let", "var"], next: "*" }, + { blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}, + ], + "no-trailing-spaces": "error", + "quote-props": ["error", "consistent-as-needed"], + "space-infix-ops": ["error", { int32Hint: false }], + "arrow-parens": ["error", "as-needed", { requireForBlockBody: true }] } }, { @@ -87,17 +91,17 @@ module.exports = { "unused-imports/no-unused-imports-ts": "error", "unused-imports/no-unused-vars-ts": [ "warn", { - "vars": "all", - "args": "after-used", - "ignoreRestSiblings": true, + vars: "all", + args: "after-used", + ignoreRestSiblings: true, } ], "indent": ["error", 2, { - "SwitchCase": 1, + SwitchCase: 1, }], "quotes": ["error", "double", { - "avoidEscape": true, - "allowTemplateLiterals": true, + avoidEscape: true, + allowTemplateLiterals: true, }], "semi": "off", "@typescript-eslint/semi": ["error"], @@ -106,13 +110,18 @@ module.exports = { "template-curly-spacing": "error", "padding-line-between-statements": [ "error", - { "blankLine": "always", "prev": "*", "next": "return" }, - { "blankLine": "always", "prev": "*", "next": "block-like" }, - { "blankLine": "always", "prev": "*", "next": "function" }, - { "blankLine": "always", "prev": "*", "next": "class" }, - { "blankLine": "always", "prev": ["const", "let", "var"], "next": "*" }, - { "blankLine": "any", "prev": ["const", "let", "var"], "next": ["const", "let", "var"]}, - ] + { blankLine: "always", prev: "*", next: "return" }, + { blankLine: "always", prev: "*", next: "block-like" }, + { blankLine: "always", prev: "*", next: "function" }, + { blankLine: "always", prev: "*", next: "class" }, + { blankLine: "always", prev: ["const", "let", "var"], next: "*" }, + { blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}, + ], + "no-trailing-spaces": "error", + "quote-props": ["error", "consistent-as-needed"], + "space-infix-ops": "off", + "@typescript-eslint/space-infix-ops": ["error", { int32Hint: false }], + "arrow-parens": ["error", "as-needed", { requireForBlockBody: true }] }, }, { @@ -148,17 +157,17 @@ module.exports = { "unused-imports/no-unused-imports-ts": "error", "unused-imports/no-unused-vars-ts": [ "warn", { - "vars": "all", - "args": "after-used", - "ignoreRestSiblings": true, + vars: "all", + args: "after-used", + ignoreRestSiblings: true, } ], "indent": ["error", 2, { - "SwitchCase": 1, + SwitchCase: 1, }], "quotes": ["error", "double", { - "avoidEscape": true, - "allowTemplateLiterals": true, + avoidEscape: true, + allowTemplateLiterals: true, }], "semi": "off", "@typescript-eslint/semi": ["error"], @@ -167,13 +176,18 @@ module.exports = { "template-curly-spacing": "error", "padding-line-between-statements": [ "error", - { "blankLine": "always", "prev": "*", "next": "return" }, - { "blankLine": "always", "prev": "*", "next": "block-like" }, - { "blankLine": "always", "prev": "*", "next": "function" }, - { "blankLine": "always", "prev": "*", "next": "class" }, - { "blankLine": "always", "prev": ["const", "let", "var"], "next": "*" }, - { "blankLine": "any", "prev": ["const", "let", "var"], "next": ["const", "let", "var"]}, - ] + { blankLine: "always", prev: "*", next: "return" }, + { blankLine: "always", prev: "*", next: "block-like" }, + { blankLine: "always", prev: "*", next: "function" }, + { blankLine: "always", prev: "*", next: "class" }, + { blankLine: "always", prev: ["const", "let", "var"], next: "*" }, + { blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}, + ], + "no-trailing-spaces": "error", + "quote-props": ["error", "consistent-as-needed"], + "space-infix-ops": "off", + "@typescript-eslint/space-infix-ops": ["error", { int32Hint: false }], + "arrow-parens": ["error", "as-needed", { requireForBlockBody: true }] }, } ] diff --git a/extensions/pod-menu/src/logs-menu.tsx b/extensions/pod-menu/src/logs-menu.tsx index dfe3870d12..2d21e4793c 100644 --- a/extensions/pod-menu/src/logs-menu.tsx +++ b/extensions/pod-menu/src/logs-menu.tsx @@ -35,7 +35,7 @@ export class PodLogsMenu extends React.Component { { - containers.map(container => { + containers.map((container) => { const { name } = container; const status = statuses.find(status => status.name === name); const brick = status ? ( diff --git a/extensions/pod-menu/src/shell-menu.tsx b/extensions/pod-menu/src/shell-menu.tsx index a93739e89f..90b0483f8c 100644 --- a/extensions/pod-menu/src/shell-menu.tsx +++ b/extensions/pod-menu/src/shell-menu.tsx @@ -48,7 +48,7 @@ export class PodShellMenu extends React.Component { { - containers.map(container => { + containers.map((container) => { const { name } = container; return ( diff --git a/extensions/telemetry/src/telemetry-preference.tsx b/extensions/telemetry/src/telemetry-preference.tsx index b1ae12e5c3..9a11384596 100644 --- a/extensions/telemetry/src/telemetry-preference.tsx +++ b/extensions/telemetry/src/telemetry-preference.tsx @@ -12,7 +12,7 @@ export class TelemetryPreferenceInput extends React.Component<{telemetry: Teleme { telemetry.enabled = v; }} + onChange={(v) => { telemetry.enabled = v; }} /> ); } diff --git a/extensions/telemetry/src/tracker.ts b/extensions/telemetry/src/tracker.ts index 398142305c..0684130cf2 100644 --- a/extensions/telemetry/src/tracker.ts +++ b/extensions/telemetry/src/tracker.ts @@ -61,12 +61,12 @@ export class Tracker extends Util.Singleton { this.disposers.push(reaction(() => App.getEnabledExtensions(), (currentExtensions) => { const removedExtensions = previousExtensions.filter(x => !currentExtensions.includes(x)); - removedExtensions.forEach(ext => { + removedExtensions.forEach((ext) => { this.event("extension", "disable", { extension: ext }); }); const newExtensions = currentExtensions.filter(x => !previousExtensions.includes(x)); - newExtensions.forEach(ext => { + newExtensions.forEach((ext) => { this.event("extension", "enable", { extension: ext }); }); previousExtensions = currentExtensions; @@ -91,7 +91,7 @@ export class Tracker extends Util.Singleton { if (this.reportInterval) { clearInterval(this.reportInterval); } - this.disposers.forEach(disposer => { + this.disposers.forEach((disposer) => { disposer(); }); } diff --git a/integration/helpers/utils.ts b/integration/helpers/utils.ts index f445a9ae48..736243e750 100644 --- a/integration/helpers/utils.ts +++ b/integration/helpers/utils.ts @@ -1,9 +1,9 @@ import { Application } from "spectron"; const AppPaths: Partial> = { - "win32": "./dist/win-unpacked/Lens.exe", - "linux": "./dist/linux-unpacked/kontena-lens", - "darwin": "./dist/mac/Lens.app/Contents/MacOS/Lens", + win32: "./dist/win-unpacked/Lens.exe", + linux: "./dist/linux-unpacked/kontena-lens", + darwin: "./dist/mac/Lens.app/Contents/MacOS/Lens", }; export function itIf(condition: boolean) { diff --git a/package.json b/package.json index b2c1619f95..c30c583ef0 100644 --- a/package.json +++ b/package.json @@ -320,8 +320,8 @@ "@types/webpack-dev-server": "^3.11.1", "@types/webpack-env": "^1.15.2", "@types/webpack-node-externals": "^1.7.1", - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", + "@typescript-eslint/eslint-plugin": "^4.9.0", + "@typescript-eslint/parser": "^4.9.0", "ace-builds": "^1.4.11", "ansi_up": "^4.0.4", "babel-core": "^7.0.0-beta.3", diff --git a/src/common/__tests__/cluster-store.test.ts b/src/common/__tests__/cluster-store.test.ts index fcbd5ebd6b..bb5f7901a6 100644 --- a/src/common/__tests__/cluster-store.test.ts +++ b/src/common/__tests__/cluster-store.test.ts @@ -27,7 +27,7 @@ describe("empty config", () => { beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({}) } }; @@ -167,7 +167,7 @@ describe("config with existing clusters", () => { beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({ __internal__: { migrations: { @@ -251,7 +251,7 @@ describe("pre 2.0 config with an existing cluster", () => { beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({ __internal__: { migrations: { @@ -284,7 +284,7 @@ describe("pre 2.6.0 config with a cluster that has arrays in auth config", () => beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({ __internal__: { migrations: { @@ -322,7 +322,7 @@ describe("pre 2.6.0 config with a cluster icon", () => { beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({ __internal__: { migrations: { @@ -364,7 +364,7 @@ describe("for a pre 2.7.0-beta.0 config without a workspace", () => { beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({ __internal__: { migrations: { @@ -402,7 +402,7 @@ describe("pre 3.6.0-beta.1 config with an existing cluster", () => { beforeEach(() => { ClusterStore.resetInstance(); const mockOpts = { - "tmp": { + tmp: { "lens-cluster-store.json": JSON.stringify({ __internal__: { migrations: { diff --git a/src/common/__tests__/user-store.test.ts b/src/common/__tests__/user-store.test.ts index 08ca359ce5..7897917525 100644 --- a/src/common/__tests__/user-store.test.ts +++ b/src/common/__tests__/user-store.test.ts @@ -81,7 +81,7 @@ describe("user store tests", () => { beforeEach(() => { UserStore.resetInstance(); mockFs({ - "tmp": { + tmp: { "config.json": JSON.stringify({ user: { username: "foobar" }, preferences: { colorTheme: "light" }, diff --git a/src/common/cluster-store.ts b/src/common/cluster-store.ts index d8bd28f1e8..127c92f974 100644 --- a/src/common/cluster-store.ts +++ b/src/common/cluster-store.ts @@ -196,7 +196,7 @@ export class ClusterStore extends BaseStore { } @computed get enabledClustersList(): Cluster[] { - return this.clustersList.filter((c) => c.enabled); + return this.clustersList.filter(c => c.enabled); } @computed get active(): Cluster | null { @@ -204,7 +204,7 @@ export class ClusterStore extends BaseStore { } @computed get connectedClustersList(): Cluster[] { - return this.clustersList.filter((c) => !c.disconnected); + return this.clustersList.filter(c => !c.disconnected); } isActive(id: ClusterId) { @@ -254,7 +254,7 @@ export class ClusterStore extends BaseStore { addClusters(...models: ClusterModel[]): Cluster[] { const clusters: Cluster[] = []; - models.forEach(model => { + models.forEach((model) => { clusters.push(this.addCluster(model)); }); @@ -303,7 +303,7 @@ export class ClusterStore extends BaseStore { @action removeByWorkspaceId(workspaceId: string) { - this.getByWorkspaceId(workspaceId).forEach(cluster => { + this.getByWorkspaceId(workspaceId).forEach((cluster) => { this.removeById(cluster.id); }); } @@ -331,7 +331,7 @@ export class ClusterStore extends BaseStore { } // update removed clusters - currentClusters.forEach(cluster => { + currentClusters.forEach((cluster) => { if (!newClusters.has(cluster.id)) { removedClusters.set(cluster.id, cluster); } diff --git a/src/common/custom-errors.ts b/src/common/custom-errors.ts index 9bcf3a998a..08b92cd46a 100644 --- a/src/common/custom-errors.ts +++ b/src/common/custom-errors.ts @@ -6,7 +6,7 @@ export class ExecValidationNotFoundError extends Error { if (!isAbsolute) { message += ` Please ensure binary is found in PATH or use absolute path to binary in Kubeconfig`; } - this.message = message; + this.message = message; this.name = this.constructor.name; Error.captureStackTrace(this, this.constructor); } diff --git a/src/common/ipc.ts b/src/common/ipc.ts index 628aa503f8..d27299f3b6 100644 --- a/src/common/ipc.ts +++ b/src/common/ipc.ts @@ -17,7 +17,7 @@ export async function requestMain(channel: string, ...args: any[]) { async function getSubFrames(): Promise { const subFrames: number[] = []; - clusterFrameMap.forEach(frameId => { + clusterFrameMap.forEach((frameId) => { subFrames.push(frameId); }); @@ -29,7 +29,7 @@ export function broadcastMessage(channel: string, ...args: any[]) { if (!views) return; - views.forEach(webContent => { + views.forEach((webContent) => { const type = webContent.getType(); logger.silly(`[IPC]: broadcasting "${channel}" to ${type}=${webContent.id}`, { args }); @@ -38,7 +38,7 @@ export function broadcastMessage(channel: string, ...args: any[]) { frames.map((frameId) => { webContent.sendToFrame(frameId, channel, ...args); }); - }).catch((e) => e); + }).catch(e => e); }); if (ipcRenderer) { diff --git a/src/common/kube-helpers.ts b/src/common/kube-helpers.ts index bb0e6b86d2..cadd743b65 100644 --- a/src/common/kube-helpers.ts +++ b/src/common/kube-helpers.ts @@ -66,7 +66,7 @@ export function splitConfig(kubeConfig: KubeConfig): KubeConfig[] { if (!kubeConfig.contexts) { return configs; } - kubeConfig.contexts.forEach(ctx => { + kubeConfig.contexts.forEach((ctx) => { const kc = new KubeConfig(); kc.clusters = [kubeConfig.getCluster(ctx.cluster)].filter(n => n); @@ -82,22 +82,22 @@ export function splitConfig(kubeConfig: KubeConfig): KubeConfig[] { export function dumpConfigYaml(kubeConfig: Partial): string { const config = { - apiVersion: "v1", - kind: "Config", - preferences: {}, + "apiVersion": "v1", + "kind": "Config", + "preferences": {}, "current-context": kubeConfig.currentContext, - clusters: kubeConfig.clusters.map(cluster => { + "clusters": kubeConfig.clusters.map((cluster) => { return { name: cluster.name, cluster: { "certificate-authority-data": cluster.caData, "certificate-authority": cluster.caFile, - server: cluster.server, + "server": cluster.server, "insecure-skip-tls-verify": cluster.skipTLSVerify } }; }), - contexts: kubeConfig.contexts.map(context => { + "contexts": kubeConfig.contexts.map((context) => { return { name: context.name, context: { @@ -107,7 +107,7 @@ export function dumpConfigYaml(kubeConfig: Partial): string { } }; }), - users: kubeConfig.users.map(user => { + "users": kubeConfig.users.map((user) => { return { name: user.name, user: { @@ -116,10 +116,10 @@ export function dumpConfigYaml(kubeConfig: Partial): string { "client-key-data": user.keyData, "client-key": user.keyFile, "auth-provider": user.authProvider, - exec: user.exec, - token: user.token, - username: user.username, - password: user.password + "exec": user.exec, + "token": user.token, + "username": user.username, + "password": user.password } }; }) @@ -133,7 +133,7 @@ export function dumpConfigYaml(kubeConfig: Partial): string { export function podHasIssues(pod: V1Pod) { // Logic adapted from dashboard - const notReady = !!pod.status.conditions.find(condition => { + const notReady = !!pod.status.conditions.find((condition) => { return condition.type == "Ready" && condition.status !== "True"; }); @@ -152,8 +152,8 @@ export function getNodeWarningConditions(node: V1Node) { /** * Validates kubeconfig supplied in the add clusters screen. At present this will just validate - * the User struct, specifically the command passed to the exec substructure. - */ + * the User struct, specifically the command passed to the exec substructure. + */ export function validateKubeConfig (config: KubeConfig) { // we only receive a single context, cluster & user object here so lets validate them as this // will be called when we add a new cluster to Lens @@ -161,7 +161,7 @@ export function validateKubeConfig (config: KubeConfig) { // Validate the User Object const user = config.getCurrentUser(); - + if (user.exec) { const execCommand = user.exec["command"]; // check if the command is absolute or not diff --git a/src/common/prometheus-providers.ts b/src/common/prometheus-providers.ts index a5c515b338..9859b61292 100644 --- a/src/common/prometheus-providers.ts +++ b/src/common/prometheus-providers.ts @@ -4,7 +4,7 @@ import { PrometheusOperator } from "../main/prometheus/operator"; import { PrometheusStacklight } from "../main/prometheus/stacklight"; import { PrometheusProviderRegistry } from "../main/prometheus/provider-registry"; -[PrometheusLens, PrometheusHelm, PrometheusOperator, PrometheusStacklight].forEach(providerClass => { +[PrometheusLens, PrometheusHelm, PrometheusOperator, PrometheusStacklight].forEach((providerClass) => { const provider = new providerClass(); PrometheusProviderRegistry.registerProvider(provider.id, provider); diff --git a/src/common/user-store.ts b/src/common/user-store.ts index 0195fcce70..cf3fcb1e95 100644 --- a/src/common/user-store.ts +++ b/src/common/user-store.ts @@ -65,12 +65,12 @@ export class UserStore extends BaseStore { if (app) { // track telemetry availability - reaction(() => this.preferences.allowTelemetry, allowed => { + reaction(() => this.preferences.allowTelemetry, (allowed) => { appEventBus.emit({name: "telemetry", action: allowed ? "enabled" : "disabled"}); }); // open at system start-up - reaction(() => this.preferences.openAtLogin, open => { + reaction(() => this.preferences.openAtLogin, (open) => { app.setLoginItemSettings({ openAtLogin: open }); }, { fireImmediately: true, diff --git a/src/common/utils/autobind.ts b/src/common/utils/autobind.ts index b5c706e362..c262ab7179 100644 --- a/src/common/utils/autobind.ts +++ b/src/common/utils/autobind.ts @@ -17,7 +17,7 @@ function bindClass(constructor: T) { || typeof descriptors[methodName].value !== "function"; }; - Object.keys(descriptors).forEach(prop => { + Object.keys(descriptors).forEach((prop) => { if (skipMethod(prop)) return; const boundDescriptor = bindMethod(proto, prop, descriptors[prop]); diff --git a/src/common/utils/debouncePromise.ts b/src/common/utils/debouncePromise.ts index b5ad88d000..bdc7169fd3 100755 --- a/src/common/utils/debouncePromise.ts +++ b/src/common/utils/debouncePromise.ts @@ -3,7 +3,7 @@ export function debouncePromise(func: (...args: F) => T | Promise, timeout = 0): (...args: F) => Promise { let timer: NodeJS.Timeout; - return (...params: any[]) => new Promise(resolve => { + return (...params: any[]) => new Promise((resolve) => { clearTimeout(timer); timer = global.setTimeout(() => resolve(func.apply(this, params)), timeout); }); diff --git a/src/common/utils/downloadFile.ts b/src/common/utils/downloadFile.ts index dfa549da07..709a06ed1e 100644 --- a/src/common/utils/downloadFile.ts +++ b/src/common/utils/downloadFile.ts @@ -19,7 +19,7 @@ export function downloadFile({ url, timeout, gzip = true }: DownloadFileOptions) req.on("data", (chunk: Buffer) => { fileChunks.push(chunk); }); - req.once("error", err => { + req.once("error", (err) => { reject({ url, err }); }); req.once("complete", () => { diff --git a/src/common/utils/tar.ts b/src/common/utils/tar.ts index f9876e2b27..f9bb6621db 100644 --- a/src/common/utils/tar.ts +++ b/src/common/utils/tar.ts @@ -17,10 +17,10 @@ export function readFileFromTar({ tarPath, filePath, parseJson }: Re file: tarPath, filter: entryPath => path.normalize(entryPath) === filePath, onentry(entry: FileStat) { - entry.on("data", chunk => { + entry.on("data", (chunk) => { fileChunks.push(chunk); }); - entry.once("error", err => { + entry.once("error", (err) => { reject(new Error(`reading file has failed ${entry.path}: ${err}`)); }); entry.once("end", () => { diff --git a/src/common/workspace-store.ts b/src/common/workspace-store.ts index e1fa113ca3..419e7f4790 100644 --- a/src/common/workspace-store.ts +++ b/src/common/workspace-store.ts @@ -183,7 +183,7 @@ export class WorkspaceStore extends BaseStore { } @computed get enabledWorkspacesList() { - return this.workspacesList.filter((w) => w.enabled); + return this.workspacesList.filter(w => w.enabled); } pushState() { @@ -274,7 +274,7 @@ export class WorkspaceStore extends BaseStore { if (workspaces.length) { this.workspaces.clear(); - workspaces.forEach(ws => { + workspaces.forEach((ws) => { const workspace = new Workspace(ws); if (!workspace.isManaged) { @@ -288,7 +288,7 @@ export class WorkspaceStore extends BaseStore { toJSON(): WorkspaceStoreModel { return toJS({ currentWorkspace: this.currentWorkspaceId, - workspaces: this.workspacesList.map((w) => w.toJSON()), + workspaces: this.workspacesList.map(w => w.toJSON()), }, { recurseEverything: true }); diff --git a/src/extensions/cluster-feature.ts b/src/extensions/cluster-feature.ts index 625f2b5973..c8027d3ba7 100644 --- a/src/extensions/cluster-feature.ts +++ b/src/extensions/cluster-feature.ts @@ -41,7 +41,7 @@ export abstract class ClusterFeature { /** * to be implemented in the derived class, this method is typically called by Lens when a user has indicated that this feature is to be installed. The implementation * of this method should install kubernetes resources using the applyResources() method, or by directly accessing the kubernetes api (K8sApi) - * + * * @param cluster the cluster that the feature is to be installed on */ abstract async install(cluster: Cluster): Promise; @@ -49,7 +49,7 @@ export abstract class ClusterFeature { /** * to be implemented in the derived class, this method is typically called by Lens when a user has indicated that this feature is to be upgraded. The implementation * of this method should upgrade the kubernetes resources already installed, if relevant to the feature - * + * * @param cluster the cluster that the feature is to be upgraded on */ abstract async upgrade(cluster: Cluster): Promise; @@ -57,26 +57,26 @@ export abstract class ClusterFeature { /** * to be implemented in the derived class, this method is typically called by Lens when a user has indicated that this feature is to be uninstalled. The implementation * of this method should uninstall kubernetes resources using the kubernetes api (K8sApi) - * + * * @param cluster the cluster that the feature is to be uninstalled from */ abstract async uninstall(cluster: Cluster): Promise; /** * to be implemented in the derived class, this method is called periodically by Lens to determine details about the feature's current status. The implementation - * of this method should provide the current status information. The currentVersion and latestVersion fields may be displayed by Lens in describing the feature. + * of this method should provide the current status information. The currentVersion and latestVersion fields may be displayed by Lens in describing the feature. * The installed field should be set to true if the feature has been installed, otherwise false. Also, Lens relies on the canUpgrade field to determine if the feature * can be upgraded so the implementation should set the canUpgrade field according to specific rules for the feature, if relevant. - * + * * @param cluster the cluster that the feature may be installed on - * + * * @return a promise, resolved with the updated ClusterFeatureStatus */ abstract async updateStatus(cluster: Cluster): Promise; /** * this is a helper method that conveniently applies kubernetes resources to the cluster. - * + * * @param cluster the cluster that the resources are to be applied to * @param resourceSpec as a string type this is a folder path that is searched for files specifying kubernetes resources. The files are read and if any of the resource * files are templated, the template parameters are filled using the templateContext field (See renderTemplate() method). Finally the resources are applied to the @@ -101,16 +101,16 @@ export abstract class ClusterFeature { /** * this is a helper method that conveniently reads kubernetes resource files into a string array. It also fills templated resource files with the template parameter values * specified by the templateContext field. Templated files must end with the extension '.hb' and the template syntax must be compatible with handlebars.js - * + * * @param folderPath this is a folder path that is searched for files defining kubernetes resources. - * + * * @return an array of strings, each string being the contents of a resource file found in the folder path. This can be passed directly to applyResources() */ protected renderTemplates(folderPath: string): string[] { const resources: string[] = []; logger.info(`[FEATURE]: render templates from ${folderPath}`); - fs.readdirSync(folderPath).forEach(filename => { + fs.readdirSync(folderPath).forEach((filename) => { const file = path.join(folderPath, filename); const raw = fs.readFileSync(file); diff --git a/src/extensions/extension-loader.ts b/src/extensions/extension-loader.ts index 30ef1157ec..57210b9db3 100644 --- a/src/extensions/extension-loader.ts +++ b/src/extensions/extension-loader.ts @@ -120,7 +120,7 @@ export class ExtensionLoader { this.syncExtensions(extensions); const receivedExtensionIds = extensions.map(([lensExtensionId]) => lensExtensionId); - + // Remove deleted extensions in renderer side only this.extensions.forEach((_, lensExtensionId) => { if (!receivedExtensionIds.includes(lensExtensionId)) { @@ -157,7 +157,7 @@ export class ExtensionLoader { this.events.on("remove", (removedExtension: LensRendererExtension) => { if (removedExtension.id === extension.id) { - removeItems.forEach(remove => { + removeItems.forEach((remove) => { remove(); }); } @@ -180,7 +180,7 @@ export class ExtensionLoader { this.events.on("remove", (removedExtension: LensRendererExtension) => { if (removedExtension.id === extension.id) { - removeItems.forEach(remove => { + removeItems.forEach((remove) => { remove(); }); } @@ -209,7 +209,7 @@ export class ExtensionLoader { this.events.on("remove", (removedExtension: LensRendererExtension) => { if (removedExtension.id === extension.id) { - removeItems.forEach(remove => { + removeItems.forEach((remove) => { remove(); }); } @@ -220,7 +220,7 @@ export class ExtensionLoader { } protected autoInitExtensions(register: (ext: LensExtension) => Promise) { - return reaction(() => this.toJSON(), installedExtensions => { + return reaction(() => this.toJSON(), (installedExtensions) => { for (const [extId, extension] of installedExtensions) { const alreadyInit = this.instances.has(extId); diff --git a/src/extensions/extensions-store.ts b/src/extensions/extensions-store.ts index 07edb20453..08e8ba74ba 100644 --- a/src/extensions/extensions-store.ts +++ b/src/extensions/extensions-store.ts @@ -46,7 +46,7 @@ export class ExtensionsStore extends BaseStore { await this.whenLoaded; // save state on change `extension.isEnabled` - reaction(() => this.getState(extensionLoader), extensionsState => { + reaction(() => this.getState(extensionLoader), (extensionsState) => { this.state.merge(extensionsState); }); } diff --git a/src/extensions/registries/base-registry.ts b/src/extensions/registries/base-registry.ts index 6d5485b32b..870ef49b89 100644 --- a/src/extensions/registries/base-registry.ts +++ b/src/extensions/registries/base-registry.ts @@ -22,7 +22,7 @@ export class BaseRegistry { @action remove(...items: T[]) { - items.forEach(item => { + items.forEach((item) => { this.items.remove(item); // works because of {deep: false}; }); } diff --git a/src/extensions/registries/page-menu-registry.ts b/src/extensions/registries/page-menu-registry.ts index 8ccbc9cd6c..10dd92bb47 100644 --- a/src/extensions/registries/page-menu-registry.ts +++ b/src/extensions/registries/page-menu-registry.ts @@ -30,7 +30,7 @@ export interface PageMenuComponents { export class GlobalPageMenuRegistry extends BaseRegistry { @action add(items: PageMenuRegistration[], ext: LensExtension) { - const normalizedItems = items.map(menuItem => { + const normalizedItems = items.map((menuItem) => { menuItem.target = { extensionId: ext.name, ...(menuItem.target || {}), @@ -46,7 +46,7 @@ export class GlobalPageMenuRegistry extends BaseRegistry { export class ClusterPageMenuRegistry extends BaseRegistry { @action add(items: PageMenuRegistration[], ext: LensExtension) { - const normalizedItems = items.map(menuItem => { + const normalizedItems = items.map((menuItem) => { menuItem.target = { extensionId: ext.name, ...(menuItem.target || {}), @@ -59,15 +59,15 @@ export class ClusterPageMenuRegistry extends BaseRegistry !item.parentId); + return this.getItems().filter(item => !item.parentId); } getSubItems(parent: ClusterPageMenuRegistration) { - return this.getItems().filter((item) => item.parentId === parent.id && item.target.extensionId === parent.target.extensionId); + return this.getItems().filter(item => item.parentId === parent.id && item.target.extensionId === parent.target.extensionId); } getByPage(page: RegisteredPage) { - return this.getItems().find((item) => item.target?.pageId == page.id && item.target?.extensionId === page.extensionId); + return this.getItems().find(item => item.target?.pageId == page.id && item.target?.extensionId === page.extensionId); } } diff --git a/src/main/cluster-manager.ts b/src/main/cluster-manager.ts index 5717c7278d..bf9fbbfcdf 100644 --- a/src/main/cluster-manager.ts +++ b/src/main/cluster-manager.ts @@ -13,7 +13,7 @@ export class ClusterManager extends Singleton { super(); // auto-init clusters autorun(() => { - clusterStore.enabledClustersList.forEach(cluster => { + clusterStore.enabledClustersList.forEach((cluster) => { if (!cluster.initialized) { logger.info(`[CLUSTER-MANAGER]: init cluster`, cluster.getMeta()); cluster.init(port); @@ -46,7 +46,7 @@ export class ClusterManager extends Singleton { if (!cluster.disconnected) { cluster.online = false; cluster.accessible = false; - cluster.refreshConnectionStatus().catch((e) => e); + cluster.refreshConnectionStatus().catch(e => e); } }); } @@ -55,7 +55,7 @@ export class ClusterManager extends Singleton { logger.info("[CLUSTER-MANAGER]: network is online"); clusterStore.enabledClustersList.forEach((cluster) => { if (!cluster.disconnected) { - cluster.refreshConnectionStatus().catch((e) => e); + cluster.refreshConnectionStatus().catch(e => e); } }); } diff --git a/src/main/cluster.ts b/src/main/cluster.ts index 421856dc03..1bdb1f6abd 100644 --- a/src/main/cluster.ts +++ b/src/main/cluster.ts @@ -147,7 +147,7 @@ export class Cluster implements ClusterModel, ClusterState { if (ipcMain) { this.eventDisposers.push( reaction(() => this.getState(), () => this.pushState()), - reaction(() => this.prometheusPreferences, (prefs) => this.contextHandler.setupPrometheus(prefs), { equals: comparer.structural, }), + reaction(() => this.prometheusPreferences, prefs => this.contextHandler.setupPrometheus(prefs), { equals: comparer.structural, }), () => { clearInterval(refreshTimer); clearInterval(refreshMetadataTimer); diff --git a/src/main/context-handler.ts b/src/main/context-handler.ts index d67c495a84..fe03133bc3 100644 --- a/src/main/context-handler.ts +++ b/src/main/context-handler.ts @@ -105,7 +105,7 @@ export class ContextHandler { changeOrigin: true, timeout, headers: { - "Host": this.clusterUrl.hostname, + Host: this.clusterUrl.hostname, }, }; } diff --git a/src/main/lens-binary.ts b/src/main/lens-binary.ts index 3cf5a5fce7..f969dc7e72 100644 --- a/src/main/lens-binary.ts +++ b/src/main/lens-binary.ts @@ -129,7 +129,7 @@ export class LensBinary { } protected async untarBinary() { - return new Promise(resolve => { + return new Promise((resolve) => { this.logger.debug(`Extracting ${this.originalBinaryName} binary`); tar.x({ file: this.tarPath, diff --git a/src/main/lens-proxy.ts b/src/main/lens-proxy.ts index 5770429a7e..71a4e50f09 100644 --- a/src/main/lens-proxy.ts +++ b/src/main/lens-proxy.ts @@ -83,7 +83,7 @@ export class LensProxy { const key = req.rawHeaders[i]; if (key !== "Host" && key !== "Authorization") { - proxySocket.write(`${req.rawHeaders[i]}: ${req.rawHeaders[i+1]}\r\n`); + proxySocket.write(`${req.rawHeaders[i]}: ${req.rawHeaders[i + 1]}\r\n`); } } proxySocket.write("\r\n"); diff --git a/src/main/menu.ts b/src/main/menu.ts index 2cddbb1b01..ea333f1b39 100644 --- a/src/main/menu.ts +++ b/src/main/menu.ts @@ -46,7 +46,7 @@ export function buildMenu(windowManager: WindowManager) { function activeClusterOnly(menuItems: MenuItemConstructorOptions[]) { if (!windowManager.activeClusterId) { - menuItems.forEach(item => { + menuItems.forEach((item) => { item.enabled = false; }); } diff --git a/src/main/port.ts b/src/main/port.ts index cd4c5701e8..6a10cbd883 100644 --- a/src/main/port.ts +++ b/src/main/port.ts @@ -16,7 +16,7 @@ export async function getFreePort(): Promise { server.close(() => resolve(port)); logger.debug(`New port found: ${port}`); }); - server.on("error", error => { + server.on("error", (error) => { logger.error(`Can't resolve new port: "${error}"`); reject(error); }); diff --git a/src/main/routes/kubeconfig-route.ts b/src/main/routes/kubeconfig-route.ts index 7fe5bcb9bc..1d8fd0facd 100644 --- a/src/main/routes/kubeconfig-route.ts +++ b/src/main/routes/kubeconfig-route.ts @@ -11,8 +11,8 @@ function generateKubeConfig(username: string, secret: V1Secret, cluster: Cluster "kind": "Config", "clusters": [ { - "name": cluster.contextName, - "cluster": { + name: cluster.contextName, + cluster: { "server": cluster.apiUrl, "certificate-authority-data": secret.data["ca.crt"] } @@ -20,19 +20,19 @@ function generateKubeConfig(username: string, secret: V1Secret, cluster: Cluster ], "users": [ { - "name": username, - "user": { - "token": tokenData.toString("utf8"), + name: username, + user: { + token: tokenData.toString("utf8"), } } ], "contexts": [ { - "name": cluster.contextName, - "context": { - "user": username, - "cluster": cluster.contextName, - "namespace": secret.metadata.namespace, + name: cluster.contextName, + context: { + user: username, + cluster: cluster.contextName, + namespace: secret.metadata.namespace, } } ], @@ -46,7 +46,7 @@ class KubeconfigRoute extends LensApi { const { params, response, cluster} = request; const client = cluster.getProxyKubeconfig().makeApiClient(CoreV1Api); const secretList = await client.listNamespacedSecret(params.namespace); - const secret = secretList.body.items.find(secret => { + const secret = secretList.body.items.find((secret) => { const { annotations } = secret.metadata; return annotations && annotations["kubernetes.io/service-account.name"] == params.account; diff --git a/src/main/routes/watch-route.ts b/src/main/routes/watch-route.ts index eb9f007eae..f534075a67 100644 --- a/src/main/routes/watch-route.ts +++ b/src/main/routes/watch-route.ts @@ -92,7 +92,7 @@ class WatchRoute extends LensApi { response.setHeader("Connection", "keep-alive"); logger.debug(`watch using kubeconfig:${JSON.stringify(cluster.getProxyKubeconfig(), null, 2)}`); - apis.forEach(apiUrl => { + apis.forEach((apiUrl) => { const watcher = new ApiWatcher(apiUrl, cluster.getProxyKubeconfig(), response); watcher.start(); diff --git a/src/main/shell-session.ts b/src/main/shell-session.ts index 19170695fc..11d77a9ee9 100644 --- a/src/main/shell-session.ts +++ b/src/main/shell-session.ts @@ -183,7 +183,7 @@ export class ShellSession extends EventEmitter { if (exitCode > 0) { this.sendResponse("Terminal will auto-close in 15 seconds ..."); - timeout = 15*1000; + timeout = 15 * 1000; } setTimeout(() => { this.exit(); diff --git a/src/main/tray.ts b/src/main/tray.ts index 50df26cb8f..4c2b5808ba 100644 --- a/src/main/tray.ts +++ b/src/main/tray.ts @@ -83,13 +83,13 @@ export function createTrayMenu(windowManager: WindowManager): Menu { label: "Clusters", submenu: workspaceStore.enabledWorkspacesList .filter(workspace => clusterStore.getByWorkspaceId(workspace.id).length > 0) // hide empty workspaces - .map(workspace => { + .map((workspace) => { const clusters = clusterStore.getByWorkspaceId(workspace.id); return { label: workspace.name, toolTip: workspace.description, - submenu: clusters.map(cluster => { + submenu: clusters.map((cluster) => { const { id: clusterId, name: label, online, workspace } = cluster; return { diff --git a/src/migrations/cluster-store/3.6.0-beta.1.ts b/src/migrations/cluster-store/3.6.0-beta.1.ts index ca2d0ccbed..963509fdd0 100644 --- a/src/migrations/cluster-store/3.6.0-beta.1.ts +++ b/src/migrations/cluster-store/3.6.0-beta.1.ts @@ -20,7 +20,7 @@ export default migration({ printLog("Number of clusters to migrate: ", storedClusters.length); const migratedClusters = storedClusters - .map(cluster => { + .map((cluster) => { /** * migrate kubeconfig */ diff --git a/src/migrations/cluster-store/snap.ts b/src/migrations/cluster-store/snap.ts index 74b89aad9c..ed22efcbe7 100644 --- a/src/migrations/cluster-store/snap.ts +++ b/src/migrations/cluster-store/snap.ts @@ -17,7 +17,7 @@ export default migration({ printLog("Number of clusters to migrate: ", storedClusters.length); const migratedClusters = storedClusters - .map(cluster => { + .map((cluster) => { /** * replace snap version with 'current' in kubeconfig path */ diff --git a/src/renderer/api/__tests__/kube-api.test.ts b/src/renderer/api/__tests__/kube-api.test.ts index 41078e77a3..e6891b97a8 100644 --- a/src/renderer/api/__tests__/kube-api.test.ts +++ b/src/renderer/api/__tests__/kube-api.test.ts @@ -28,7 +28,7 @@ describe("KubeApi", () => { }; } }); - + const apiBase = "/apis/networking.k8s.io/v1/ingresses"; const fallbackApiBase = "/apis/extensions/v1beta1/ingresses"; const kubeApi = new KubeApi({ @@ -36,7 +36,7 @@ describe("KubeApi", () => { fallbackApiBases: [fallbackApiBase], checkPreferredVersion: true, }); - + await kubeApi.get(); expect(kubeApi.apiPrefix).toEqual("/apis"); expect(kubeApi.apiGroup).toEqual("networking.k8s.io"); diff --git a/src/renderer/api/api-manager.ts b/src/renderer/api/api-manager.ts index 68d4773540..fa98692af2 100644 --- a/src/renderer/api/api-manager.ts +++ b/src/renderer/api/api-manager.ts @@ -41,7 +41,7 @@ export class ApiManager { @action registerStore(store: KubeObjectStore, apis: KubeApi[] = [store.api]) { - apis.forEach(api => { + apis.forEach((api) => { this.stores.set(api, store); }); } diff --git a/src/renderer/api/endpoints/crd.api.ts b/src/renderer/api/endpoints/crd.api.ts index ad7d9d67ca..badef32a36 100644 --- a/src/renderer/api/endpoints/crd.api.ts +++ b/src/renderer/api/endpoints/crd.api.ts @@ -139,7 +139,7 @@ export class CustomResourceDefinition extends KubeObject { getConditions() { if (!this.status?.conditions) return []; - return this.status.conditions.map(condition => { + return this.status.conditions.map((condition) => { const { message, reason, lastTransitionTime, status } = condition; return { diff --git a/src/renderer/api/endpoints/endpoint.api.ts b/src/renderer/api/endpoints/endpoint.api.ts index d19c2f127e..0e43e706bd 100644 --- a/src/renderer/api/endpoints/endpoint.api.ts +++ b/src/renderer/api/endpoints/endpoint.api.ts @@ -88,12 +88,12 @@ export class EndpointSubset implements IEndpointSubset { return ""; } - return this.addresses.map(address => { + return this.addresses.map((address) => { if (!this.ports) { return address.ip; } - return this.ports.map(port => { + return this.ports.map((port) => { return `${address.ip}:${port.port}`; }).join(", "); }).join(", "); diff --git a/src/renderer/api/endpoints/helm-charts.api.ts b/src/renderer/api/endpoints/helm-charts.api.ts index a1fd497798..fcec5d15a6 100644 --- a/src/renderer/api/endpoints/helm-charts.api.ts +++ b/src/renderer/api/endpoints/helm-charts.api.ts @@ -23,7 +23,7 @@ export const helmChartsApi = { list() { return apiBase .get(endpoint()) - .then(data => { + .then((data) => { return Object .values(data) .reduce((allCharts, repoCharts) => allCharts.concat(Object.values(repoCharts)), []) @@ -36,7 +36,7 @@ export const helmChartsApi = { return apiBase .get(`${path}?${stringify({ version: readmeVersion })}`) - .then(data => { + .then((data) => { const versions = data.versions.map(HelmChart.create); const readme = data.readme; diff --git a/src/renderer/api/endpoints/helm-releases.api.ts b/src/renderer/api/endpoints/helm-releases.api.ts index 84e095721b..b026308fde 100644 --- a/src/renderer/api/endpoints/helm-releases.api.ts +++ b/src/renderer/api/endpoints/helm-releases.api.ts @@ -77,7 +77,7 @@ export const helmReleasesApi = { get(name: string, namespace: string) { const path = endpoint({ name, namespace }); - return apiBase.get(path).then(details => { + return apiBase.get(path).then((details) => { const items: KubeObject[] = JSON.parse(details.resources).items; const resources = items.map(item => KubeObject.create(item)); diff --git a/src/renderer/api/endpoints/hpa.api.ts b/src/renderer/api/endpoints/hpa.api.ts index 4876ee43eb..db3dec1aec 100644 --- a/src/renderer/api/endpoints/hpa.api.ts +++ b/src/renderer/api/endpoints/hpa.api.ts @@ -81,7 +81,7 @@ export class HorizontalPodAutoscaler extends KubeObject { getConditions() { if (!this.status.conditions) return []; - return this.status.conditions.map(condition => { + return this.status.conditions.map((condition) => { const { message, reason, lastTransitionTime, status } = condition; return { diff --git a/src/renderer/api/endpoints/ingress.api.ts b/src/renderer/api/endpoints/ingress.api.ts index 7d035ad591..22a43cbd5b 100644 --- a/src/renderer/api/endpoints/ingress.api.ts +++ b/src/renderer/api/endpoints/ingress.api.ts @@ -108,11 +108,11 @@ export class Ingress extends KubeObject { if (tls && tls.length > 0) { protocol += "s"; } - rules.map(rule => { + rules.map((rule) => { const host = rule.host ? rule.host : "*"; if (rule.http && rule.http.paths) { - rule.http.paths.forEach(path => { + rule.http.paths.forEach((path) => { const { serviceName, servicePort } = getBackendServiceNamePort(path.backend); routes.push(`${protocol}://${host}${path.path || "/"} ⇢ ${serviceName}:${servicePort}`); @@ -167,7 +167,7 @@ export class Ingress extends KubeObject { getLoadBalancers() { const { status: { loadBalancer = { ingress: [] } } } = this; - + return (loadBalancer.ingress ?? []).map(address => ( address.hostname || address.ip )); diff --git a/src/renderer/api/endpoints/metrics.api.ts b/src/renderer/api/endpoints/metrics.api.ts index a530c68506..9bb4b5fe3c 100644 --- a/src/renderer/api/endpoints/metrics.api.ts +++ b/src/renderer/api/endpoints/metrics.api.ts @@ -50,7 +50,7 @@ export const metricsApi = { data: query, query: { start, end, step, - "kubernetes_namespace": namespace, + kubernetes_namespace: namespace, } }); }, @@ -75,7 +75,7 @@ export function normalizeMetrics(metrics: IMetrics, frames = 60): IMetrics { if (result.length) { if (frames > 0) { // fill the gaps - result.forEach(res => { + result.forEach((res) => { if (!res.values || !res.values.length) return; while (res.values.length < frames) { @@ -121,7 +121,7 @@ export function getItemMetrics(metrics: { [key: string]: IMetrics }, itemName: s export function getMetricLastPoints(metrics: { [key: string]: IMetrics }) { const result: Partial<{ [metric: string]: number }> = {}; - Object.keys(metrics).forEach(metricName => { + Object.keys(metrics).forEach((metricName) => { try { const metric = metrics[metricName]; diff --git a/src/renderer/api/endpoints/nodes.api.ts b/src/renderer/api/endpoints/nodes.api.ts index d1794f0fb7..bd62050438 100644 --- a/src/renderer/api/endpoints/nodes.api.ts +++ b/src/renderer/api/endpoints/nodes.api.ts @@ -142,7 +142,7 @@ export class Node extends KubeObject { getWarningConditions() { const goodConditions = ["Ready", "HostUpgrades", "SchedulingDisabled"]; - return this.getActiveConditions().filter(condition => { + return this.getActiveConditions().filter((condition) => { return !goodConditions.includes(condition.type); }); } diff --git a/src/renderer/api/endpoints/persistent-volume-claims.api.ts b/src/renderer/api/endpoints/persistent-volume-claims.api.ts index 1d9e1f1dce..624f49594b 100644 --- a/src/renderer/api/endpoints/persistent-volume-claims.api.ts +++ b/src/renderer/api/endpoints/persistent-volume-claims.api.ts @@ -53,7 +53,7 @@ export class PersistentVolumeClaim extends KubeObject { getPods(allPods: Pod[]): Pod[] { const pods = allPods.filter(pod => pod.getNs() === this.getNs()); - return pods.filter(pod => { + return pods.filter((pod) => { return pod.getVolumes().filter(volume => volume.persistentVolumeClaim && volume.persistentVolumeClaim.claimName === this.getName() diff --git a/src/renderer/api/endpoints/pods.api.ts b/src/renderer/api/endpoints/pods.api.ts index 11b581db8f..91e2b930d6 100644 --- a/src/renderer/api/endpoints/pods.api.ts +++ b/src/renderer/api/endpoints/pods.api.ts @@ -249,7 +249,7 @@ export class Pod extends WorkloadKubeObject { getRunningContainers() { const statuses = this.getContainerStatuses(); - return this.getAllContainers().filter(container => { + return this.getAllContainers().filter((container) => { return statuses.find(status => status.name === container.name && !!status.state["running"]); } ); @@ -326,7 +326,7 @@ export class Pod extends WorkloadKubeObject { const statuses = this.getContainerStatuses(false); // not including initContainers if (statuses.length) { - statuses.forEach(status => { + statuses.forEach((status) => { const { state } = status; if (state.waiting) { @@ -382,10 +382,10 @@ export class Pod extends WorkloadKubeObject { } hasIssues() { - const notReady = !!this.getConditions().find(condition => { + const notReady = !!this.getConditions().find((condition) => { return condition.type == "Ready" && condition.status !== "True"; }); - const crashLoop = !!this.getContainerStatuses().find(condition => { + const crashLoop = !!this.getContainerStatuses().find((condition) => { const waiting = condition.state.waiting; return (waiting && waiting.reason == "CrashLoopBackOff"); diff --git a/src/renderer/api/endpoints/resource-applier.api.ts b/src/renderer/api/endpoints/resource-applier.api.ts index a397cfdda0..365ff8e771 100644 --- a/src/renderer/api/endpoints/resource-applier.api.ts +++ b/src/renderer/api/endpoints/resource-applier.api.ts @@ -16,8 +16,8 @@ export const resourceApplierApi = { return apiBase .post("/stack", { data: resource }) - .then(data => { - const items = data.map(obj => { + .then((data) => { + const items = data.map((obj) => { const api = apiManager.getApi(obj.metadata.selfLink); if (api) { diff --git a/src/renderer/api/json-api.ts b/src/renderer/api/json-api.ts index 49c2cb1a28..8ea33da5b3 100644 --- a/src/renderer/api/json-api.ts +++ b/src/renderer/api/json-api.ts @@ -91,7 +91,7 @@ export class JsonApi { reqInit, }; - return cancelableFetch(reqUrl, reqInit).then(res => { + return cancelableFetch(reqUrl, reqInit).then((res) => { return this.parseResponse(res, infoLog); }); } @@ -99,7 +99,7 @@ export class JsonApi { protected parseResponse(res: Response, log: JsonApiLog): Promise { const { status } = res; - return res.text().then(text => { + return res.text().then((text) => { let data; try { diff --git a/src/renderer/api/kube-object.ts b/src/renderer/api/kube-object.ts index 08bd6401b9..7b974f7c17 100644 --- a/src/renderer/api/kube-object.ts +++ b/src/renderer/api/kube-object.ts @@ -124,7 +124,7 @@ export class KubeObject implements ItemObject { getAnnotations(filter = false): string[] { const labels = KubeObject.stringifyLabels(this.metadata.annotations); - return filter ? labels.filter(label => { + return filter ? labels.filter((label) => { const skip = resourceApplierApi.annotations.some(key => label.startsWith(key)); return !skip; diff --git a/src/renderer/api/kube-watch-api.ts b/src/renderer/api/kube-watch-api.ts index 58665a11a1..f3cb6bb641 100644 --- a/src/renderer/api/kube-watch-api.ts +++ b/src/renderer/api/kube-watch-api.ts @@ -50,11 +50,11 @@ export class KubeWatchApi { } subscribe(...apis: KubeApi[]) { - apis.forEach(api => { + apis.forEach((api) => { this.subscribers.set(api, this.getSubscribersCount(api) + 1); }); - return () => apis.forEach(api => { + return () => apis.forEach((api) => { const count = this.getSubscribersCount(api) - 1; if (count <= 0) this.subscribers.delete(api); @@ -66,7 +66,7 @@ export class KubeWatchApi { const { isAdmin, allowedNamespaces } = getHostedCluster(); return { - api: this.activeApis.map(api => { + api: this.activeApis.map((api) => { if (isAdmin) return api.getWatchUrl(); return allowedNamespaces.map(namespace => api.getWatchUrl(namespace)); diff --git a/src/renderer/components/+add-cluster/add-cluster.tsx b/src/renderer/components/+add-cluster/add-cluster.tsx index 5122dfe02f..23ac45e005 100644 --- a/src/renderer/components/+add-cluster/add-cluster.tsx +++ b/src/renderer/components/+add-cluster/add-cluster.tsx @@ -106,7 +106,7 @@ export class AddCluster extends React.Component { getContexts(config: KubeConfig): Map { const contexts = new Map(); - splitConfig(config).forEach(config => { + splitConfig(config).forEach((config) => { contexts.set(config.currentContext, config); }); @@ -145,7 +145,7 @@ export class AddCluster extends React.Component { this.error = ""; this.isWaiting = true; appEventBus.emit({ name: "cluster-add", action: "click" }); - newClusters = this.selectedContexts.filter(context => { + newClusters = this.selectedContexts.filter((context) => { try { const kubeConfig = this.kubeContexts.get(context); @@ -163,7 +163,7 @@ export class AddCluster extends React.Component { throw new Error(err); } } - }).map(context => { + }).map((context) => { const clusterId = uuid(); const kubeConfig = this.kubeContexts.get(context); const kubeConfigPath = this.sourceTab === KubeConfigSourceTab.FILE @@ -267,7 +267,7 @@ export class AddCluster extends React.Component { showGutter={false} mode="yaml" value={this.customConfig} - onChange={value => { + onChange={(value) => { this.customConfig = value; this.refreshContexts(); }} diff --git a/src/renderer/components/+apps-helm-charts/helm-chart-details.tsx b/src/renderer/components/+apps-helm-charts/helm-chart-details.tsx index dff5c8b050..e0ccaa90f7 100644 --- a/src/renderer/components/+apps-helm-charts/helm-chart-details.tsx +++ b/src/renderer/components/+apps-helm-charts/helm-chart-details.tsx @@ -38,12 +38,12 @@ export class HelmChartDetails extends Component { this.selectedChart = null; const { chart: { name, repo, version } } = this.props; - helmChartsApi.get(repo, name, version).then(result => { + helmChartsApi.get(repo, name, version).then((result) => { this.readme = result.readme; this.chartVersions = result.versions; this.selectedChart = result.versions[0]; }, - error => { + (error) => { this.error = error; }); }); @@ -79,7 +79,7 @@ export class HelmChartDetails extends Component { event.currentTarget.src = placeholder} + onError={event => event.currentTarget.src = placeholder} />
diff --git a/src/renderer/components/+apps-releases/release-details.tsx b/src/renderer/components/+apps-releases/release-details.tsx index 41ad5f1c8f..e68570a2db 100644 --- a/src/renderer/components/+apps-releases/release-details.tsx +++ b/src/renderer/components/+apps-releases/release-details.tsx @@ -41,7 +41,7 @@ export class ReleaseDetails extends Component { @observable releaseSecret: Secret; @disposeOnUnmount - releaseSelector = reaction(() => this.props.release, release => { + releaseSelector = reaction(() => this.props.release, (release) => { if (!release) return; this.loadDetails(); this.loadValues(); @@ -157,7 +157,7 @@ export class ReleaseDetails extends Component { {items[0].getNs() && Namespace} Age - {items.map(item => { + {items.map((item) => { const name = item.getName(); const namespace = item.getNs(); const api = apiManager.getApi(item.metadata.selfLink); diff --git a/src/renderer/components/+apps-releases/release.store.ts b/src/renderer/components/+apps-releases/release.store.ts index b6d5c2fb5f..12350292c8 100644 --- a/src/renderer/components/+apps-releases/release.store.ts +++ b/src/renderer/components/+apps-releases/release.store.ts @@ -24,7 +24,7 @@ export class ReleaseStore extends ItemStore { if (this.isLoading) return; const secrets = this.getReleaseSecrets(); const amountChanged = secrets.length !== this.releaseSecrets.length; - const labelsChanged = this.releaseSecrets.some(item => { + const labelsChanged = this.releaseSecrets.some((item) => { const secret = secrets.find(secret => secret.getId() == item.getId()); if (!secret) return; diff --git a/src/renderer/components/+apps-releases/releases.tsx b/src/renderer/components/+apps-releases/releases.tsx index bcc18965ac..753be3abf5 100644 --- a/src/renderer/components/+apps-releases/releases.tsx +++ b/src/renderer/components/+apps-releases/releases.tsx @@ -42,7 +42,7 @@ export class HelmReleases extends Component { get selectedRelease() { const { match: { params: { name, namespace } } } = this.props; - return releaseStore.items.find(release => { + return releaseStore.items.find((release) => { return release.getName() == name && release.getNs() == namespace; }); } 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 937f2feed4..a6d9356e3d 100644 --- a/src/renderer/components/+cluster-settings/components/cluster-prometheus-setting.tsx +++ b/src/renderer/components/+cluster-settings/components/cluster-prometheus-setting.tsx @@ -103,7 +103,7 @@ export class ClusterPrometheusSetting extends React.Component { this.path = value} + onChange={value => this.path = value} onBlur={this.onSavePath} placeholder="/:" /> diff --git a/src/renderer/components/+cluster-settings/features.tsx b/src/renderer/components/+cluster-settings/features.tsx index d43ecd9568..ddb8f99399 100644 --- a/src/renderer/components/+cluster-settings/features.tsx +++ b/src/renderer/components/+cluster-settings/features.tsx @@ -18,7 +18,7 @@ export class Features extends React.Component { { clusterFeatureRegistry .getItems() - .map((f) => ( + .map(f => ( <> diff --git a/src/renderer/components/+cluster/cluster-issues.tsx b/src/renderer/components/+cluster/cluster-issues.tsx index aef925ef94..195f3a76e5 100644 --- a/src/renderer/components/+cluster/cluster-issues.tsx +++ b/src/renderer/components/+cluster/cluster-issues.tsx @@ -42,7 +42,7 @@ export class ClusterIssues extends React.Component { const warnings: IWarning[] = []; // Node bad conditions - nodesStore.items.forEach(node => { + nodesStore.items.forEach((node) => { const { kind, selfLink, getId, getName } = node; node.getWarningConditions().forEach(({ message }) => { @@ -59,7 +59,7 @@ export class ClusterIssues extends React.Component { // Warning events for Workloads const events = eventStore.getWarnings(); - events.forEach(error => { + events.forEach((error) => { const { message, involvedObject } = error; const { uid, name, kind } = involvedObject; diff --git a/src/renderer/components/+cluster/cluster-metrics.tsx b/src/renderer/components/+cluster/cluster-metrics.tsx index b049cfc2f4..cd81f0486e 100644 --- a/src/renderer/components/+cluster/cluster-metrics.tsx +++ b/src/renderer/components/+cluster/cluster-metrics.tsx @@ -34,7 +34,7 @@ export const ClusterMetrics = observer(() => { yAxes: [{ ticks: { suggestedMax: cpuCapacity, - callback: (value) => value + callback: value => value } }] }, diff --git a/src/renderer/components/+config-autoscalers/hpa-details.tsx b/src/renderer/components/+config-autoscalers/hpa-details.tsx index 7cf5e3142f..e23e483db5 100644 --- a/src/renderer/components/+config-autoscalers/hpa-details.tsx +++ b/src/renderer/components/+config-autoscalers/hpa-details.tsx @@ -136,7 +136,7 @@ kubeObjectDetailRegistry.add({ kind: "HorizontalPodAutoscaler", apiVersions: ["autoscaling/v1"], components: { - Details: (props) => + Details: props => } }); @@ -145,6 +145,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["autoscaling/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+config-maps/config-map-details.tsx b/src/renderer/components/+config-maps/config-map-details.tsx index 5ce3b50216..4a02bf4017 100644 --- a/src/renderer/components/+config-maps/config-map-details.tsx +++ b/src/renderer/components/+config-maps/config-map-details.tsx @@ -100,7 +100,7 @@ kubeObjectDetailRegistry.add({ kind: "ConfigMap", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); @@ -109,7 +109,7 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets-details.tsx b/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets-details.tsx index b265b3e2de..2ed6360e2c 100644 --- a/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets-details.tsx +++ b/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets-details.tsx @@ -59,6 +59,6 @@ kubeObjectDetailRegistry.add({ kind: "PodDisruptionBudget", apiVersions: ["policy/v1beta1"], components: { - Details: (props) => + Details: props => } }); 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 ae677c1c17..df210d211b 100644 --- a/src/renderer/components/+config-resource-quotas/add-quota-dialog.tsx +++ b/src/renderer/components/+config-resource-quotas/add-quota-dialog.tsx @@ -67,7 +67,7 @@ export class AddQuotaDialog extends React.Component { } @computed get quotaOptions() { - return Object.keys(this.quotas).map(quota => { + return Object.keys(this.quotas).map((quota) => { const isCompute = quota.endsWith(".cpu") || quota.endsWith(".memory"); const isStorage = quota.endsWith(".storage") || quota === "persistentvolumeclaims"; const isCount = quota.startsWith("count/"); diff --git a/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx b/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx index 8d3d116de7..2c847ff1e1 100644 --- a/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx +++ b/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx @@ -102,6 +102,6 @@ kubeObjectDetailRegistry.add({ kind: "ResourceQuota", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+config-secrets/secret-details.tsx b/src/renderer/components/+config-secrets/secret-details.tsx index 4295cd3a39..4995e6f36c 100644 --- a/src/renderer/components/+config-secrets/secret-details.tsx +++ b/src/renderer/components/+config-secrets/secret-details.tsx @@ -124,6 +124,6 @@ kubeObjectDetailRegistry.add({ kind: "Secret", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+custom-resources/crd-details.tsx b/src/renderer/components/+custom-resources/crd-details.tsx index f542a165fd..9f2f427fed 100644 --- a/src/renderer/components/+custom-resources/crd-details.tsx +++ b/src/renderer/components/+custom-resources/crd-details.tsx @@ -60,7 +60,7 @@ export class CRDDetails extends React.Component { Conditions} className="conditions" labelsOnly> { - crd.getConditions().map(condition => { + crd.getConditions().map((condition) => { const { type, message, lastTransitionTime, status } = condition; return ( @@ -141,6 +141,6 @@ kubeObjectDetailRegistry.add({ kind: "CustomResourceDefinition", apiVersions: ["apiextensions.k8s.io/v1", "apiextensions.k8s.io/v1beta1"], components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+custom-resources/crd-resources.tsx b/src/renderer/components/+custom-resources/crd-resources.tsx index a4a52ef867..59122962cc 100644 --- a/src/renderer/components/+custom-resources/crd-resources.tsx +++ b/src/renderer/components/+custom-resources/crd-resources.tsx @@ -60,7 +60,7 @@ export class CrdResources extends React.Component { [sortBy.age]: (item: KubeObject) => item.metadata.creationTimestamp, }; - extraColumns.forEach(column => { + extraColumns.forEach((column) => { sortingCallbacks[column.name] = (item: KubeObject) => jsonPath.value(item, column.jsonPath.slice(1)); }); @@ -77,7 +77,7 @@ export class CrdResources extends React.Component { renderTableHeader={[ { title: Name, className: "name", sortBy: sortBy.name }, isNamespaced && { title: Namespace, className: "namespace", sortBy: sortBy.namespace }, - ...extraColumns.map(column => { + ...extraColumns.map((column) => { const { name } = column; return { diff --git a/src/renderer/components/+custom-resources/crd.store.ts b/src/renderer/components/+custom-resources/crd.store.ts index 64aefc1fe1..e69222d8dc 100644 --- a/src/renderer/components/+custom-resources/crd.store.ts +++ b/src/renderer/components/+custom-resources/crd.store.ts @@ -12,7 +12,7 @@ function initStore(crd: CustomResourceDefinition) { const kind = crd.getResourceKind(); const isNamespaced = crd.isNamespaced(); const api = apiManager.getApi(apiBase) || new KubeApi({ apiBase, kind, isNamespaced }); - + if (!apiManager.getStore(api)) { apiManager.registerStore(new CRDResourceStore(api)); } @@ -60,7 +60,7 @@ export class CRDStore extends KubeObjectStore { getByObject(obj: KubeObject) { if (!obj) return null; const { kind, apiVersion } = obj; - + return this.items.find(crd => ( kind === crd.getResourceKind() && apiVersion === `${crd.getGroup()}/${crd.getVersion()}` )); diff --git a/src/renderer/components/+events/event-details.tsx b/src/renderer/components/+events/event-details.tsx index d514d67521..8ea56e491e 100644 --- a/src/renderer/components/+events/event-details.tsx +++ b/src/renderer/components/+events/event-details.tsx @@ -80,6 +80,6 @@ kubeObjectDetailRegistry.add({ kind: "Event", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+events/event.store.ts b/src/renderer/components/+events/event.store.ts index 39d4d5df83..7babde4481 100644 --- a/src/renderer/components/+events/event.store.ts +++ b/src/renderer/components/+events/event.store.ts @@ -24,7 +24,7 @@ export class EventStore extends KubeObjectStore { } getEventsByObject(obj: KubeObject): KubeEvent[] { - return this.items.filter(evt => { + return this.items.filter((evt) => { if(obj.kind == "Node") { return obj.getName() == evt.involvedObject.uid && evt.involvedObject.kind == "Node"; } @@ -36,7 +36,7 @@ export class EventStore extends KubeObjectStore { getWarnings() { const warnings = this.items.filter(event => event.type == "Warning"); const groupsByInvolvedObject = groupBy(warnings, warning => warning.involvedObject.uid); - const eventsWithError = Object.values(groupsByInvolvedObject).map(events => { + const eventsWithError = Object.values(groupsByInvolvedObject).map((events) => { const recent = events[0]; const { kind, uid } = recent.involvedObject; diff --git a/src/renderer/components/+events/kube-event-details.tsx b/src/renderer/components/+events/kube-event-details.tsx index a7da4f5276..a66cc54c29 100644 --- a/src/renderer/components/+events/kube-event-details.tsx +++ b/src/renderer/components/+events/kube-event-details.tsx @@ -36,7 +36,7 @@ export class KubeEventDetails extends React.Component { Events
- {events.map(evt => { + {events.map((evt) => { const { message, count, lastTimestamp, involvedObject } = evt; return ( diff --git a/src/renderer/components/+extensions/__tests__/extensions.test.tsx b/src/renderer/components/+extensions/__tests__/extensions.test.tsx index 57c7738e16..94cf283a5e 100644 --- a/src/renderer/components/+extensions/__tests__/extensions.test.tsx +++ b/src/renderer/components/+extensions/__tests__/extensions.test.tsx @@ -61,14 +61,14 @@ describe("Extensions", () => { // Approve confirm dialog fireEvent.click(screen.getByText("Yes")); - + expect(extensionDiscovery.uninstallExtension).toHaveBeenCalledWith("/absolute/path"); expect(screen.getByText("Disable").closest("button")).toBeDisabled(); expect(screen.getByText("Uninstall").closest("button")).toBeDisabled(); }); it("displays error notification on uninstall error", () => { - (extensionDiscovery.uninstallExtension as any).mockImplementationOnce(() => + (extensionDiscovery.uninstallExtension as any).mockImplementationOnce(() => Promise.reject() ); render(<>); diff --git a/src/renderer/components/+extensions/extensions.tsx b/src/renderer/components/+extensions/extensions.tsx index 102909a753..396b444303 100644 --- a/src/renderer/components/+extensions/extensions.tsx +++ b/src/renderer/components/+extensions/extensions.tsx @@ -116,7 +116,7 @@ export class Extensions extends React.Component { @computed get extensions() { const searchText = this.search.toLowerCase(); - return Array.from(extensionLoader.userExtensions.values()).filter(ext => { + return Array.from(extensionLoader.userExtensions.values()).filter((ext) => { const { name, description } = ext.manifest; return [ @@ -206,7 +206,7 @@ export class Extensions extends React.Component { await Promise.all( requests .filter(request => !request.data && request.filePath) - .map(async request => { + .map(async (request) => { try { const data = await fse.readFile(request.filePath); @@ -270,7 +270,7 @@ export class Extensions extends React.Component { // validate packages await Promise.all( - requests.map(async req => { + requests.map(async (req) => { const tempFile = this.getExtensionPackageTemp(req.fileName); try { @@ -313,7 +313,7 @@ export class Extensions extends React.Component { const { name, version, description } = install.manifest; const extensionFolder = this.getExtensionDestFolder(name); const folderExists = await fse.pathExists(extensionFolder); - + if (!folderExists) { // auto-install extension if not yet exists this.unpackExtension(install); @@ -442,7 +442,7 @@ export class Extensions extends React.Component { ); } - return extensions.map(extension => { + return extensions.map((extension) => { const { id, isEnabled, manifest } = extension; const { name, description } = manifest; const isUninstalling = this.extensionState.get(id)?.state === "uninstalling"; @@ -538,7 +538,7 @@ export class Extensions extends React.Component { this.search = value} + onChange={value => this.search = value} /> {this.renderExtensions()}
diff --git a/src/renderer/components/+namespaces/namespace-details.tsx b/src/renderer/components/+namespaces/namespace-details.tsx index 2708582d6e..89cacd53c6 100644 --- a/src/renderer/components/+namespaces/namespace-details.tsx +++ b/src/renderer/components/+namespaces/namespace-details.tsx @@ -46,7 +46,7 @@ export class NamespaceDetails extends React.Component { Resource Quotas} className="quotas flex align-center"> {!this.quotas && resourceQuotaStore.isLoading && } - {this.quotas.map(quota => { + {this.quotas.map((quota) => { return ( {quota.getName()} @@ -63,6 +63,6 @@ kubeObjectDetailRegistry.add({ kind: "Namespace", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+namespaces/namespace.store.ts b/src/renderer/components/+namespaces/namespace.store.ts index d992551dec..71dc4af8e4 100644 --- a/src/renderer/components/+namespaces/namespace.store.ts +++ b/src/renderer/components/+namespaces/namespace.store.ts @@ -29,7 +29,7 @@ export class NamespaceStore extends KubeObjectStore { this.updateUrl(namespaces); // sync with local-storage & url-search-params - reaction(() => this.contextNs.toJS(), namespaces => { + reaction(() => this.contextNs.toJS(), (namespaces) => { this.storage.set(namespaces); this.updateUrl(namespaces); }); diff --git a/src/renderer/components/+network-endpoints/endpoint-details.tsx b/src/renderer/components/+network-endpoints/endpoint-details.tsx index 7047a702d2..c2b5d7142c 100644 --- a/src/renderer/components/+network-endpoints/endpoint-details.tsx +++ b/src/renderer/components/+network-endpoints/endpoint-details.tsx @@ -26,7 +26,7 @@ export class EndpointDetails extends React.Component { Subsets}/> { - endpoint.getEndpointSubsets().map((subset) => ( + endpoint.getEndpointSubsets().map(subset => ( )) } @@ -39,7 +39,7 @@ kubeObjectDetailRegistry.add({ kind: "Endpoints", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -47,6 +47,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx b/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx index 17750419c0..4efbddbe0b 100644 --- a/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx +++ b/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx @@ -145,7 +145,7 @@ export class EndpointSubsetList extends React.Component { Protocol { - subset.ports.map(port => { + subset.ports.map((port) => { return ( { { rule.http.paths.map((path, index) => { const { serviceName, servicePort } = getBackendServiceNamePort(path.backend); - const backend =`${serviceName}:${servicePort}`; + const backend = `${serviceName}:${servicePort}`; return ( @@ -146,7 +146,7 @@ kubeObjectDetailRegistry.add({ kind: "Ingress", apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -154,6 +154,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+network-policies/network-policy-details.tsx b/src/renderer/components/+network-policies/network-policy-details.tsx index e0285cef73..aa23a6c2a1 100644 --- a/src/renderer/components/+network-policies/network-policy-details.tsx +++ b/src/renderer/components/+network-policies/network-policy-details.tsx @@ -28,7 +28,7 @@ export class NetworkPolicyDetails extends React.Component { <> From}/> {from.map(item => - Object.keys(item).map(key => { + Object.keys(item).map((key) => { const data = get(item, key); if (key === "ipBlock") { @@ -76,7 +76,7 @@ export class NetworkPolicyDetails extends React.Component { return ( <> To}/> - {to.map(item => { + {to.map((item) => { const { ipBlock } = item; if (!ipBlock) return; @@ -161,7 +161,7 @@ kubeObjectDetailRegistry.add({ kind: "NetworkPolicy", apiVersions: ["networking.k8s.io/v1"], components: { - Details: (props) => + Details: props => } }); @@ -170,6 +170,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["networking.k8s.io/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+network-services/service-details.tsx b/src/renderer/components/+network-services/service-details.tsx index b0594e13dd..554d6cb294 100644 --- a/src/renderer/components/+network-services/service-details.tsx +++ b/src/renderer/components/+network-services/service-details.tsx @@ -65,7 +65,7 @@ export class ServiceDetails extends React.Component { Ports}>
{ - service.getPorts().map((port) => ( + service.getPorts().map(port => ( )) } @@ -89,7 +89,7 @@ kubeObjectDetailRegistry.add({ kind: "Service", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); @@ -98,6 +98,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+nodes/node-details.tsx b/src/renderer/components/+nodes/node-details.tsx index ead37c9428..5298665bdf 100644 --- a/src/renderer/components/+nodes/node-details.tsx +++ b/src/renderer/components/+nodes/node-details.tsx @@ -121,7 +121,7 @@ export class NodeDetails extends React.Component { {conditions && Conditions} className="conditions" labelsOnly> { - conditions.map(condition => { + conditions.map((condition) => { const { type } = condition; return ( @@ -161,7 +161,7 @@ kubeObjectDetailRegistry.add({ kind: "Node", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); @@ -170,6 +170,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+nodes/nodes.store.ts b/src/renderer/components/+nodes/nodes.store.ts index c0385b078b..7a7d63497d 100644 --- a/src/renderer/components/+nodes/nodes.store.ts +++ b/src/renderer/components/+nodes/nodes.store.ts @@ -44,10 +44,10 @@ export class NodesStore extends KubeObjectStore { } const nodeName = node.getName(); - return metricNames.map(metricName => { + return metricNames.map((metricName) => { try { const metric = this.metrics[metricName]; - const result = metric.data.result.find(result => { + const result = metric.data.result.find((result) => { return [ result.metric.node, result.metric.instance, diff --git a/src/renderer/components/+nodes/nodes.tsx b/src/renderer/components/+nodes/nodes.tsx index da0e9e8c4c..cc047de2e0 100644 --- a/src/renderer/components/+nodes/nodes.tsx +++ b/src/renderer/components/+nodes/nodes.tsx @@ -109,7 +109,7 @@ export class Nodes extends React.Component { } const conditions = node.getActiveConditions(); - return conditions.map(condition => { + return conditions.map((condition) => { const { type } = condition; const tooltipId = `node-${node.getName()}-condition-${type}`; diff --git a/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx b/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx index 04d9b85609..bff3ab9e57 100644 --- a/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx +++ b/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx @@ -216,6 +216,6 @@ kubeObjectDetailRegistry.add({ kind: "PodSecurityPolicy", apiVersions: ["policy/v1beta1"], components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+storage-classes/storage-class-details.tsx b/src/renderer/components/+storage-classes/storage-class-details.tsx index ac06d2a191..6751bae316 100644 --- a/src/renderer/components/+storage-classes/storage-class-details.tsx +++ b/src/renderer/components/+storage-classes/storage-class-details.tsx @@ -66,7 +66,7 @@ kubeObjectDetailRegistry.add({ kind: "StorageClass", apiVersions: ["storage.k8s.io/v1"], components: { - Details: (props) => + Details: props => } }); @@ -75,6 +75,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["storage.k8s.io/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+storage-volume-claims/volume-claim-details.tsx b/src/renderer/components/+storage-volume-claims/volume-claim-details.tsx index e9d9f36dc7..b98af98724 100644 --- a/src/renderer/components/+storage-volume-claims/volume-claim-details.tsx +++ b/src/renderer/components/+storage-volume-claims/volume-claim-details.tsx @@ -99,7 +99,7 @@ kubeObjectDetailRegistry.add({ kind: "PersistentVolumeClaim", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); @@ -108,6 +108,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+storage-volumes/volume-details.tsx b/src/renderer/components/+storage-volumes/volume-details.tsx index 9ccc862228..683a4d69e1 100644 --- a/src/renderer/components/+storage-volumes/volume-details.tsx +++ b/src/renderer/components/+storage-volumes/volume-details.tsx @@ -107,7 +107,7 @@ kubeObjectDetailRegistry.add({ kind: "PersistentVolume", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); @@ -116,6 +116,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); 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 4580ac6eab..2eab7d8e22 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 @@ -165,7 +165,7 @@ export class AddRoleBindingDialog extends React.Component { roles = roles.filter(role => !role.getNs() || role.getNs() === this.bindContext); } - return roles.map(role => { + return roles.map((role) => { const name = role.getName(); const namespace = role.getNs(); @@ -177,7 +177,7 @@ export class AddRoleBindingDialog extends React.Component { } @computed get serviceAccountOptions(): BindingSelectOption[] { - return serviceAccountsStore.items.map(account => { + return serviceAccountsStore.items.map((account) => { const name = account.getName(); const namespace = account.getNs(); diff --git a/src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx b/src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx index 9540925fe7..29764a0e3e 100644 --- a/src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx +++ b/src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx @@ -132,7 +132,7 @@ kubeObjectDetailRegistry.add({ kind: "RoleBinding", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -140,7 +140,7 @@ kubeObjectDetailRegistry.add({ apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); @@ -149,7 +149,7 @@ kubeObjectDetailRegistry.add({ kind: "ClusterRoleBinding", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -157,6 +157,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+user-management-roles/role-details.tsx b/src/renderer/components/+user-management-roles/role-details.tsx index a8d918daaf..50b48ae521 100644 --- a/src/renderer/components/+user-management-roles/role-details.tsx +++ b/src/renderer/components/+user-management-roles/role-details.tsx @@ -70,7 +70,7 @@ kubeObjectDetailRegistry.add({ kind: "Role", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -78,7 +78,7 @@ kubeObjectDetailRegistry.add({ apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); @@ -86,7 +86,7 @@ kubeObjectDetailRegistry.add({ kind: "ClusterRole", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -94,6 +94,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { - Details: (props) => + Details: 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 9d84d1c559..124c312d33 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 @@ -144,7 +144,7 @@ kubeObjectDetailRegistry.add({ kind: "ServiceAccount", apiVersions: ["v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -152,6 +152,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx b/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx index ad24ceede6..80c22cffc6 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx +++ b/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx @@ -93,7 +93,7 @@ kubeObjectDetailRegistry.add({ kind: "CronJob", apiVersions: ["batch/v1"], components: { - Details: (props) => + Details: props => } }); kubeObjectDetailRegistry.add({ @@ -101,6 +101,6 @@ kubeObjectDetailRegistry.add({ apiVersions: ["batch/v1"], priority: 5, components: { - Details: (props) => + Details: props => } }); diff --git a/src/renderer/components/+workloads-cronjobs/cronjob.store.ts b/src/renderer/components/+workloads-cronjobs/cronjob.store.ts index 84fd0fc4f2..41c10933e4 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjob.store.ts +++ b/src/renderer/components/+workloads-cronjobs/cronjob.store.ts @@ -11,7 +11,7 @@ export class CronJobStore extends KubeObjectStore { getStatuses(cronJobs?: CronJob[]) { const status = { suspended: 0, scheduled: 0 }; - cronJobs.forEach(cronJob => { + cronJobs.forEach((cronJob) => { if (cronJob.spec.suspend) { status.suspended++; } diff --git a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts index ad9713e96b..9d72049421 100644 --- a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts +++ b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts @@ -24,7 +24,7 @@ export class DaemonSetStore extends KubeObjectStore { getStatuses(daemonSets?: DaemonSet[]) { const status = { failed: 0, pending: 0, running: 0 }; - daemonSets.forEach(daemonSet => { + daemonSets.forEach((daemonSet) => { const pods = this.getChildPods(daemonSet); if (pods.some(pod => pod.getStatus() === PodStatus.FAILED)) { diff --git a/src/renderer/components/+workloads-deployments/deployment-details.tsx b/src/renderer/components/+workloads-deployments/deployment-details.tsx index bd2f10755a..724317593c 100644 --- a/src/renderer/components/+workloads-deployments/deployment-details.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-details.tsx @@ -96,7 +96,7 @@ export class DeploymentDetails extends React.Component { Conditions} className="conditions" labelsOnly> { - deployment.getConditions().map(condition => { + deployment.getConditions().map((condition) => { const { type, message, lastTransitionTime, status } = condition; return ( diff --git a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.test.tsx b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.test.tsx index ead4a37487..a528b4af48 100644 --- a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.test.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.test.tsx @@ -102,7 +102,7 @@ describe("", () => { }); it("inits with a dummy deployment with mocked current/desired scale", async () => { - // mock deploymentApi.getReplicas() which will be called + // mock deploymentApi.getReplicas() which will be called // when rendered. const initReplicas = 3; @@ -121,7 +121,7 @@ describe("", () => { expect(currentScale).toHaveTextContent(`${initReplicas}`); expect(desiredScale).toHaveTextContent(`${initReplicas}`); }); - + }); it("changes the desired scale when clicking the icon buttons +/-", async () => { diff --git a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx index 5fb43368d5..d13da6ea8b 100644 --- a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx @@ -89,7 +89,7 @@ export class DeploymentScaleDialog extends Component { 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 b9dc85eae5..7f98bafee7 100644 --- a/src/renderer/components/+workloads-deployments/deployments.store.ts +++ b/src/renderer/components/+workloads-deployments/deployments.store.ts @@ -25,7 +25,7 @@ export class DeploymentStore extends KubeObjectStore { getStatuses(deployments?: Deployment[]) { const status = { failed: 0, pending: 0, running: 0 }; - deployments.forEach(deployment => { + deployments.forEach((deployment) => { const pods = this.getChildPods(deployment); if (pods.some(pod => pod.getStatus() === PodStatus.FAILED)) { diff --git a/src/renderer/components/+workloads-jobs/job-details.tsx b/src/renderer/components/+workloads-jobs/job-details.tsx index 51c40c97d5..2c784c898d 100644 --- a/src/renderer/components/+workloads-jobs/job-details.tsx +++ b/src/renderer/components/+workloads-jobs/job-details.tsx @@ -70,7 +70,7 @@ export class JobDetails extends React.Component { {ownerRefs.length > 0 && Controlled by}> { - ownerRefs.map(ref => { + ownerRefs.map((ref) => { const { name, kind } = ref; const detailsUrl = getDetailsUrl(lookupApiLink(ref, job)); diff --git a/src/renderer/components/+workloads-jobs/job.store.ts b/src/renderer/components/+workloads-jobs/job.store.ts index 569c9efb13..d2b7a4153f 100644 --- a/src/renderer/components/+workloads-jobs/job.store.ts +++ b/src/renderer/components/+workloads-jobs/job.store.ts @@ -23,7 +23,7 @@ export class JobStore extends KubeObjectStore { getStatuses(jobs?: Job[]) { const status = { failed: 0, pending: 0, running: 0, succeeded: 0 }; - jobs.forEach(job => { + jobs.forEach((job) => { const pods = this.getChildPods(job); if (pods.some(pod => pod.getStatus() === PodStatus.FAILED)) { diff --git a/src/renderer/components/+workloads-pods/pod-container-env.tsx b/src/renderer/components/+workloads-pods/pod-container-env.tsx index daff533310..b26780a1a3 100644 --- a/src/renderer/components/+workloads-pods/pod-container-env.tsx +++ b/src/renderer/components/+workloads-pods/pod-container-env.tsx @@ -23,14 +23,14 @@ export const ContainerEnvironment = observer((props: Props) => { useEffect( () => autorun(() => { - env && env.forEach(variable => { + env && env.forEach((variable) => { const { valueFrom } = variable; if (valueFrom && valueFrom.configMapKeyRef) { configMapsStore.load({ name: valueFrom.configMapKeyRef.name, namespace }); } }); - envFrom && envFrom.forEach(item => { + envFrom && envFrom.forEach((item) => { const { configMapRef } = item; if (configMapRef && configMapRef.name) { @@ -44,7 +44,7 @@ export const ContainerEnvironment = observer((props: Props) => { const renderEnv = () => { const orderedEnv = _.sortBy(env, "name"); - return orderedEnv.map(variable => { + return orderedEnv.map((variable) => { const { name, value, valueFrom } = variable; let secretValue = null; @@ -89,7 +89,7 @@ export const ContainerEnvironment = observer((props: Props) => { }; const renderEnvFrom = () => { - const envVars = envFrom.map(vars => { + const envVars = envFrom.map((vars) => { if (!vars.configMapRef || !vars.configMapRef.name) return; const configMap = configMapsStore.getByName(vars.configMapRef.name, namespace); diff --git a/src/renderer/components/+workloads-pods/pod-details-container.tsx b/src/renderer/components/+workloads-pods/pod-details-container.tsx index b883835076..ac332b1325 100644 --- a/src/renderer/components/+workloads-pods/pod-details-container.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-container.tsx @@ -109,7 +109,7 @@ export class PodDetailsContainer extends React.Component { {volumeMounts && volumeMounts.length > 0 && Mounts}> { - volumeMounts.map(mount => { + volumeMounts.map((mount) => { const { name, mountPath, readOnly } = mount; return ( diff --git a/src/renderer/components/+workloads-pods/pod-details-secrets.tsx b/src/renderer/components/+workloads-pods/pod-details-secrets.tsx index 554e8840d2..f5a349e5bb 100644 --- a/src/renderer/components/+workloads-pods/pod-details-secrets.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-secrets.tsx @@ -31,7 +31,7 @@ export class PodDetailsSecrets extends Component { return (
{ - this.secrets.map(secret => { + this.secrets.map((secret) => { return ( {secret.getName()} diff --git a/src/renderer/components/+workloads-pods/pod-details.tsx b/src/renderer/components/+workloads-pods/pod-details.tsx index 18348d23ee..558159f8ad 100644 --- a/src/renderer/components/+workloads-pods/pod-details.tsx +++ b/src/renderer/components/+workloads-pods/pod-details.tsx @@ -100,7 +100,7 @@ export class PodDetails extends React.Component { {conditions && Conditions} className="conditions" labelsOnly> { - conditions.map(condition => { + conditions.map((condition) => { const { type, status, lastTransitionTime } = condition; return ( @@ -137,13 +137,13 @@ export class PodDetails extends React.Component { Init Containers}/> } { - pod.getInitContainers() && pod.getInitContainers().map(container => { + pod.getInitContainers() && pod.getInitContainers().map((container) => { return ; }) } Containers}/> { - pod.getContainers().map(container => { + pod.getContainers().map((container) => { const { name } = container; const metrics = getItemMetrics(toJS(this.containerMetrics), name); @@ -161,7 +161,7 @@ export class PodDetails extends React.Component { {volumes.length > 0 && ( <> Volumes}/> - {volumes.map(volume => { + {volumes.map((volume) => { const claimName = volume.persistentVolumeClaim ? volume.persistentVolumeClaim.claimName : null; const configMap = volume.configMap ? volume.configMap.name : null; const type = Object.keys(volume)[1]; diff --git a/src/renderer/components/+workloads-pods/pods.store.ts b/src/renderer/components/+workloads-pods/pods.store.ts index b28ef73a82..b41f290b57 100644 --- a/src/renderer/components/+workloads-pods/pods.store.ts +++ b/src/renderer/components/+workloads-pods/pods.store.ts @@ -31,7 +31,7 @@ export class PodsStore extends KubeObjectStore { getPodsByOwner(workload: WorkloadKubeObject): Pod[] { if (!workload) return []; - return this.items.filter(pod => { + return this.items.filter((pod) => { const owners = pod.getOwnerRefs(); if (!owners.length) return; @@ -53,7 +53,7 @@ export class PodsStore extends KubeObjectStore { getPodKubeMetrics(pod: Pod) { const containers = pod.getContainers(); const empty = { cpu: 0, memory: 0 }; - const metrics = this.kubeMetrics.find(metric => { + const metrics = this.kubeMetrics.find((metric) => { return [ metric.getName() === pod.getName(), metric.getNs() === pod.getNs() diff --git a/src/renderer/components/+workloads-pods/pods.tsx b/src/renderer/components/+workloads-pods/pods.tsx index e2fc68538f..6a579ef274 100644 --- a/src/renderer/components/+workloads-pods/pods.tsx +++ b/src/renderer/components/+workloads-pods/pods.tsx @@ -38,7 +38,7 @@ interface Props extends RouteComponentProps { @observer export class Pods extends React.Component { renderContainersStatus(pod: Pod) { - return pod.getContainerStatuses().map(containerStatus => { + return pod.getContainerStatuses().map((containerStatus) => { const { name, state, ready } = containerStatus; return ( @@ -107,7 +107,7 @@ export class Pods extends React.Component { pod.getNs(), this.renderContainersStatus(pod), pod.getRestartsCount(), - pod.getOwnerRefs().map(ref => { + pod.getOwnerRefs().map((ref) => { const { kind, name } = ref; const detailsLink = getDetailsUrl(lookupApiLink(ref, pod)); diff --git a/src/renderer/components/+workloads-replicasets/replicasets.tsx b/src/renderer/components/+workloads-replicasets/replicasets.tsx index 1febfa7acf..ba430118a6 100644 --- a/src/renderer/components/+workloads-replicasets/replicasets.tsx +++ b/src/renderer/components/+workloads-replicasets/replicasets.tsx @@ -65,7 +65,7 @@ export class ReplicaSets extends React.Component { { - replicaSets.map(replica => { + replicaSets.map((replica) => { return ( { getStatuses(statefulSets: StatefulSet[]) { const status = { failed: 0, pending: 0, running: 0 }; - statefulSets.forEach(statefulSet => { + statefulSets.forEach((statefulSet) => { const pods = this.getChildPods(statefulSet); if (pods.some(pod => pod.getStatus() === PodStatus.FAILED)) { diff --git a/src/renderer/components/+workloads/workloads.route.ts b/src/renderer/components/+workloads/workloads.route.ts index a0062e7336..664b58bd91 100644 --- a/src/renderer/components/+workloads/workloads.route.ts +++ b/src/renderer/components/+workloads/workloads.route.ts @@ -65,10 +65,10 @@ export const jobsURL = buildURL(jobsRoute.path); export const cronJobsURL = buildURL(cronJobsRoute.path); export const workloadURL: Partial>> = { - "pods": podsURL, - "deployments": deploymentsURL, - "daemonsets": daemonSetsURL, - "statefulsets": statefulSetsURL, - "jobs": jobsURL, - "cronjobs": cronJobsURL, + pods: podsURL, + deployments: deploymentsURL, + daemonsets: daemonSetsURL, + statefulsets: statefulSetsURL, + jobs: jobsURL, + cronjobs: cronJobsURL, }; diff --git a/src/renderer/components/+workloads/workloads.stores.ts b/src/renderer/components/+workloads/workloads.stores.ts index 5d127e18be..be4e63cd16 100644 --- a/src/renderer/components/+workloads/workloads.stores.ts +++ b/src/renderer/components/+workloads/workloads.stores.ts @@ -8,10 +8,10 @@ import { cronJobStore } from "../+workloads-cronjobs/cronjob.store"; import { KubeResource } from "../../../common/rbac"; export const workloadStores: Partial> = { - "pods": podsStore, - "deployments": deploymentStore, - "daemonsets": daemonSetStore, - "statefulsets": statefulSetStore, - "jobs": jobStore, - "cronjobs": cronJobStore, + pods: podsStore, + deployments: deploymentStore, + daemonsets: daemonSetStore, + statefulsets: statefulSetStore, + jobs: jobStore, + cronjobs: cronJobStore, }; diff --git a/src/renderer/components/+workspaces/workspaces.tsx b/src/renderer/components/+workspaces/workspaces.tsx index 9a31ba93d9..d876164aec 100644 --- a/src/renderer/components/+workspaces/workspaces.tsx +++ b/src/renderer/components/+workspaces/workspaces.tsx @@ -179,7 +179,7 @@ export class Workspaces extends React.Component { placeholder={_i18n._(t`Name`)} value={editingWorkspace.name} onChange={v => editingWorkspace.name = v} - onKeyPress={(e) => this.onInputKeypress(e, workspaceId)} + onKeyPress={e => this.onInputKeypress(e, workspaceId)} validators={[isRequired, existenceValidator]} autoFocus /> @@ -188,7 +188,7 @@ export class Workspaces extends React.Component { placeholder={_i18n._(t`Description`)} value={editingWorkspace.description} onChange={v => editingWorkspace.description = v} - onKeyPress={(e) => this.onInputKeypress(e, workspaceId)} + onKeyPress={e => this.onInputKeypress(e, workspaceId)} /> }, ]; - return buttons.map(button => { + return buttons.map((button) => { if (!button.onClick) { return null; } diff --git a/src/renderer/components/animate/animate.tsx b/src/renderer/components/animate/animate.tsx index e114e0bbb7..0c89fb994e 100644 --- a/src/renderer/components/animate/animate.tsx +++ b/src/renderer/components/animate/animate.tsx @@ -36,7 +36,7 @@ export class Animate extends React.Component { componentDidMount() { disposeOnUnmount(this, [ - reaction(() => this.props.enter, enter => { + reaction(() => this.props.enter, (enter) => { if (enter) this.enter(); else this.leave(); }, { diff --git a/src/renderer/components/app-init/app-init.tsx b/src/renderer/components/app-init/app-init.tsx index cf3f91a94f..bba8ff2979 100644 --- a/src/renderer/components/app-init/app-init.tsx +++ b/src/renderer/components/app-init/app-init.tsx @@ -25,7 +25,7 @@ export class AppInit extends React.Component { render(, rootElem); // check again in 1-5 seconds - return new Promise(resolve => { + return new Promise((resolve) => { const timeoutDelay = 1000 + Math.random() * 4000; setTimeout(() => resolve(AppInit.readyStateCheck(rootElem)), timeoutDelay); diff --git a/src/renderer/components/app.tsx b/src/renderer/components/app.tsx index 3e8ab30cf8..f338a06a35 100755 --- a/src/renderer/components/app.tsx +++ b/src/renderer/components/app.tsx @@ -150,7 +150,7 @@ export class App extends React.Component { if (tabRoutes.length > 0) { const pageComponent = () => ; - return tab.routePath)} />; + return tab.routePath)} />; } else { const page = clusterPageRegistry.getByPageMenuTarget(menu.target); diff --git a/src/renderer/components/chart/bar-chart.tsx b/src/renderer/components/chart/bar-chart.tsx index 69b65b10c9..8445442a4b 100644 --- a/src/renderer/components/chart/bar-chart.tsx +++ b/src/renderer/components/chart/bar-chart.tsx @@ -39,7 +39,7 @@ export class BarChart extends React.Component { ...data, datasets: data.datasets .filter(set => set.data.length) - .map(item => { + .map((item) => { return { type: ChartKind.BAR, borderWidth: { top: 3 }, @@ -111,7 +111,7 @@ export class BarChart extends React.Component { mode: "index", position: "cursor", callbacks: { - title: tooltipItems => { + title: (tooltipItems) => { const now = new Date().getTime(); if (new Date(tooltipItems[0].xLabel).getTime() > now) return ""; diff --git a/src/renderer/components/chart/chart.tsx b/src/renderer/components/chart/chart.tsx index b7e621be22..30befe7d59 100644 --- a/src/renderer/components/chart/chart.tsx +++ b/src/renderer/components/chart/chart.tsx @@ -85,7 +85,7 @@ export class Chart extends React.Component { this.currentChartData = { ...data, - datasets: data.datasets && data.datasets.map(set => { + datasets: data.datasets && data.datasets.map((set) => { return { ...set }; @@ -109,7 +109,7 @@ export class Chart extends React.Component { if (datasets.length > nextDatasets.length) { const sets = [...datasets]; - sets.forEach(set => { + sets.forEach((set) => { if (!nextDatasets.find(next => next.id === set.id)) { remove(datasets, (item => item.id === set.id)); } diff --git a/src/renderer/components/dock/create-resource.tsx b/src/renderer/components/dock/create-resource.tsx index b26a7385b2..a733f71213 100644 --- a/src/renderer/components/dock/create-resource.tsx +++ b/src/renderer/components/dock/create-resource.tsx @@ -46,7 +46,7 @@ export class CreateResource extends React.Component { const errors: string[] = []; await Promise.all( - resources.map(data => { + resources.map((data) => { return resourceApplierApi.update(data) .then(item => createdResources.push(item.getName())) .catch((err: JsonApiErrorParsed) => errors.push(err.toString())); diff --git a/src/renderer/components/dock/dock-tab.store.ts b/src/renderer/components/dock/dock-tab.store.ts index b66db14d1e..1967b6a968 100644 --- a/src/renderer/components/dock/dock-tab.store.ts +++ b/src/renderer/components/dock/dock-tab.store.ts @@ -26,7 +26,7 @@ export class DockTabStore { autorun(() => { const currentTabs = dockStore.tabs.map(tab => tab.id); - Array.from(this.data.keys()).forEach(tabId => { + Array.from(this.data.keys()).forEach((tabId) => { if (!currentTabs.includes(tabId)) { this.clearData(tabId); } diff --git a/src/renderer/components/dock/dock.store.ts b/src/renderer/components/dock/dock.store.ts index 60c6085bcc..40fff1f717 100644 --- a/src/renderer/components/dock/dock.store.ts +++ b/src/renderer/components/dock/dock.store.ts @@ -63,7 +63,7 @@ export class DockStore { selectedTabId: this.selectedTabId, height: this.height, tabs: this.tabs.slice(), - }), data => { + }), (data) => { this.storage.set(data); }); @@ -126,7 +126,7 @@ export class DockStore { protected getNewTabNumber(kind: TabKind) { const tabNumbers = this.tabs .filter(tab => tab.kind === kind) - .map(tab => { + .map((tab) => { const tabNumber = +tab.title.match(/\d+/); return tabNumber === 0 ? 1 : tabNumber; // tab without a number is first diff --git a/src/renderer/components/dock/pod-log-controls.tsx b/src/renderer/components/dock/pod-log-controls.tsx index 1d91a9ca11..85ace192fd 100644 --- a/src/renderer/components/dock/pod-log-controls.tsx +++ b/src/renderer/components/dock/pod-log-controls.tsx @@ -60,13 +60,13 @@ export const PodLogControls = observer((props: Props) => { return [ { label: _i18n._(t`Containers`), - options: containers.map(container => { + options: containers.map((container) => { return { value: container.name }; }), }, { label: _i18n._(t`Init Containers`), - options: initContainers.map(container => { + options: initContainers.map((container) => { return { value: container.name }; }), } diff --git a/src/renderer/components/dock/pod-log-list.tsx b/src/renderer/components/dock/pod-log-list.tsx index 392e0eefc0..ff100b7282 100644 --- a/src/renderer/components/dock/pod-log-list.tsx +++ b/src/renderer/components/dock/pod-log-list.tsx @@ -229,7 +229,7 @@ const JumpToBottom = ({ onClick }: JumpToBottomProps) => {
- {filters.map(filter => { + {filters.map((filter) => { const { value, type } = filter; return ( 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 ccdef27ef3..efb664960d 100644 --- a/src/renderer/components/item-object-list/page-filters-select.tsx +++ b/src/renderer/components/item-object-list/page-filters-select.tsx @@ -37,7 +37,7 @@ export class PageFiltersSelect extends React.Component { options.push({ label: Namespace, - options: namespaceStore.items.map(ns => { + options: namespaceStore.items.map((ns) => { const name = ns.getName(); return { diff --git a/src/renderer/components/item-object-list/page-filters.store.ts b/src/renderer/components/item-object-list/page-filters.store.ts index 8ca3ce930f..bc5fd8513e 100644 --- a/src/renderer/components/item-object-list/page-filters.store.ts +++ b/src/renderer/components/item-object-list/page-filters.store.ts @@ -29,12 +29,12 @@ export class PageFiltersStore { protected syncWithContextNamespace() { const disposers = [ - reaction(() => this.getValues(FilterType.NAMESPACE), filteredNs => { + reaction(() => this.getValues(FilterType.NAMESPACE), (filteredNs) => { if (filteredNs.length !== namespaceStore.contextNs.length) { namespaceStore.setContext(filteredNs); } }), - reaction(() => namespaceStore.contextNs.toJS(), contextNs => { + reaction(() => namespaceStore.contextNs.toJS(), (contextNs) => { const filteredNs = this.getValues(FilterType.NAMESPACE); const isChanged = contextNs.length !== filteredNs.length; @@ -55,7 +55,7 @@ export class PageFiltersStore { protected syncWithGlobalSearch() { const disposers = [ reaction(() => this.getValues(FilterType.SEARCH)[0], setSearch), - reaction(() => getSearch(), search => { + reaction(() => getSearch(), (search) => { const filter = this.getByType(FilterType.SEARCH); if (filter) { diff --git a/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx b/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx index 2fdb9bff6f..1f147fd533 100644 --- a/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx +++ b/src/renderer/components/kube-object-status-icon/kube-object-status-icon.tsx @@ -54,7 +54,7 @@ export class KubeObjectStatusIcon extends React.Component { } renderStatuses(statuses: KubeObjectStatus[], level: number) { - const filteredStatuses = statuses.filter((item) => item.level == level); + const filteredStatuses = statuses.filter(item => item.level == level); return filteredStatuses.length > 0 && (
diff --git a/src/renderer/components/kube-object/kube-object-meta.tsx b/src/renderer/components/kube-object/kube-object-meta.tsx index b93eb89cb0..252495f728 100644 --- a/src/renderer/components/kube-object/kube-object-meta.tsx +++ b/src/renderer/components/kube-object/kube-object-meta.tsx @@ -71,7 +71,7 @@ export class KubeObjectMeta extends React.Component { {ownerRefs && ownerRefs.length > 0 && Controlled By} hidden={this.isHidden("ownerReferences")}> { - ownerRefs.map(ref => { + ownerRefs.map((ref) => { const { name, kind } = ref; const ownerDetailsUrl = getDetailsUrl(lookupApiLink(ref, object)); diff --git a/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx b/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx index 92201a83a9..d637a9c8f2 100644 --- a/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx +++ b/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx @@ -53,7 +53,7 @@ export class KubeConfigDialog extends React.Component { }; async loadConfig() { - const config = await this.data.loader().catch(err => { + const config = await this.data.loader().catch((err) => { Notifications.error(err); this.close(); }); diff --git a/src/renderer/components/layout/main-layout.tsx b/src/renderer/components/layout/main-layout.tsx index d02d7077aa..fb0225d86b 100755 --- a/src/renderer/components/layout/main-layout.tsx +++ b/src/renderer/components/layout/main-layout.tsx @@ -30,12 +30,12 @@ export class MainLayout extends React.Component { @disposeOnUnmount syncPinnedStateWithStorage = reaction( () => this.isPinned, - (isPinned) => this.storage.merge({ pinnedSidebar: isPinned }) + isPinned => this.storage.merge({ pinnedSidebar: isPinned }) ); @disposeOnUnmount syncWidthStateWithStorage = reaction( () => this.sidebarWidth, - (sidebarWidth) => this.storage.merge({ sidebarWidth }) + sidebarWidth => this.storage.merge({ sidebarWidth }) ); diff --git a/src/renderer/components/layout/sidebar.tsx b/src/renderer/components/layout/sidebar.tsx index 9bbed0dae5..29058f5286 100644 --- a/src/renderer/components/layout/sidebar.tsx +++ b/src/renderer/components/layout/sidebar.tsx @@ -115,7 +115,7 @@ export class Sidebar extends React.Component { isActive = isActiveRoute(registeredPage.routePath); } else if (tabRoutes.length > 0) { pageUrl = tabRoutes[0].url; - isActive = isActiveRoute(tabRoutes.map((tab) => tab.routePath)); + isActive = isActiveRoute(tabRoutes.map(tab => tab.routePath)); } else { return; } @@ -271,7 +271,7 @@ interface SidebarNavItemProps { const navItemStorage = createStorage<[string, boolean][]>("sidebar_menu_item", []); const navItemState = observable.map(navItemStorage.get()); -reaction(() => [...navItemState], (value) => navItemStorage.set(value)); +reaction(() => [...navItemState], value => navItemStorage.set(value)); @observer class SidebarNavItem extends React.Component { diff --git a/src/renderer/components/layout/tab-layout.tsx b/src/renderer/components/layout/tab-layout.tsx index 6555fa147b..1430dffffb 100644 --- a/src/renderer/components/layout/tab-layout.tsx +++ b/src/renderer/components/layout/tab-layout.tsx @@ -32,7 +32,7 @@ export const TabLayout = observer(({ className, contentClass, tabs = [], childre return (
{hasTabs && ( - navigate(url)}> + navigate(url)}> {tabs.map(({ title, routePath, url = routePath, exact }) => { const isActive = !!matchPath(currentLocation, { path: routePath, exact }); diff --git a/src/renderer/components/notifications/notifications.tsx b/src/renderer/components/notifications/notifications.tsx index 4ab297e289..7144dc6d95 100644 --- a/src/renderer/components/notifications/notifications.tsx +++ b/src/renderer/components/notifications/notifications.tsx @@ -71,7 +71,7 @@ export class Notifications extends React.Component { return (
this.elem = e}> - {notifications.map(notification => { + {notifications.map((notification) => { const { id, status } = notification; const msgText = this.getMessage(notification); diff --git a/src/renderer/components/radio/radio.tsx b/src/renderer/components/radio/radio.tsx index 02d8efd54e..767aed8c63 100644 --- a/src/renderer/components/radio/radio.tsx +++ b/src/renderer/components/radio/radio.tsx @@ -24,7 +24,7 @@ export class RadioGroup extends React.Component { return (
- {radios.map(radio => { + {radios.map((radio) => { return React.cloneElement(radio, { name, disabled: disabled !== undefined ? disabled : radio.props.disabled, diff --git a/src/renderer/components/select/select.tsx b/src/renderer/components/select/select.tsx index ddbecef8c6..9025d67fd5 100644 --- a/src/renderer/components/select/select.tsx +++ b/src/renderer/components/select/select.tsx @@ -58,7 +58,7 @@ export class Select extends React.Component { const { value, isMulti } = this.props; if (isMulti) { - return this.options.filter(opt => { + return this.options.filter((opt) => { const values = value ? [].concat(value) : []; return values.includes(opt) || values.includes(opt.value); @@ -72,7 +72,7 @@ export class Select extends React.Component { const { autoConvertOptions, options } = this.props; if (autoConvertOptions && Array.isArray(options)) { - return options.map(opt => { + return options.map((opt) => { return this.isValidOption(opt) ? opt : { value: opt, label: String(opt) }; }); } diff --git a/src/renderer/components/table/table.tsx b/src/renderer/components/table/table.tsx index a055ab432b..0163ba46fc 100644 --- a/src/renderer/components/table/table.tsx +++ b/src/renderer/components/table/table.tsx @@ -76,7 +76,7 @@ export class Table extends React.Component { const columns = React.Children.toArray(headElem.props.children) as TableCellElem[]; return React.cloneElement(headElem, { - children: columns.map(elem => { + children: columns.map((elem) => { if (elem.props.checkbox) { return elem; } @@ -150,7 +150,7 @@ export class Table extends React.Component { sortedItems = this.getSorted(sortedItems); if (rows.length) { - rows = sortedItems.map(item => rows.find(row => { + rows = sortedItems.map(item => rows.find((row) => { return item == row.props.sortItem; })); } @@ -166,7 +166,7 @@ export class Table extends React.Component { let rowHeights: number[] = Array(items.length).fill(lineHeight + padding * 2); if (customRowHeights) { - rowHeights = sortedItems.map(item => { + rowHeights = sortedItems.map((item) => { return customRowHeights(item, lineHeight, padding * 2); }); } diff --git a/src/renderer/components/tabs/tabs.tsx b/src/renderer/components/tabs/tabs.tsx index ad01f50920..fcad11f828 100644 --- a/src/renderer/components/tabs/tabs.tsx +++ b/src/renderer/components/tabs/tabs.tsx @@ -126,7 +126,7 @@ export class Tab extends React.PureComponent { let { className } = this.props; className = cssNames("Tab flex gaps align-center", className, { - "active": this.isActive, + active: this.isActive, disabled, }); diff --git a/src/renderer/kube-object.store.ts b/src/renderer/kube-object.store.ts index 3de227c03b..887b306a6e 100644 --- a/src/renderer/kube-object.store.ts +++ b/src/renderer/kube-object.store.ts @@ -32,7 +32,7 @@ export abstract class KubeObjectStore extends ItemSt } getByName(name: string, namespace?: string): T { - return this.items.find(item => { + return this.items.find((item) => { return item.getName() === name && ( namespace ? item.getNs() === namespace : true ); diff --git a/src/renderer/navigation.ts b/src/renderer/navigation.ts index 2824dad490..a480d90819 100644 --- a/src/renderer/navigation.ts +++ b/src/renderer/navigation.ts @@ -46,7 +46,7 @@ export function getQueryString(params?: Partial, merge = true) { const searchParams = navigation.searchParams.copyWith(params); if (!merge) { - Array.from(searchParams.keys()).forEach(key => { + Array.from(searchParams.keys()).forEach((key) => { if (!(key in params)) searchParams.delete(key); }); } @@ -117,7 +117,7 @@ export function getMatchedClusterId(): string { if (process.isMainFrame) { // Keep track of active cluster-id for handling IPC/menus/etc. - reaction(() => getMatchedClusterId(), clusterId => { + reaction(() => getMatchedClusterId(), (clusterId) => { broadcastMessage("cluster-view:current-id", clusterId); }, { fireImmediately: true diff --git a/src/renderer/theme.store.ts b/src/renderer/theme.store.ts index 1d08885ede..ed80e0073c 100644 --- a/src/renderer/theme.store.ts +++ b/src/renderer/theme.store.ts @@ -44,7 +44,7 @@ export class ThemeStore { constructor() { // auto-apply active theme - reaction(() => this.activeThemeId, async themeId => { + reaction(() => this.activeThemeId, async (themeId) => { try { await this.loadTheme(themeId); this.applyTheme(); diff --git a/src/renderer/utils/convertMemory.ts b/src/renderer/utils/convertMemory.ts index 55e97b509c..56fc192d55 100644 --- a/src/renderer/utils/convertMemory.ts +++ b/src/renderer/utils/convertMemory.ts @@ -7,7 +7,7 @@ export function unitsToBytes(value: string) { if (!suffixes.some(suffix => value.includes(suffix))) { return parseFloat(value); } - + const suffix = value.replace(/[0-9]|i|\./g, ""); const index = suffixes.indexOf(suffix); diff --git a/src/renderer/utils/cssNames.ts b/src/renderer/utils/cssNames.ts index f16f57c314..7ceb3936a2 100755 --- a/src/renderer/utils/cssNames.ts +++ b/src/renderer/utils/cssNames.ts @@ -8,7 +8,7 @@ export type IClassNameMap = { export function cssNames(...args: IClassName[]): string { const map: IClassNameMap = {}; - args.forEach(className => { + args.forEach((className) => { if (typeof className === "string" || Array.isArray(className)) { [].concat(className).forEach(name => map[name] = true); } diff --git a/src/renderer/utils/rbac.ts b/src/renderer/utils/rbac.ts index 36665824aa..ebaabcf683 100644 --- a/src/renderer/utils/rbac.ts +++ b/src/renderer/utils/rbac.ts @@ -2,27 +2,27 @@ import { KubeResource } from "../../common/rbac"; import { _i18n } from "../i18n"; export const ResourceNames: Record = { - "namespaces": _i18n._("Namespaces"), - "nodes": _i18n._("Nodes"), - "events": _i18n._("Events"), - "resourcequotas": _i18n._("Resource Quotas"), - "services": _i18n._("Services"), - "secrets": _i18n._("Secrets"), - "configmaps": _i18n._("Config Maps"), - "ingresses": _i18n._("Ingresses"), - "networkpolicies": _i18n._("Network Policies"), - "persistentvolumes": _i18n._("Persistent Volumes"), - "storageclasses": _i18n._("Storage Classes"), - "pods": _i18n._("Pods"), - "daemonsets": _i18n._("Daemon Sets"), - "deployments": _i18n._("Deployments"), - "statefulsets": _i18n._("Stateful Sets"), - "replicasets": _i18n._("Replica Sets"), - "jobs": _i18n._("Jobs"), - "cronjobs": _i18n._("Cron Jobs"), - "endpoints": _i18n._("Endpoints"), - "customresourcedefinitions": _i18n._("Custom Resource Definitions"), - "horizontalpodautoscalers": _i18n._("Horizontal Pod Autoscalers"), - "podsecuritypolicies": _i18n._("Pod Security Policies"), - "poddisruptionbudgets": _i18n._("Pod Disruption Budgets"), + namespaces: _i18n._("Namespaces"), + nodes: _i18n._("Nodes"), + events: _i18n._("Events"), + resourcequotas: _i18n._("Resource Quotas"), + services: _i18n._("Services"), + secrets: _i18n._("Secrets"), + configmaps: _i18n._("Config Maps"), + ingresses: _i18n._("Ingresses"), + networkpolicies: _i18n._("Network Policies"), + persistentvolumes: _i18n._("Persistent Volumes"), + storageclasses: _i18n._("Storage Classes"), + pods: _i18n._("Pods"), + daemonsets: _i18n._("Daemon Sets"), + deployments: _i18n._("Deployments"), + statefulsets: _i18n._("Stateful Sets"), + replicasets: _i18n._("Replica Sets"), + jobs: _i18n._("Jobs"), + cronjobs: _i18n._("Cron Jobs"), + endpoints: _i18n._("Endpoints"), + customresourcedefinitions: _i18n._("Custom Resource Definitions"), + horizontalpodautoscalers: _i18n._("Horizontal Pod Autoscalers"), + podsecuritypolicies: _i18n._("Pod Security Policies"), + poddisruptionbudgets: _i18n._("Pod Disruption Budgets"), }; diff --git a/yarn.lock b/yarn.lock index 8df1169b83..fa98e24e05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2565,19 +2565,6 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.0.0.tgz#99349a501447fed91de18346705c0c65cf603bee" - integrity sha512-5e6q1TR7gS2P+8W2xndCu7gBh3BzmYEo70OyIdsmCmknHha/yNbz2vdevl+tP1uoaMOcrzg4gyrAijuV3DDBHA== - dependencies: - "@typescript-eslint/experimental-utils" "4.0.0" - "@typescript-eslint/scope-manager" "4.0.0" - debug "^4.1.1" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - "@typescript-eslint/eslint-plugin@^4.5.0": version "4.8.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.2.tgz#cf9102ec800391caa574f589ffe0623cca1d9308" @@ -2591,17 +2578,18 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.0.0.tgz#fbec21a3b5ab59127edb6ce2e139ed378cc50eb5" - integrity sha512-hbX6zR+a/vcpFVNJYN/Nbd7gmaMosDTxHEKcvmhWeWcq/0UDifrqmCfkkodbAKL46Fn4ekSBMTyq2zlNDzcQxw== +"@typescript-eslint/eslint-plugin@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.9.0.tgz#8fde15743413661fdc086c9f1f5d74a80b856113" + integrity sha512-WrVzGMzzCrgrpnQMQm4Tnf+dk+wdl/YbgIgd5hKGa2P+lnJ2MON+nQnbwgbxtN9QDLi8HO+JAq0/krMnjQK6Cw== dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.0.0" - "@typescript-eslint/types" "4.0.0" - "@typescript-eslint/typescript-estree" "4.0.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" + "@typescript-eslint/experimental-utils" "4.9.0" + "@typescript-eslint/scope-manager" "4.9.0" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" "@typescript-eslint/experimental-utils@4.8.2": version "4.8.2" @@ -2615,23 +2603,27 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.0.0": - version "4.8.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.8.2.tgz#78dccbe5124de2b8dea2d4c363dee9f769151ca8" - integrity sha512-u0leyJqmclYr3KcXOqd2fmx6SDGBO0MUNHHAjr0JS4Crbb3C3d8dwAdlazy133PLCcPn+aOUFiHn72wcuc5wYw== +"@typescript-eslint/experimental-utils@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.9.0.tgz#23a296b85d243afba24e75a43fd55aceda5141f0" + integrity sha512-0p8GnDWB3R2oGhmRXlEnCvYOtaBCijtA5uBfH5GxQKsukdSQyI4opC4NGTUb88CagsoNQ4rb/hId2JuMbzWKFQ== dependencies: - "@typescript-eslint/scope-manager" "4.8.2" - "@typescript-eslint/types" "4.8.2" - "@typescript-eslint/typescript-estree" "4.8.2" - debug "^4.1.1" + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/typescript-estree" "4.9.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" -"@typescript-eslint/scope-manager@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.0.0.tgz#8c9e3b3b8cdf5a1fbe671d9fad73ff67bc027ea8" - integrity sha512-9gcWUPoWo7gk/+ZQPg7L1ySRmR5HLIy3Vu6/LfhQbuzIkGm6v2CGIjpVRISoDLFRovNRDImd4aP/sa8O4yIEBg== +"@typescript-eslint/parser@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.9.0.tgz#bb65f1214b5e221604996db53ef77c9d62b09249" + integrity sha512-QRSDAV8tGZoQye/ogp28ypb8qpsZPV6FOLD+tbN4ohKUWHD2n/u0Q2tIBnCsGwQCiD94RdtLkcqpdK4vKcLCCw== dependencies: - "@typescript-eslint/types" "4.0.0" - "@typescript-eslint/visitor-keys" "4.0.0" + "@typescript-eslint/scope-manager" "4.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/typescript-estree" "4.9.0" + debug "^4.1.1" "@typescript-eslint/scope-manager@4.8.2": version "4.8.2" @@ -2641,29 +2633,23 @@ "@typescript-eslint/types" "4.8.2" "@typescript-eslint/visitor-keys" "4.8.2" -"@typescript-eslint/types@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.0.0.tgz#ec1f9fc06b8558a1d5afa6e337182d08beece7f5" - integrity sha512-bK+c2VLzznX2fUWLK6pFDv3cXGTp7nHIuBMq1B9klA+QCsqLHOOqe5TQReAQDl7DN2RfH+neweo0oC5hYlG7Rg== +"@typescript-eslint/scope-manager@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.9.0.tgz#5eefe305d6b71d1c85af6587b048426bfd4d3708" + integrity sha512-q/81jtmcDtMRE+nfFt5pWqO0R41k46gpVLnuefqVOXl4QV1GdQoBWfk5REcipoJNQH9+F5l+dwa9Li5fbALjzg== + dependencies: + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/visitor-keys" "4.9.0" "@typescript-eslint/types@4.8.2": version "4.8.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.8.2.tgz#c862dd0e569d9478eb82d6aee662ea53f5661a36" integrity sha512-z1/AVcVF8ju5ObaHe2fOpZYEQrwHyZ7PTOlmjd3EoFeX9sv7UekQhfrCmgUO7PruLNfSHrJGQvrW3Q7xQ8EoAw== -"@typescript-eslint/typescript-estree@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.0.0.tgz#2244c63de2f2190bc5718eb0fb3fd2c437d42097" - integrity sha512-ewFMPi2pMLDNIXGMPdf8r7El2oPSZw9PEYB0j+WcpKd7AX2ARmajGa7RUHTukllWX2bj4vWX6JLE1Oih2BMokA== - dependencies: - "@typescript-eslint/types" "4.0.0" - "@typescript-eslint/visitor-keys" "4.0.0" - debug "^4.1.1" - globby "^11.0.1" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" +"@typescript-eslint/types@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.9.0.tgz#3fe8c3632abd07095c7458f7451bd14c85d0033c" + integrity sha512-luzLKmowfiM/IoJL/rus1K9iZpSJK6GlOS/1ezKplb7MkORt2dDcfi8g9B0bsF6JoRGhqn0D3Va55b+vredFHA== "@typescript-eslint/typescript-estree@4.8.2": version "4.8.2" @@ -2679,13 +2665,19 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.0.0.tgz#e2bbb69d98076d6a3f06abcb2048225a74362c33" - integrity sha512-sTouJbv6rjVJeTE4lpSBVYXq/u5K3gbB6LKt7ccFEZPTZB/VeQ0ssUz9q5Hx++sCqBbdF8PzrrgvEnicXAR6NQ== +"@typescript-eslint/typescript-estree@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.9.0.tgz#38a98df6ee281cfd6164d6f9d91795b37d9e508c" + integrity sha512-rmDR++PGrIyQzAtt3pPcmKWLr7MA+u/Cmq9b/rON3//t5WofNR4m/Ybft2vOLj0WtUzjn018ekHjTsnIyBsQug== dependencies: - "@typescript-eslint/types" "4.0.0" - eslint-visitor-keys "^2.0.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/visitor-keys" "4.9.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" "@typescript-eslint/visitor-keys@4.8.2": version "4.8.2" @@ -2695,6 +2687,14 @@ "@typescript-eslint/types" "4.8.2" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.9.0.tgz#f284e9fac43f2d6d35094ce137473ee321f266c8" + integrity sha512-sV45zfdRqQo1A97pOSx3fsjR+3blmwtdCt8LDrXgCX36v4Vmz4KHrhpV6Fo2cRdXmyumxx11AHw0pNJqCNpDyg== + dependencies: + "@typescript-eslint/types" "4.9.0" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"