1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Lint: comma-spacing (error) & comma-dangle (error) (#4200)

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-11-02 17:38:20 -04:00 committed by GitHub
parent 02e77afcd1
commit c6dce043a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
406 changed files with 1590 additions and 1580 deletions

View File

@ -31,18 +31,18 @@ module.exports = {
settings: {
react: {
version: packageJson.devDependencies.react || "detect",
}
},
},
overrides: [
{
files: [
"**/*.js"
"**/*.js",
],
extends: [
"eslint:recommended",
],
env: {
node: true
node: true,
},
parserOptions: {
ecmaVersion: 2018,
@ -51,10 +51,12 @@ module.exports = {
plugins: [
"header",
"unused-imports",
"react-hooks"
"react-hooks",
],
rules: {
"header/header": [2, "./license-header"],
"comma-dangle": ["error", "always-multiline"],
"comma-spacing": "error",
"indent": ["error", 2, {
"SwitchCase": 1,
}],
@ -70,7 +72,7 @@ module.exports = {
"vars": "all",
"args": "after-used",
"ignoreRestSiblings": true,
}
},
],
"quotes": ["error", "double", {
"avoidEscape": true,
@ -97,7 +99,7 @@ module.exports = {
{ "blankLine": "any", "prev": ["const", "let", "var"], "next": ["const", "let", "var"] },
],
"no-template-curly-in-string": "error",
}
},
},
{
files: [
@ -109,7 +111,7 @@ module.exports = {
],
plugins: [
"header",
"unused-imports"
"unused-imports",
],
parserOptions: {
ecmaVersion: 2018,
@ -138,8 +140,12 @@ module.exports = {
"vars": "all",
"args": "after-used",
"ignoreRestSiblings": true,
}
},
],
"comman-dangle": "off",
"@typescript-eslint/comma-dangle": ["error", "always-multiline"],
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"indent": ["error", 2, {
"SwitchCase": 1,
}],
@ -181,7 +187,7 @@ module.exports = {
parser: "@typescript-eslint/parser",
plugins: [
"header",
"unused-imports"
"unused-imports",
],
extends: [
"plugin:@typescript-eslint/recommended",
@ -220,8 +226,12 @@ module.exports = {
"vars": "all",
"args": "after-used",
"ignoreRestSiblings": true,
}
},
],
"comman-dangle": "off",
"@typescript-eslint/comma-dangle": ["error", "always-multiline"],
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"indent": ["error", 2, {
"SwitchCase": 1,
}],
@ -257,6 +267,6 @@ module.exports = {
"react-hooks/exhaustive-deps": "off",
"no-template-curly-in-string": "error",
},
}
]
},
],
};

View File

@ -28,6 +28,6 @@ export default {
},
dialog: jest.fn(),
ipcRenderer: {
on: jest.fn()
}
on: jest.fn(),
},
};

View File

@ -28,7 +28,7 @@ const helmVersion = packageInfo.config.bundledHelmVersion;
if (!isWindows) {
Promise.all([
new HelmCli(path.join(process.cwd(), "binaries", "client", "x64"), helmVersion).ensureBinary(),
new HelmCli(path.join(process.cwd(), "binaries", "client", "arm64"), helmVersion).ensureBinary()
new HelmCli(path.join(process.cwd(), "binaries", "client", "arm64"), helmVersion).ensureBinary(),
]);
} else {
new HelmCli(path.join(process.cwd(), "binaries", "client", "x64"), helmVersion).ensureBinary();

View File

@ -47,7 +47,7 @@ class KubectlDownloader {
const response = await requestPromise({
method: "HEAD",
uri: this.url,
resolveWithFullResponse: true
resolveWithFullResponse: true,
}).catch(console.error);
if (response.headers["etag"]) {
@ -89,7 +89,7 @@ class KubectlDownloader {
console.log(`Downloading kubectl ${this.kubectlVersion} from ${this.url} to ${this.path}`);
const requestOpts: request.UriOptions & request.CoreOptions = {
uri: this.url,
gzip: true
gzip: true,
};
const stream = request(requestOpts);

View File

@ -27,37 +27,37 @@ export default class EventResourceStatusRendererExtension extends Renderer.LensE
{
kind: "Pod",
apiVersions: ["v1"],
resolve: (pod: Renderer.K8sApi.Pod) => resolveStatusForPods(pod)
resolve: (pod: Renderer.K8sApi.Pod) => resolveStatusForPods(pod),
},
{
kind: "ReplicaSet",
apiVersions: ["v1"],
resolve: (replicaSet: Renderer.K8sApi.ReplicaSet) => resolveStatus(replicaSet)
resolve: (replicaSet: Renderer.K8sApi.ReplicaSet) => resolveStatus(replicaSet),
},
{
kind: "Deployment",
apiVersions: ["apps/v1"],
resolve: (deployment: Renderer.K8sApi.Deployment) => resolveStatus(deployment)
resolve: (deployment: Renderer.K8sApi.Deployment) => resolveStatus(deployment),
},
{
kind: "StatefulSet",
apiVersions: ["apps/v1"],
resolve: (statefulSet: Renderer.K8sApi.StatefulSet) => resolveStatus(statefulSet)
resolve: (statefulSet: Renderer.K8sApi.StatefulSet) => resolveStatus(statefulSet),
},
{
kind: "DaemonSet",
apiVersions: ["apps/v1"],
resolve: (daemonSet: Renderer.K8sApi.DaemonSet) => resolveStatus(daemonSet)
resolve: (daemonSet: Renderer.K8sApi.DaemonSet) => resolveStatus(daemonSet),
},
{
kind: "Job",
apiVersions: ["batch/v1"],
resolve: (job: Renderer.K8sApi.Job) => resolveStatus(job)
resolve: (job: Renderer.K8sApi.Job) => resolveStatus(job),
},
{
kind: "CronJob",
apiVersions: ["batch/v1"],
resolve: (cronJob: Renderer.K8sApi.CronJob) => resolveStatusForCronJobs(cronJob)
resolve: (cronJob: Renderer.K8sApi.CronJob) => resolveStatusForCronJobs(cronJob),
},
];
}

View File

@ -42,7 +42,7 @@ export function resolveStatus(object: KubeObject): KubeObjectStatus {
return {
level: KubeObjectStatusLevel.WARNING,
text: `${event.message}`,
timestamp: event.metadata.creationTimestamp
timestamp: event.metadata.creationTimestamp,
};
}
@ -62,7 +62,7 @@ export function resolveStatusForPods(pod: Pod): KubeObjectStatus {
return {
level: KubeObjectStatusLevel.WARNING,
text: `${event.message}`,
timestamp: event.metadata.creationTimestamp
timestamp: event.metadata.creationTimestamp,
};
}
@ -83,6 +83,6 @@ export function resolveStatusForCronJobs(cronJob: CronJob): KubeObjectStatus {
return {
level: KubeObjectStatusLevel.WARNING,
text: `${event.message}`,
timestamp: event.metadata.creationTimestamp
timestamp: event.metadata.creationTimestamp,
};
}

View File

@ -27,7 +27,7 @@ module.exports = [
target: "electron-renderer",
mode: "production",
optimization: {
minimize: false
minimize: false,
},
module: {
rules: [
@ -43,8 +43,8 @@ module.exports = [
"@k8slens/extensions": "var global.LensExtensions",
"react": "var global.React",
"mobx": "var global.Mobx",
"mobx-react": "var global.MobxReact"
}
"mobx-react": "var global.MobxReact",
},
],
resolve: {
extensions: [ ".tsx", ".ts", ".js" ],

View File

@ -35,8 +35,8 @@ export default class ClusterMetricsFeatureExtension extends Renderer.LensExtensi
return (
<MetricsSettings cluster={entity} />
);
}
}
}
},
},
},
];
}

View File

@ -30,7 +30,7 @@ const {
},
Component: {
SubTitle, FormSwitch, Switcher, Button,
}
},
} = Renderer;
interface Props {
@ -47,7 +47,7 @@ export class MetricsSettings extends React.Component<Props> {
@observable featureStates = {
prometheus: false,
kubeStateMetrics: false,
nodeExporter: false
nodeExporter: false,
};
@observable canUpgrade = false;
@observable upgrading = false;
@ -56,7 +56,7 @@ export class MetricsSettings extends React.Component<Props> {
config: MetricsConfiguration = {
prometheus: {
enabled: false
enabled: false,
},
persistence: {
enabled: false,

View File

@ -27,7 +27,7 @@ module.exports = [
target: "electron-renderer",
mode: "production",
optimization: {
minimize: false
minimize: false,
},
module: {
rules: [
@ -43,8 +43,8 @@ module.exports = [
"@k8slens/extensions": "var global.LensExtensions",
"react": "var global.React",
"mobx": "var global.Mobx",
"mobx-react": "var global.MobxReact"
}
"mobx-react": "var global.MobxReact",
},
],
resolve: {
extensions: [ ".tsx", ".ts", ".js" ],
@ -56,7 +56,7 @@ module.exports = [
path: path.resolve(__dirname, "dist"),
},
node: {
__dirname: false
}
__dirname: false,
},
},
];

View File

@ -29,8 +29,8 @@ export default class NodeMenuRendererExtension extends Renderer.LensExtension {
kind: "Node",
apiVersions: ["v1"],
components: {
MenuItem: (props: NodeMenuProps) => <NodeMenu {...props} />
}
}
MenuItem: (props: NodeMenuProps) => <NodeMenu {...props} />,
},
},
];
}

View File

@ -32,7 +32,7 @@ const {
MenuItem,
Icon,
},
Navigation
Navigation,
} = Renderer;
const {
App,

View File

@ -27,7 +27,7 @@ module.exports = [
target: "electron-renderer",
mode: "production",
optimization: {
minimize: false
minimize: false,
},
module: {
rules: [
@ -43,8 +43,8 @@ module.exports = [
"@k8slens/extensions": "var global.LensExtensions",
"react": "var global.React",
"mobx": "var global.Mobx",
"mobx-react": "var global.MobxReact"
}
"mobx-react": "var global.MobxReact",
},
],
resolve: {
extensions: [ ".tsx", ".ts", ".js" ],

View File

@ -31,22 +31,22 @@ export default class PodMenuRendererExtension extends Renderer.LensExtension {
kind: "Pod",
apiVersions: ["v1"],
components: {
MenuItem: (props: PodAttachMenuProps) => <PodAttachMenu {...props} />
}
MenuItem: (props: PodAttachMenuProps) => <PodAttachMenu {...props} />,
},
},
{
kind: "Pod",
apiVersions: ["v1"],
components: {
MenuItem: (props: PodShellMenuProps) => <PodShellMenu {...props} />
}
MenuItem: (props: PodShellMenuProps) => <PodShellMenu {...props} />,
},
},
{
kind: "Pod",
apiVersions: ["v1"],
components: {
MenuItem: (props: PodLogsMenuProps) => <PodLogsMenu {...props} />
}
}
MenuItem: (props: PodLogsMenuProps) => <PodLogsMenu {...props} />,
},
},
];
}

View File

@ -68,12 +68,12 @@ export class PodAttachMenu extends React.Component<PodAttachMenuProps> {
}
const shell = createTerminalTab({
title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()}) [Attached]`
title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()}) [Attached]`,
});
terminalStore.sendCommand(commandParts.join(" "), {
enter: true,
tabId: shell.id
tabId: shell.id,
});
Navigation.hideDetails();

View File

@ -76,12 +76,12 @@ export class PodShellMenu extends React.Component<PodShellMenuProps> {
}
const shell = createTerminalTab({
title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()})`
title: `Pod: ${pod.getName()} (namespace: ${pod.getNs()})`,
});
terminalStore.sendCommand(commandParts.join(" "), {
enter: true,
tabId: shell.id
tabId: shell.id,
});
Navigation.hideDetails();

View File

@ -27,7 +27,7 @@ module.exports = [
target: "electron-renderer",
mode: "production",
optimization: {
minimize: false
minimize: false,
},
module: {
rules: [
@ -43,8 +43,8 @@ module.exports = [
"@k8slens/extensions": "var global.LensExtensions",
"react": "var global.React",
"mobx": "var global.Mobx",
"mobx-react": "var global.MobxReact"
}
"mobx-react": "var global.MobxReact",
},
],
resolve: {
extensions: [ ".tsx", ".ts", ".js" ],

View File

@ -75,16 +75,16 @@ const commonPageTests: CommonPageTest[] = [{
name: "Cluster",
href: "/overview",
expectedSelector: "div[data-testid='cluster-overview-page'] div.label",
expectedText: "CPU"
}
expectedText: "CPU",
},
},
{
page: {
name: "Nodes",
href: "/nodes",
expectedSelector: "h5.title",
expectedText: "Nodes"
}
expectedText: "Nodes",
},
},
{
drawerId: "workloads",
@ -93,51 +93,51 @@ const commonPageTests: CommonPageTest[] = [{
name: "Overview",
href: "/workloads",
expectedSelector: "h5.box",
expectedText: "Overview"
expectedText: "Overview",
},
{
name: "Pods",
href: "/pods",
expectedSelector: "h5.title",
expectedText: "Pods"
expectedText: "Pods",
},
{
name: "Deployments",
href: "/deployments",
expectedSelector: "h5.title",
expectedText: "Deployments"
expectedText: "Deployments",
},
{
name: "DaemonSets",
href: "/daemonsets",
expectedSelector: "h5.title",
expectedText: "Daemon Sets"
expectedText: "Daemon Sets",
},
{
name: "StatefulSets",
href: "/statefulsets",
expectedSelector: "h5.title",
expectedText: "Stateful Sets"
expectedText: "Stateful Sets",
},
{
name: "ReplicaSets",
href: "/replicasets",
expectedSelector: "h5.title",
expectedText: "Replica Sets"
expectedText: "Replica Sets",
},
{
name: "Jobs",
href: "/jobs",
expectedSelector: "h5.title",
expectedText: "Jobs"
expectedText: "Jobs",
},
{
name: "CronJobs",
href: "/cronjobs",
expectedSelector: "h5.title",
expectedText: "Cron Jobs"
expectedText: "Cron Jobs",
},
]
],
},
{
drawerId: "config",
@ -146,39 +146,39 @@ const commonPageTests: CommonPageTest[] = [{
name: "ConfigMaps",
href: "/configmaps",
expectedSelector: "h5.title",
expectedText: "Config Maps"
expectedText: "Config Maps",
},
{
name: "Secrets",
href: "/secrets",
expectedSelector: "h5.title",
expectedText: "Secrets"
expectedText: "Secrets",
},
{
name: "Resource Quotas",
href: "/resourcequotas",
expectedSelector: "h5.title",
expectedText: "Resource Quotas"
expectedText: "Resource Quotas",
},
{
name: "Limit Ranges",
href: "/limitranges",
expectedSelector: "h5.title",
expectedText: "Limit Ranges"
expectedText: "Limit Ranges",
},
{
name: "HPA",
href: "/hpa",
expectedSelector: "h5.title",
expectedText: "Horizontal Pod Autoscalers"
expectedText: "Horizontal Pod Autoscalers",
},
{
name: "Pod Disruption Budgets",
href: "/poddisruptionbudgets",
expectedSelector: "h5.title",
expectedText: "Pod Disruption Budgets"
expectedText: "Pod Disruption Budgets",
},
]
],
},
{
drawerId: "networks",
@ -187,27 +187,27 @@ const commonPageTests: CommonPageTest[] = [{
name: "Services",
href: "/services",
expectedSelector: "h5.title",
expectedText: "Services"
expectedText: "Services",
},
{
name: "Endpoints",
href: "/endpoints",
expectedSelector: "h5.title",
expectedText: "Endpoints"
expectedText: "Endpoints",
},
{
name: "Ingresses",
href: "/ingresses",
expectedSelector: "h5.title",
expectedText: "Ingresses"
expectedText: "Ingresses",
},
{
name: "Network Policies",
href: "/network-policies",
expectedSelector: "h5.title",
expectedText: "Network Policies"
expectedText: "Network Policies",
},
]
],
},
{
drawerId: "storage",
@ -216,37 +216,37 @@ const commonPageTests: CommonPageTest[] = [{
name: "Persistent Volume Claims",
href: "/persistent-volume-claims",
expectedSelector: "h5.title",
expectedText: "Persistent Volume Claims"
expectedText: "Persistent Volume Claims",
},
{
name: "Persistent Volumes",
href: "/persistent-volumes",
expectedSelector: "h5.title",
expectedText: "Persistent Volumes"
expectedText: "Persistent Volumes",
},
{
name: "Storage Classes",
href: "/storage-classes",
expectedSelector: "h5.title",
expectedText: "Storage Classes"
expectedText: "Storage Classes",
},
]
],
},
{
page: {
name: "Namespaces",
href: "/namespaces",
expectedSelector: "h5.title",
expectedText: "Namespaces"
}
expectedText: "Namespaces",
},
},
{
page: {
name: "Events",
href: "/events",
expectedSelector: "h5.title",
expectedText: "Events"
}
expectedText: "Events",
},
},
{
drawerId: "apps",
@ -260,9 +260,9 @@ const commonPageTests: CommonPageTest[] = [{
name: "Releases",
href: "/apps/releases",
expectedSelector: "h5.title",
expectedText: "Releases"
expectedText: "Releases",
},
]
],
},
{
drawerId: "users",
@ -271,39 +271,39 @@ const commonPageTests: CommonPageTest[] = [{
name: "Service Accounts",
href: "/service-accounts",
expectedSelector: "h5.title",
expectedText: "Service Accounts"
expectedText: "Service Accounts",
},
{
name: "Roles",
href: "/roles",
expectedSelector: "h5.title",
expectedText: "Roles"
expectedText: "Roles",
},
{
name: "Cluster Roles",
href: "/cluster-roles",
expectedSelector: "h5.title",
expectedText: "Cluster Roles"
expectedText: "Cluster Roles",
},
{
name: "Role Bindings",
href: "/role-bindings",
expectedSelector: "h5.title",
expectedText: "Role Bindings"
expectedText: "Role Bindings",
},
{
name: "Cluster Role Bindings",
href: "/cluster-role-bindings",
expectedSelector: "h5.title",
expectedText: "Cluster Role Bindings"
expectedText: "Cluster Role Bindings",
},
{
name: "Pod Security Policies",
href: "/pod-security-policies",
expectedSelector: "h5.title",
expectedText: "Pod Security Policies"
expectedText: "Pod Security Policies",
},
]
],
},
{
drawerId: "custom-resources",
@ -312,9 +312,9 @@ const commonPageTests: CommonPageTest[] = [{
name: "Definitions",
href: "/crd/definitions",
expectedSelector: "h5.title",
expectedText: "Custom Resources"
expectedText: "Custom Resources",
},
]
],
}];
utils.describeIf(minikubeReady(TEST_NAMESPACE))("Minikube based tests", () => {
@ -440,7 +440,7 @@ utils.describeIf(minikubeReady(TEST_NAMESPACE))("Minikube based tests", () => {
position: {
y: 0,
x: 0,
}
},
});
} catch (error) {
console.log(error);

View File

@ -69,7 +69,7 @@ export async function start() {
bypassCSP: true,
env: {
CICD,
...process.env
...process.env,
},
timeout: 100_000,
} as Parameters<typeof electron["launch"]>[0]);

View File

@ -34,8 +34,8 @@ class TestCatalogCategory extends CatalogCategory {
group: "entity.k8slens.dev",
versions: [],
names: {
kind: "Test"
}
kind: "Test",
},
};
}
@ -50,8 +50,8 @@ class TestCatalogCategory2 extends CatalogCategory {
group: "entity.k8slens.dev",
versions: [],
names: {
kind: "Test2"
}
kind: "Test2",
},
};
}

View File

@ -84,7 +84,7 @@ jest.mock("electron", () => ({
removeAllListeners: jest.fn(),
off: jest.fn(),
send: jest.fn(),
}
},
}));
AppPaths.init();
@ -95,8 +95,8 @@ describe("empty config", () => {
ClusterStore.resetInstance();
const mockOpts = {
"tmp": {
"lens-cluster-store.json": JSON.stringify({})
}
"lens-cluster-store.json": JSON.stringify({}),
},
};
mockFs(mockOpts);
@ -117,10 +117,10 @@ describe("empty config", () => {
preferences: {
terminalCWD: "/tmp",
icon: "data:image/jpeg;base64, iVBORw0KGgoAAAANSUhEUgAAA1wAAAKoCAYAAABjkf5",
clusterName: "minikube"
clusterName: "minikube",
},
kubeConfigPath: embed("foo", kubeconfig)
})
kubeConfigPath: embed("foo", kubeconfig),
}),
);
});
@ -141,17 +141,17 @@ describe("empty config", () => {
id: "prod",
contextName: "foo",
preferences: {
clusterName: "prod"
clusterName: "prod",
},
kubeConfigPath: embed("prod", kubeconfig)
kubeConfigPath: embed("prod", kubeconfig),
});
store.addCluster({
id: "dev",
contextName: "foo2",
preferences: {
clusterName: "dev"
clusterName: "dev",
},
kubeConfigPath: embed("dev", kubeconfig)
kubeConfigPath: embed("dev", kubeconfig),
});
});
@ -177,8 +177,8 @@ describe("config with existing clusters", () => {
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "99.99.99"
}
version: "99.99.99",
},
},
clusters: [
{
@ -186,13 +186,13 @@ describe("config with existing clusters", () => {
kubeConfigPath: "./temp-kube-config",
contextName: "foo",
preferences: { terminalCWD: "/foo" },
workspace: "default"
workspace: "default",
},
{
id: "cluster2",
kubeConfigPath: "./temp-kube-config",
contextName: "foo2",
preferences: { terminalCWD: "/foo2" }
preferences: { terminalCWD: "/foo2" },
},
{
id: "cluster3",
@ -200,11 +200,11 @@ describe("config with existing clusters", () => {
contextName: "foo",
preferences: { terminalCWD: "/foo" },
workspace: "foo",
ownerRef: "foo"
ownerRef: "foo",
},
]
})
}
],
}),
},
};
mockFs(mockOpts);
@ -265,8 +265,8 @@ users:
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "99.99.99"
}
version: "99.99.99",
},
},
clusters: [
{
@ -281,12 +281,12 @@ users:
kubeConfigPath: "./valid-kube-config",
contextName: "foo",
preferences: { terminalCWD: "/foo" },
workspace: "default"
workspace: "default",
},
]
})
}
],
}),
},
};
mockFs(mockOpts);
@ -326,7 +326,7 @@ const minimalValidKubeConfig = JSON.stringify({
user: {
"client-certificate": "/Users/foo/.minikube/client.crt",
"client-key": "/Users/foo/.minikube/client.key",
}
},
}],
kind: "Config",
preferences: {},
@ -340,12 +340,12 @@ describe("pre 2.0 config with an existing cluster", () => {
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "1.0.0"
}
version: "1.0.0",
},
},
cluster1: minimalValidKubeConfig,
})
}
}),
},
};
mockFs(mockOpts);
@ -372,8 +372,8 @@ describe("pre 2.6.0 config with a cluster that has arrays in auth config", () =>
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "2.4.1"
}
version: "2.4.1",
},
},
cluster1: {
kubeConfig: JSON.stringify({
@ -403,19 +403,19 @@ describe("pre 2.6.0 config with a cluster that has arrays in auth config", () =>
"auth-provider": {
config: {
"access-token": [
"should be string"
"should be string",
],
expiry: [
"should be string"
"should be string",
],
}
}
},
},
},
}]
}],
}),
},
})
}
}),
},
};
mockFs(mockOpts);
@ -445,19 +445,19 @@ describe("pre 2.6.0 config with a cluster icon", () => {
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "2.4.1"
}
version: "2.4.1",
},
},
cluster1: {
kubeConfig: minimalValidKubeConfig,
icon: "icon_path",
preferences: {
terminalCWD: "/tmp"
}
terminalCWD: "/tmp",
},
},
}),
"icon_path": testDataIcon,
}
},
};
mockFs(mockOpts);
@ -486,17 +486,17 @@ describe("for a pre 2.7.0-beta.0 config without a workspace", () => {
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "2.6.6"
}
version: "2.6.6",
},
},
cluster1: {
kubeConfig: minimalValidKubeConfig,
preferences: {
terminalCWD: "/tmp"
}
terminalCWD: "/tmp",
},
},
})
}
}),
},
};
mockFs(mockOpts);
@ -517,8 +517,8 @@ describe("pre 3.6.0-beta.1 config with an existing cluster", () => {
"lens-cluster-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "3.5.0"
}
version: "3.5.0",
},
},
clusters: [
{
@ -527,12 +527,12 @@ describe("pre 3.6.0-beta.1 config with an existing cluster", () => {
contextName: "cluster",
preferences: {
icon: "store://icon_path",
}
}
]
},
},
],
}),
"icon_path": testDataIcon,
}
},
};
mockFs(mockOpts);

View File

@ -33,25 +33,25 @@ jest.mock("../../main/catalog/catalog-entity-registry", () => ({
metadata: {
uid: "1dfa26e2ebab15780a3547e9c7fa785c",
name: "mycluster",
source: "local"
}
source: "local",
},
},
{
metadata: {
uid: "55b42c3c7ba3b04193416cda405269a5",
name: "my_shiny_cluster",
source: "remote"
}
source: "remote",
},
},
{
metadata: {
uid: "catalog-entity",
name: "Catalog",
source: "app"
source: "app",
},
},
]
}
],
},
}));
const testCluster = {
@ -60,7 +60,7 @@ const testCluster = {
apiVersion: "v1",
kind: "Cluster",
status: {
phase: "Running"
phase: "Running",
},
spec: {},
getName: jest.fn(),
@ -71,8 +71,8 @@ const testCluster = {
metadata: {
uid: "test",
name: "test",
labels: {}
}
labels: {},
},
};
const minikubeCluster = {
@ -81,7 +81,7 @@ const minikubeCluster = {
apiVersion: "v1",
kind: "Cluster",
status: {
phase: "Running"
phase: "Running",
},
spec: {},
getName: jest.fn(),
@ -92,8 +92,8 @@ const minikubeCluster = {
metadata: {
uid: "minikube",
name: "minikube",
labels: {}
}
labels: {},
},
};
const awsCluster = {
@ -102,7 +102,7 @@ const awsCluster = {
apiVersion: "v1",
kind: "Cluster",
status: {
phase: "Running"
phase: "Running",
},
spec: {},
getName: jest.fn(),
@ -113,8 +113,8 @@ const awsCluster = {
metadata: {
uid: "aws",
name: "aws",
labels: {}
}
labels: {},
},
};
jest.mock("electron", () => ({
@ -139,8 +139,8 @@ describe("HotbarStore", () => {
beforeEach(() => {
mockFs({
"tmp": {
"lens-hotbar-store.json": JSON.stringify({})
}
"lens-hotbar-store.json": JSON.stringify({}),
},
});
ClusterStore.createInstance();
HotbarStore.createInstance();
@ -351,8 +351,8 @@ describe("HotbarStore", () => {
"lens-hotbar-store.json": JSON.stringify({
__internal__: {
migrations: {
version: "5.0.0-beta.3"
}
version: "5.0.0-beta.3",
},
},
"hotbars": [
{
@ -361,51 +361,51 @@ describe("HotbarStore", () => {
"items": [
{
"entity": {
"uid": "1dfa26e2ebab15780a3547e9c7fa785c"
}
"uid": "1dfa26e2ebab15780a3547e9c7fa785c",
},
},
{
"entity": {
"uid": "55b42c3c7ba3b04193416cda405269a5"
}
"uid": "55b42c3c7ba3b04193416cda405269a5",
},
},
{
"entity": {
"uid": "176fd331968660832f62283219d7eb6e"
}
"uid": "176fd331968660832f62283219d7eb6e",
},
},
{
"entity": {
"uid": "61c4fb45528840ebad1badc25da41d14",
"name": "user1-context",
"source": "local"
}
"source": "local",
},
},
{
"entity": {
"uid": "27d6f99fe9e7548a6e306760bfe19969",
"name": "foo2",
"source": "local"
}
"source": "local",
},
},
null,
{
"entity": {
"uid": "c0b20040646849bb4dcf773e43a0bf27",
"name": "multinode-demo",
"source": "local"
}
"source": "local",
},
},
null,
null,
null,
null,
null
]
}
null,
],
},
],
})
}
}),
},
};
mockFs(mockOpts);
@ -436,16 +436,16 @@ describe("HotbarStore", () => {
entity: {
name: "mycluster",
source: "local",
uid: "1dfa26e2ebab15780a3547e9c7fa785c"
}
uid: "1dfa26e2ebab15780a3547e9c7fa785c",
},
});
expect(items[1]).toEqual({
entity: {
name: "my_shiny_cluster",
source: "remote",
uid: "55b42c3c7ba3b04193416cda405269a5"
}
uid: "55b42c3c7ba3b04193416cda405269a5",
},
});
});
});

View File

@ -100,7 +100,7 @@ describe("kube helpers", () => {
describe("with invalid context object", () => {
it("returns an error", () => {
expect(String(validateKubeConfig(kc, "invalid"))).toEqual(
expect.stringContaining("No valid context object provided in kubeconfig for context 'invalid'")
expect.stringContaining("No valid context object provided in kubeconfig for context 'invalid'"),
);
});
});
@ -108,7 +108,7 @@ describe("kube helpers", () => {
describe("with invalid cluster object", () => {
it("returns an error", () => {
expect(String(validateKubeConfig(kc, "invalidCluster"))).toEqual(
expect.stringContaining("No valid cluster object provided in kubeconfig for context 'invalidCluster'")
expect.stringContaining("No valid cluster object provided in kubeconfig for context 'invalidCluster'"),
);
});
});
@ -116,7 +116,7 @@ describe("kube helpers", () => {
describe("with invalid user object", () => {
it("returns an error", () => {
expect(String(validateKubeConfig(kc, "invalidUser"))).toEqual(
expect.stringContaining("No valid user object provided in kubeconfig for context 'invalidUser'")
expect.stringContaining("No valid user object provided in kubeconfig for context 'invalidUser'"),
);
});
});

View File

@ -37,7 +37,7 @@ let searchStore: SearchStore = null;
const logs = [
"1:M 30 Oct 2020 16:17:41.553 # Connection with replica 172.17.0.12:6379 lost",
"1:M 30 Oct 2020 16:17:41.623 * Replica 172.17.0.12:6379 asks for synchronization",
"1:M 30 Oct 2020 16:17:41.623 * Starting Partial resynchronization request from 172.17.0.12:6379 accepted. Sending 0 bytes of backlog starting from offset 14407."
"1:M 30 Oct 2020 16:17:41.623 * Starting Partial resynchronization request from 172.17.0.12:6379 accepted. Sending 0 bytes of backlog starting from offset 14407.",
];
describe("search store tests", () => {

View File

@ -106,7 +106,7 @@ describe("user store tests", () => {
"config.json": JSON.stringify({
user: { username: "foobar" },
preferences: { colorTheme: "light" },
lastSeenAppVersion: "1.2.3"
lastSeenAppVersion: "1.2.3",
}),
"lens-cluster-store.json": JSON.stringify({
clusters: [
@ -118,15 +118,15 @@ describe("user store tests", () => {
id: "barfoo",
kubeConfigPath: "some/other/path",
},
]
],
} as ClusterStoreModel),
"extension_data": {},
},
"some": {
"other": {
"path": "is file",
}
}
},
},
});
UserStore.createInstance();

View File

@ -26,13 +26,13 @@ describe("kubernetesClusterCategory", () => {
icon: "Icon",
title: "Title",
// eslint-disable-next-line @typescript-eslint/no-empty-function
onClick: () => {}
onClick: () => {},
};
const item2 = {
icon: "Icon 2",
title: "Title 2",
// eslint-disable-next-line @typescript-eslint/no-empty-function
onClick: () => {}
onClick: () => {},
};
it("returns all items if no filter set", () => {

View File

@ -57,19 +57,19 @@ export class GeneralCategory extends CatalogCategory {
public readonly kind = "CatalogCategory";
public metadata = {
name: "General",
icon: "settings"
icon: "settings",
};
public spec = {
group: "entity.k8slens.dev",
versions: [
{
name: "v1alpha1",
entityClass: GeneralEntity
}
entityClass: GeneralEntity,
},
],
names: {
kind: "General"
}
kind: "General",
},
};
}

View File

@ -59,7 +59,7 @@ export enum LensKubernetesClusterStatus {
DELETING = "deleting",
CONNECTING = "connecting",
CONNECTED = "connected",
DISCONNECTED = "disconnected"
DISCONNECTED = "disconnected",
}
export interface KubernetesClusterMetadata extends CatalogEntityMetadata {
@ -128,14 +128,14 @@ export class KubernetesCluster extends CatalogEntity<KubernetesClusterMetadata,
context.menuItems.push({
title: "Disconnect",
icon: "link_off",
onClick: () => requestMain(clusterDisconnectHandler, this.metadata.uid)
onClick: () => requestMain(clusterDisconnectHandler, this.metadata.uid),
});
break;
case LensKubernetesClusterStatus.DISCONNECTED:
context.menuItems.push({
title: "Connect",
icon: "link",
onClick: () => context.navigate(`/cluster/${this.metadata.uid}`)
onClick: () => context.navigate(`/cluster/${this.metadata.uid}`),
});
break;
}
@ -158,12 +158,12 @@ class KubernetesClusterCategory extends CatalogCategory {
versions: [
{
name: "v1alpha1",
entityClass: KubernetesCluster
}
entityClass: KubernetesCluster,
},
],
names: {
kind: "KubernetesCluster"
}
kind: "KubernetesCluster",
},
};
}

View File

@ -56,8 +56,8 @@ export class WebLink extends CatalogEntity<CatalogEntityMetadata, WebLinkStatus,
icon: "delete",
onClick: async () => WeblinkStore.getInstance().removeById(this.metadata.uid),
confirm: {
message: `Remove Web Link "${this.metadata.name}" from ${productName}?`
}
message: `Remove Web Link "${this.metadata.name}" from ${productName}?`,
},
});
}
@ -72,19 +72,19 @@ export class WebLinkCategory extends CatalogCategory {
public readonly kind = "CatalogCategory";
public metadata = {
name: "Web Links",
icon: "public"
icon: "public",
};
public spec = {
group: "entity.k8slens.dev",
versions: [
{
name: "v1alpha1",
entityClass: WebLink
}
entityClass: WebLink,
},
],
names: {
kind: "WebLink"
}
kind: "WebLink",
},
};
public static onAdd?: () => void;
@ -97,7 +97,7 @@ export class WebLinkCategory extends CatalogCategory {
title: "Add web link",
onClick: () => {
WebLinkCategory.onAdd();
}
},
});
});
}

View File

@ -59,7 +59,7 @@ export class CatalogCategoryRegistry {
this.filters,
iter.filter,
this.items.values(),
)
),
);
}

View File

@ -106,7 +106,7 @@ export abstract class CatalogCategory extends (EventEmitter as new () => TypedEm
this.filters,
iter.filter,
menuItems.values(),
)
),
);
}
}

View File

@ -119,7 +119,7 @@ export interface ClusterPrometheusPreferences {
export enum ClusterStatus {
AccessGranted = 2,
AccessDenied = 1,
Offline = 0
Offline = 0,
}
/**
@ -131,7 +131,7 @@ export enum ClusterMetadataKey {
DISTRIBUTION = "distribution",
NODES_COUNT = "nodes",
LAST_SEEN = "lastSeen",
PROMETHEUS = "prometheus"
PROMETHEUS = "prometheus",
}
/**

View File

@ -30,7 +30,7 @@ import esbuild from "esbuild";
* @returns ts/tsx webpack loader configuration object
*/
const getTSLoader = (
testRegExp: RegExp, transpileOnly = true
testRegExp: RegExp, transpileOnly = true,
) => {
if (process.env.LENS_DEV_USE_ESBUILD_LOADER === "true") {
console.info(`\n🚀 using esbuild-loader for ts(x)`);
@ -41,7 +41,7 @@ const getTSLoader = (
options: {
loader: "tsx",
target: "es2015",
implementation: esbuild
implementation: esbuild,
},
};
}
@ -53,8 +53,8 @@ const getTSLoader = (
loader: "ts-loader",
options: {
transpileOnly,
}
}
},
},
};
};

View File

@ -99,7 +99,7 @@ export class HotbarStore extends BaseStore<HotbarStoreModel> {
toJSON(): HotbarStoreModel {
const model: HotbarStoreModel = {
hotbars: this.hotbars,
activeHotbarId: this.activeHotbarId
activeHotbarId: this.activeHotbarId,
};
return toJS(model);
@ -187,7 +187,7 @@ export class HotbarStore extends BaseStore<HotbarStoreModel> {
} else if (0 <= cellIndex && cellIndex < hotbar.items.length) {
hotbar.items[cellIndex] = newItem;
} else {
logger.error(`[HOTBAR-STORE]: cannot pin entity to hotbar outside of index range`, { entityId: uid, hotbarId: hotbar.id, cellIndex, });
logger.error(`[HOTBAR-STORE]: cannot pin entity to hotbar outside of index range`, { entityId: uid, hotbarId: hotbar.id, cellIndex });
}
}

View File

@ -38,7 +38,7 @@ export type Rest<T> = T extends [any, ...infer R] ? R : [];
*/
export function onceCorrect<
IPC extends EventEmitter,
Listener extends (event: ListenerEvent<IPC>, ...args: any[]) => any
Listener extends (event: ListenerEvent<IPC>, ...args: any[]) => any,
>({
source,
channel,
@ -72,7 +72,7 @@ export function onceCorrect<
*/
export function onCorrect<
IPC extends EventEmitter,
Listener extends (event: ListenerEvent<IPC>, ...args: any[]) => any
Listener extends (event: ListenerEvent<IPC>, ...args: any[]) => any,
>({
source,
channel,

View File

@ -119,7 +119,7 @@ describe("Crds", () => {
},
spec: {
version: "abc",
}
},
});
expect(crd.getVersion()).toBe("abc");

View File

@ -46,14 +46,14 @@ describe("DeploymentApi", () => {
expect(patchSpy).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/deployments/deployment-1/scale", {
data: {
spec: {
replicas: 5
}
}
replicas: 5,
},
},
},
{
headers: {
"content-type": "application/merge-patch+json"
}
"content-type": "application/merge-patch+json",
},
});
});
});

View File

@ -282,7 +282,7 @@ describe("HelmChart tests", () => {
expect(warnFn).toHaveBeenCalledWith("HelmChart data has unexpected fields", {
original: anyObject(),
unknownFields: ["asdjhajksdhadjks"]
unknownFields: ["asdjhajksdhadjks"],
});
console.warn = warn;
});

View File

@ -26,7 +26,7 @@ jest.mock("../api-manager", () => ({
return {
registerStore: jest.fn(),
};
}
},
}));
import { IKubeApiParsed, parseKubeApi } from "../kube-api-parse";
@ -45,7 +45,7 @@ const tests: KubeApiParseTestData[] = [
apiVersionWithGroup: "apiextensions.k8s.io/v1beta1",
namespace: undefined,
resource: "customresourcedefinitions",
name: "prometheuses.monitoring.coreos.com"
name: "prometheuses.monitoring.coreos.com",
}],
["/api/v1/namespaces/kube-system/pods/coredns-6955765f44-v8p27", {
apiBase: "/api/v1/pods",
@ -55,7 +55,7 @@ const tests: KubeApiParseTestData[] = [
apiVersionWithGroup: "v1",
namespace: "kube-system",
resource: "pods",
name: "coredns-6955765f44-v8p27"
name: "coredns-6955765f44-v8p27",
}],
["/apis/stable.example.com/foo1/crontabs", {
apiBase: "/apis/stable.example.com/foo1/crontabs",
@ -132,7 +132,7 @@ const tests: KubeApiParseTestData[] = [
const throwtests = [
undefined,
"",
"ajklsmh"
"ajklsmh",
];
describe("parseApi unit tests", () => {

View File

@ -28,11 +28,11 @@ describe("forRemoteCluster", () => {
it("builds api client", async (done) => {
const api = forRemoteCluster({
cluster: {
server: "https://127.0.0.1:6443"
server: "https://127.0.0.1:6443",
},
user: {
token: "daa"
}
token: "daa",
},
}, Pod);
(fetch as any).mockResponse(async (request: any) => {
@ -41,7 +41,7 @@ describe("forRemoteCluster", () => {
done();
return {
body: ""
body: "",
};
});
@ -55,7 +55,7 @@ describe("KubeApi", () => {
beforeEach(() => {
request = new KubeJsonApi({
serverAddress: `http://127.0.0.1:9999`,
apiBase: "/api-kube"
apiBase: "/api-kube",
});
});
@ -65,24 +65,24 @@ describe("KubeApi", () => {
return {
body: JSON.stringify({
resources: [{
name: "ingresses"
}] as any[]
})
name: "ingresses",
}] as any[],
}),
};
} else if (request.url === "http://127.0.0.1:9999/api-kube/apis/extensions/v1beta1") {
// Even if the old API contains ingresses, KubeApi should prefer the apiBase url
return {
body: JSON.stringify({
resources: [{
name: "ingresses"
}] as any[]
})
name: "ingresses",
}] as any[],
}),
};
} else {
return {
body: JSON.stringify({
resources: [] as any[]
})
resources: [] as any[],
}),
};
}
});
@ -107,22 +107,22 @@ describe("KubeApi", () => {
if (request.url === "http://127.0.0.1:9999/api-kube/apis/networking.k8s.io/v1") {
return {
body: JSON.stringify({
resources: [] as any[]
})
resources: [] as any[],
}),
};
} else if (request.url === "http://127.0.0.1:9999/api-kube/apis/extensions/v1beta1") {
return {
body: JSON.stringify({
resources: [{
name: "ingresses"
}] as any[]
})
name: "ingresses",
}] as any[],
}),
};
} else {
return {
body: JSON.stringify({
resources: [] as any[]
})
resources: [] as any[],
}),
};
}
});

View File

@ -45,8 +45,8 @@ function getDummyPod(opts: GetDummyPodOptions = getDummyPodDefaultOptions()): Po
uid: "1",
name: "test",
resourceVersion: "v1",
selfLink: "http"
}
selfLink: "http",
},
});
pod.spec = {
@ -82,9 +82,9 @@ function getDummyPod(opts: GetDummyPodOptions = getDummyPodDefaultOptions()): Po
restartCount: i,
state: {
running: {
startedAt: "before"
startedAt: "before",
},
}
},
});
}
@ -107,9 +107,9 @@ function getDummyPod(opts: GetDummyPodOptions = getDummyPodDefaultOptions()): Po
startedAt: "before",
exitCode: i+1,
finishedAt: "later",
reason: `reason_${i}`
}
}
reason: `reason_${i}`,
},
},
});
}
@ -129,9 +129,9 @@ function getDummyPod(opts: GetDummyPodOptions = getDummyPodDefaultOptions()): Po
restartCount: i,
state: {
running: {
startedAt: "before"
}
}
startedAt: "before",
},
},
});
}
@ -154,9 +154,9 @@ function getDummyPod(opts: GetDummyPodOptions = getDummyPodDefaultOptions()): Po
startedAt: "before",
exitCode: i+1,
finishedAt: "later",
reason: `reason_${i}`
}
}
reason: `reason_${i}`,
},
},
});
}
@ -183,7 +183,7 @@ describe("Pods", () => {
return {
image: "dummy",
imagePullPolicy: "dummy",
name
name,
};
}
@ -231,7 +231,7 @@ describe("Pods", () => {
const pod = getDummyPod();
pod.spec.nodeSelector = {
"kubernetes.io/os": "foobar"
"kubernetes.io/os": "foobar",
};
expect(pod.getSelectedNodeOs()).toStrictEqual("foobar");
@ -241,7 +241,7 @@ describe("Pods", () => {
const pod = getDummyPod();
pod.spec.nodeSelector = {
"beta.kubernetes.io/os": "foobar1"
"beta.kubernetes.io/os": "foobar1",
};
expect(pod.getSelectedNodeOs()).toStrictEqual("foobar1");
@ -252,7 +252,7 @@ describe("Pods", () => {
pod.spec.nodeSelector = {
"kubernetes.io/os": "foobar2",
"beta.kubernetes.io/os": "foobar3"
"beta.kubernetes.io/os": "foobar3",
};
expect(pod.getSelectedNodeOs()).toStrictEqual("foobar2");
@ -273,7 +273,7 @@ describe("Pods", () => {
type: "Ready",
status: "foobar",
lastProbeTime: 1,
lastTransitionTime: "longer ago"
lastTransitionTime: "longer ago",
});
expect(pod.hasIssues()).toStrictEqual(true);
@ -286,7 +286,7 @@ describe("Pods", () => {
type: "dummy",
status: "foobar",
lastProbeTime: 1,
lastTransitionTime: "longer ago"
lastTransitionTime: "longer ago",
});
expect(pod.hasIssues()).toStrictEqual(false);
@ -298,8 +298,8 @@ describe("Pods", () => {
pod.status.containerStatuses[0].state = {
waiting: {
reason: "CrashLookBackOff",
message: "too much foobar"
}
message: "too much foobar",
},
};
expect(pod.hasIssues()).toStrictEqual(true);

View File

@ -46,14 +46,14 @@ describe("StatefulSetApi", () => {
expect(patchSpy).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale", {
data: {
spec: {
replicas: 5
}
}
replicas: 5,
},
},
},
{
headers: {
"content-type": "application/merge-patch+json"
}
"content-type": "application/merge-patch+json",
},
});
});
});

View File

@ -98,7 +98,7 @@ export class ApiManager {
lookupApiLink(ref: IKubeObjectRef, parentObject: KubeObject): string {
const {
kind, apiVersion, name,
namespace = parentObject.getNs()
namespace = parentObject.getNs(),
} = ref;
if (!kind) return "";

View File

@ -66,5 +66,5 @@ if (isClusterPageContext()) {
}
export {
clusterRoleBindingApi
clusterRoleBindingApi,
};

View File

@ -54,5 +54,5 @@ if (isClusterPageContext()) { // initialize automatically only when within a clu
}
export {
clusterRoleApi
clusterRoleApi,
};

View File

@ -49,7 +49,7 @@ export function getMetricsByNodeNames(nodeNames: string[], params?: IMetricsReqP
podCapacity: opts,
podAllocatableCapacity: opts,
fsSize: opts,
fsUsage: opts
fsUsage: opts,
}, params);
}
@ -57,7 +57,7 @@ export enum ClusterStatus {
ACTIVE = "Active",
CREATING = "Creating",
REMOVING = "Removing",
ERROR = "Error"
ERROR = "Error",
}
export interface IClusterMetrics<T = IMetrics> {
@ -135,5 +135,5 @@ if (isClusterPageContext()) { // initialize automatically only when within a clu
}
export {
clusterApi
clusterApi,
};

View File

@ -60,5 +60,5 @@ if (isClusterPageContext()) {
}
export {
configMapApi
configMapApi,
};

View File

@ -117,7 +117,7 @@ export class CustomResourceDefinition extends KubeObject {
params: {
group: this.getGroup(),
name: this.getPluralName(),
}
},
});
}
@ -217,7 +217,7 @@ export class CustomResourceDefinition extends KubeObject {
return {
...condition,
isReady: status === "True",
tooltip: `${message || reason} (${lastTransitionTime})`
tooltip: `${message || reason} (${lastTransitionTime})`,
};
});
}
@ -236,5 +236,5 @@ if (isClusterPageContext()) {
}
export {
crdApi
crdApi,
};

View File

@ -33,14 +33,14 @@ export class CronJobApi extends KubeApi<CronJob> {
return this.request.patch(this.getUrl(params), {
data: {
spec: {
suspend: true
}
}
suspend: true,
},
},
},
{
headers: {
"content-type": "application/strategic-merge-patch+json"
}
"content-type": "application/strategic-merge-patch+json",
},
});
}
@ -48,14 +48,14 @@ export class CronJobApi extends KubeApi<CronJob> {
return this.request.patch(this.getUrl(params), {
data: {
spec: {
suspend: false
}
}
suspend: false,
},
},
},
{
headers: {
"content-type": "application/strategic-merge-patch+json"
}
"content-type": "application/strategic-merge-patch+json",
},
});
}
}
@ -153,5 +153,5 @@ if (isClusterPageContext()) {
}
export {
cronJobApi
cronJobApi,
};

View File

@ -129,5 +129,5 @@ if (isClusterPageContext()) {
}
export {
daemonSetApi
daemonSetApi,
};

View File

@ -44,14 +44,14 @@ export class DeploymentApi extends KubeApi<Deployment> {
return this.request.patch(this.getScaleApiUrl(params), {
data: {
spec: {
replicas
}
}
replicas,
},
},
},
{
headers: {
"content-type": "application/merge-patch+json"
}
"content-type": "application/merge-patch+json",
},
});
}
@ -61,16 +61,16 @@ export class DeploymentApi extends KubeApi<Deployment> {
spec: {
template: {
metadata: {
annotations: { "kubectl.kubernetes.io/restartedAt" : moment.utc().format() }
}
}
}
}
annotations: { "kubectl.kubernetes.io/restartedAt" : moment.utc().format() },
},
},
},
},
},
{
headers: {
"content-type": "application/strategic-merge-patch+json"
}
"content-type": "application/strategic-merge-patch+json",
},
});
}
}
@ -246,5 +246,5 @@ if (isClusterPageContext()) {
}
export {
deploymentApi
deploymentApi,
};

View File

@ -159,5 +159,5 @@ if (isClusterPageContext()) {
}
export {
endpointApi
endpointApi,
};

View File

@ -87,5 +87,5 @@ if (isClusterPageContext()) {
}
export {
eventApi
eventApi,
};

View File

@ -191,7 +191,7 @@ const helmChartValidator = Joi.object<RawHelmChart>({
.items(Joi.string())
.options({
stripUnknown: {
arrays: true
arrays: true,
},
})
.default(() => ([])),
@ -200,7 +200,7 @@ const helmChartValidator = Joi.object<RawHelmChart>({
.items(Joi.string())
.options({
stripUnknown: {
arrays: true
arrays: true,
},
})
.default(() => ([])),
@ -209,7 +209,7 @@ const helmChartValidator = Joi.object<RawHelmChart>({
.items(Joi.string())
.options({
stripUnknown: {
arrays: true
arrays: true,
},
})
.default(() => ([])),
@ -218,7 +218,7 @@ const helmChartValidator = Joi.object<RawHelmChart>({
.items(helmChartMaintainerValidator)
.options({
stripUnknown: {
arrays: true
arrays: true,
},
})
.default(() => ([])),
@ -227,7 +227,7 @@ const helmChartValidator = Joi.object<RawHelmChart>({
.items(helmChartDependencyValidator)
.options({
stripUnknown: {
arrays: true
arrays: true,
},
})
.default(() => ([])),

View File

@ -108,7 +108,7 @@ export async function getRelease(name: string, namespace: string): Promise<IRele
return {
...details,
resources
resources,
};
}
@ -122,7 +122,7 @@ export async function createRelease(payload: IReleaseCreatePayload): Promise<IRe
chart,
values,
...data,
}
},
});
}
@ -136,7 +136,7 @@ export async function updateRelease(name: string, namespace: string, payload: IR
chart,
values,
...data,
}
},
});
}

View File

@ -111,7 +111,7 @@ export class HorizontalPodAutoscaler extends KubeObject {
return {
...condition,
isReady: status === "True",
tooltip: `${message || reason} (${lastTransitionTime})`
tooltip: `${message || reason} (${lastTransitionTime})`,
};
});
}
@ -143,7 +143,7 @@ export class HorizontalPodAutoscaler extends KubeObject {
getMetricValues(metric: IHpaMetric): string {
const metricType = metric.type.toLowerCase();
const currentMetric = this.getCurrentMetrics().find(current =>
metric.type == current.type && this.getMetricName(metric) == this.getMetricName(current)
metric.type == current.type && this.getMetricName(metric) == this.getMetricName(current),
);
const current = currentMetric ? currentMetric[metricType] : null;
const target = metric[metricType];
@ -173,5 +173,5 @@ if (isClusterPageContext()) {
}
export {
hpaApi
hpaApi,
};

View File

@ -36,7 +36,7 @@ export function getMetricsForIngress(ingress: string, namespace: string): Promis
bytesSentSuccess: opts,
bytesSentFailure: opts,
requestDurationSeconds: opts,
responseDurationSeconds: opts
responseDurationSeconds: opts,
}, {
namespace,
});
@ -160,7 +160,7 @@ export class Ingress extends KubeObject {
return {
serviceName,
servicePort
servicePort,
};
}
@ -216,5 +216,5 @@ if (isClusterPageContext()) {
}
export {
ingressApi
ingressApi,
};

View File

@ -124,7 +124,7 @@ export class Job extends WorkloadKubeObject {
delete() {
const params: JsonApiParams = {
query: { propagationPolicy: "Background" }
query: { propagationPolicy: "Background" },
};
return super.delete(params);
@ -158,5 +158,5 @@ if (isClusterPageContext()) {
}
export {
jobApi
jobApi,
};

View File

@ -90,5 +90,5 @@ if (isClusterPageContext()) {
}
export {
limitRangeApi
limitRangeApi,
};

View File

@ -87,13 +87,13 @@ export const metricsApi = {
query: {
start, end, step,
"kubernetes_namespace": namespace,
}
},
});
},
async getMetricProviders(): Promise<MetricProviderInfo[]> {
return apiBase.get("/metrics/providers");
}
},
};
export function normalizeMetrics(metrics: IMetrics, frames = 60): IMetrics {
@ -103,7 +103,7 @@ export function normalizeMetrics(metrics: IMetrics, frames = 60): IMetrics {
resultType: "",
result: [{
metric: {},
values: []
values: [],
} as IMetricsResult],
},
status: "",
@ -144,7 +144,7 @@ export function normalizeMetrics(metrics: IMetrics, frames = 60): IMetrics {
// always return at least empty values array
result.push({
metric: {},
values: []
values: [],
} as IMetricsResult);
}

View File

@ -79,5 +79,5 @@ if (isClusterPageContext()) {
}
export {
namespacesApi
namespacesApi,
};

View File

@ -106,5 +106,5 @@ if (isClusterPageContext()) {
}
export {
networkPolicyApi
networkPolicyApi,
};

View File

@ -40,7 +40,7 @@ export function getMetricsForAllNodes(): Promise<INodeMetrics> {
cpuUsage: opts,
cpuCapacity: opts,
fsSize: opts,
fsUsage: opts
fsUsage: opts,
});
}
@ -259,5 +259,5 @@ if (isClusterPageContext()) {
}
export {
nodesApi
nodesApi,
};

View File

@ -35,9 +35,9 @@ export function getMetricsForPvc(pvc: PersistentVolumeClaim): Promise<IPvcMetric
return metricsApi.getMetrics({
diskUsage: opts,
diskCapacity: opts
diskCapacity: opts,
}, {
namespace: opts.namespace
namespace: opts.namespace,
});
}
@ -88,7 +88,7 @@ export class PersistentVolumeClaim extends KubeObject {
return pods.filter(pod => {
return pod.getVolumes().filter(volume =>
volume.persistentVolumeClaim &&
volume.persistentVolumeClaim.claimName === this.getName()
volume.persistentVolumeClaim.claimName === this.getName(),
).length > 0;
});
}
@ -128,5 +128,5 @@ if (isClusterPageContext()) {
}
export {
pvcApi
pvcApi,
};

View File

@ -111,5 +111,5 @@ if (isClusterPageContext()) {
}
export {
persistentVolumeApi
persistentVolumeApi,
};

View File

@ -50,5 +50,5 @@ if (isClusterPageContext()) {
}
export {
podMetricsApi
podMetricsApi,
};

View File

@ -82,5 +82,5 @@ if (isClusterPageContext()) {
}
export {
pdbApi
pdbApi,
};

View File

@ -82,7 +82,7 @@ export enum PodStatus {
PENDING = "Pending",
RUNNING = "Running",
SUCCEEDED = "Succeeded",
EVICTED = "Evicted"
EVICTED = "Evicted",
}
export interface IPodContainer extends Partial<Record<PodContainerProbe, IContainerProbe>> {
@ -310,7 +310,7 @@ export class Pod extends WorkloadKubeObject {
const runningContainerNames = new Set(
this.getContainerStatuses()
.filter(({ state }) => state.running)
.map(({ name }) => name)
.map(({ name }) => name),
);
return this.getAllContainers()
@ -466,7 +466,7 @@ export class Pod extends WorkloadKubeObject {
timeoutSeconds = 0,
periodSeconds = 0,
successThreshold = 0,
failureThreshold = 0
failureThreshold = 0,
} = probeData;
// HTTP Request
@ -529,5 +529,5 @@ if (isClusterPageContext()) {
}
export {
podsApi
podsApi,
};

View File

@ -127,5 +127,5 @@ if (isClusterPageContext()) {
}
export {
pspApi
pspApi,
};

View File

@ -44,9 +44,9 @@ export class ReplicaSetApi extends KubeApi<ReplicaSet> {
data: {
metadata: params,
spec: {
replicas
}
}
replicas,
},
},
});
}
}
@ -133,5 +133,5 @@ if (isClusterPageContext()) {
}
export {
replicaSetApi
replicaSetApi,
};

View File

@ -25,7 +25,7 @@ import { apiBase } from "../index";
import type { Patch } from "rfc6902";
export const annotations = [
"kubectl.kubernetes.io/last-applied-configuration"
"kubectl.kubernetes.io/last-applied-configuration",
];
export async function update(resource: object | string): Promise<KubeJsonApiData> {

View File

@ -90,5 +90,5 @@ if (isClusterPageContext()) {
}
export {
resourceQuotaApi
resourceQuotaApi,
};

View File

@ -71,5 +71,5 @@ if (isClusterPageContext()) {
}
export {
roleBindingApi
roleBindingApi,
};

View File

@ -51,5 +51,5 @@ if (isClusterPageContext()) {
}
export{
roleApi
roleApi,
};

View File

@ -79,5 +79,5 @@ if (isClusterPageContext()) {
}
export {
secretsApi
secretsApi,
};

View File

@ -27,7 +27,7 @@ export class SelfSubjectRulesReviewApi extends KubeApi<SelfSubjectRulesReview> {
create({ namespace = "default" }): Promise<SelfSubjectRulesReview> {
return super.create({}, {
spec: {
namespace
namespace,
},
});
}
@ -82,7 +82,7 @@ export class SelfSubjectRulesReview extends KubeObject {
const separator = apiGroup == "" ? "" : ".";
return resource + separator + apiGroup;
})
}),
};
}
}
@ -96,6 +96,6 @@ if (isClusterPageContext()) {
}
export {
selfSubjectRulesReviewApi
selfSubjectRulesReviewApi,
};

View File

@ -62,5 +62,5 @@ if (isClusterPageContext()) {
}
export {
serviceAccountsApi
serviceAccountsApi,
};

View File

@ -157,5 +157,5 @@ if (isClusterPageContext()) {
}
export {
serviceApi
serviceApi,
};

View File

@ -42,14 +42,14 @@ export class StatefulSetApi extends KubeApi<StatefulSet> {
return this.request.patch(this.getScaleApiUrl(params), {
data: {
spec: {
replicas
}
}
replicas,
},
},
},
{
headers: {
"content-type": "application/merge-patch+json"
}
"content-type": "application/merge-patch+json",
},
});
}
}
@ -162,5 +162,5 @@ if (isClusterPageContext()) {
}
export {
statefulSetApi
statefulSetApi,
};

View File

@ -72,5 +72,5 @@ if (isClusterPageContext()) {
}
export {
storageClassApi
storageClassApi,
};

View File

@ -42,8 +42,8 @@ if (typeof window === "undefined") {
debug: isDevelopment || isDebugging,
}, {
headers: {
"Host": `localhost:${params.port}`
}
"Host": `localhost:${params.port}`,
},
});
});
} else {
@ -53,8 +53,8 @@ if (typeof window === "undefined") {
debug: isDevelopment || isDebugging,
}, {
headers: {
"Host": window.location.host
}
"Host": window.location.host,
},
});
}
@ -62,15 +62,15 @@ if (isClusterPageContext()) {
apiKube = new KubeJsonApi({
serverAddress: `http://127.0.0.1:${window.location.port}`,
apiBase: apiKubePrefix,
debug: isDevelopment
debug: isDevelopment,
}, {
headers: {
"Host": window.location.host
}
"Host": window.location.host,
},
});
}
export {
apiBase,
apiKube
apiKube,
};

View File

@ -57,12 +57,12 @@ export interface JsonApiConfig {
export class JsonApi<D = JsonApiData, P extends JsonApiParams = JsonApiParams> {
static reqInitDefault: RequestInit = {
headers: {
"content-type": "application/json"
}
"content-type": "application/json",
},
};
static configDefault: Partial<JsonApiConfig> = {
debug: false
debug: false,
};
constructor(public readonly config: JsonApiConfig, protected reqInit?: RequestInit) {
@ -87,7 +87,7 @@ export class JsonApi<D = JsonApiData, P extends JsonApiParams = JsonApiParams> {
{},
this.reqInit,
await this.getRequestOptions(),
init
init,
);
const { query } = params || {} as P;
@ -126,7 +126,7 @@ export class JsonApi<D = JsonApiData, P extends JsonApiParams = JsonApiParams> {
{},
this.reqInit,
await this.getRequestOptions(),
init
init,
);
const { data, query } = params || {} as P;

View File

@ -123,13 +123,13 @@ export function forCluster<T extends KubeObject>(cluster: ILocalKubeApiConfig, k
debug: isDevelopment,
}, {
headers: {
"Host": `${cluster.metadata.uid}.localhost:${url.port}`
}
"Host": `${cluster.metadata.uid}.localhost:${url.port}`,
},
});
return new KubeApi({
objectConstructor: kubeClass,
request
request,
});
}
@ -166,15 +166,15 @@ export function forRemoteCluster<T extends KubeObject>(config: IRemoteKubeApiCon
...(token ? {
getRequestOptions: async () => ({
headers: {
"Authorization": `Bearer ${isFunction(token) ? await token() : token}`
}
})
} : {})
"Authorization": `Bearer ${isFunction(token) ? await token() : token}`,
},
}),
} : {}),
}, reqInit);
return new KubeApi({
objectConstructor: kubeClass,
request
request,
});
}
@ -221,7 +221,7 @@ export class KubeApi<T extends KubeObject> {
objectConstructor,
request = apiKube,
kind = options.objectConstructor?.kind,
isNamespaced = options.objectConstructor?.namespaced
isNamespaced = options.objectConstructor?.namespaced,
} = options || {};
if (!options.apiBase) {
@ -292,7 +292,7 @@ export class KubeApi<T extends KubeObject> {
return {
apiPrefix: this.apiPrefix,
apiGroup: this.apiGroup
apiGroup: this.apiGroup,
};
}
@ -306,10 +306,10 @@ export class KubeApi<T extends KubeObject> {
// The apiPrefix and apiGroup might change due to fallbackApiBases, so we must override them
Object.defineProperty(this, "apiPrefix", {
value: apiPrefix
value: apiPrefix,
});
Object.defineProperty(this, "apiGroup", {
value: apiGroup
value: apiGroup,
});
const res = await this.request.get<IKubePreferredVersion>(`${this.apiPrefix}/${this.apiGroup}`);
@ -444,9 +444,9 @@ export class KubeApi<T extends KubeObject> {
apiVersion: this.apiVersionWithGroup,
metadata: {
name,
namespace
}
}, data)
namespace,
},
}, data),
});
const parsed = this.parseResponse(res);

View File

@ -317,7 +317,7 @@ export abstract class KubeObjectStore<T extends KubeObject> extends ItemStore<T>
protected bindWatchEventsUpdater(delay = 1000) {
reaction(() => this.eventsBuffer.length, this.updateFromEventsBuffer, {
delay
delay,
});
}
@ -352,7 +352,7 @@ export abstract class KubeObjectStore<T extends KubeObject> extends ItemStore<T>
const watch = () => this.api.watch({
namespace,
abortController,
callback
callback,
});
const { signal } = abortController;

View File

@ -82,7 +82,7 @@ export class KubeWatchApi {
}
subscribeStores(stores: KubeObjectStore<KubeObject>[], opts: IKubeWatchSubscribeStoreOptions = {}): Disposer {
const { preload = true, waitUntilLoaded = true, loadOnce = false, } = opts;
const { preload = true, waitUntilLoaded = true, loadOnce = false } = opts;
const subscribingNamespaces = opts.namespaces ?? this.context?.allNamespaces ?? [];
const unsubscribeList: Function[] = [];
let isUnsubscribed = false;

View File

@ -121,7 +121,7 @@ function loadToOptions(rawYaml: string): OptionsResult {
allowUnknown: true,
stripUnknown: {
arrays: true,
}
},
});
const {
clusters: rawClusters,
@ -210,16 +210,16 @@ export function dumpConfigYaml(kubeConfig: Partial<KubeConfig>): string {
"certificate-authority-data": cluster.caData,
"certificate-authority": cluster.caFile,
server: cluster.server,
"insecure-skip-tls-verify": cluster.skipTLSVerify
}
"insecure-skip-tls-verify": cluster.skipTLSVerify,
},
}));
const contexts = kubeConfig.contexts.map(context => ({
name: context.name,
context: {
cluster: context.cluster,
user: context.user,
namespace: context.namespace
}
namespace: context.namespace,
},
}));
const users = kubeConfig.users.map(user => ({
name: user.name,
@ -232,8 +232,8 @@ export function dumpConfigYaml(kubeConfig: Partial<KubeConfig>): string {
exec: user.exec,
token: user.token,
username: user.username,
password: user.password
}
password: user.password,
},
}));
const config = {
apiVersion: "v1",

View File

@ -56,7 +56,7 @@ if (ipcMain) {
},
}),
),
})
}),
);
if (!isTestEnv) {
@ -73,7 +73,7 @@ if (ipcMain) {
maxsize: 16 * 1024,
maxFiles: 16,
tailable: true,
})
}),
);
}
} else {

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const addClusterRoute: RouteProps = {
path: "/add-cluster"
path: "/add-cluster",
};
export const addClusterURL = buildURL(addClusterRoute.path);

View File

@ -27,7 +27,7 @@ export interface CatalogViewRouteParam {
kind?: string;
}
export const catalogRoute: RouteProps = {
path: "/catalog/:group?/:kind?"
path: "/catalog/:group?/:kind?",
};
export const getPreviousTabUrl = (path: string) => {
@ -36,8 +36,8 @@ export const getPreviousTabUrl = (path: string) => {
return catalogURL({
params: {
group: group || browseCatalogTab,
kind
}
kind,
},
});
};

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const clusterRoute: RouteProps = {
path: "/overview"
path: "/overview",
};
export const clusterURL = buildURL(clusterRoute.path);

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const configMapsRoute: RouteProps = {
path: "/configmaps"
path: "/configmaps",
};
export interface ConfigMapsRouteParams {

View File

@ -35,8 +35,8 @@ export const configRoute: RouteProps = {
resourceQuotaRoute,
limitRangesRoute,
hpaRoute,
pdbRoute
].map(route => route.path.toString())
pdbRoute,
].map(route => route.path.toString()),
};
export const configURL = (params?: URLParams) => configMapsURL(params);

View File

@ -23,15 +23,15 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const crdRoute: RouteProps = {
path: "/crd"
path: "/crd",
};
export const crdDefinitionsRoute: RouteProps = {
path: `${crdRoute.path}/definitions`
path: `${crdRoute.path}/definitions`,
};
export const crdResourcesRoute: RouteProps = {
path: `${crdRoute.path}/:group/:name`
path: `${crdRoute.path}/:group/:name`,
};
export interface CRDListQuery {

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const endpointRoute: RouteProps = {
path: "/endpoints"
path: "/endpoints",
};
export interface EndpointRouteParams {

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const eventRoute: RouteProps = {
path: "/events"
path: "/events",
};
export const eventsURL = buildURL(eventRoute.path);

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const extensionsRoute: RouteProps = {
path: "/extensions"
path: "/extensions",
};
export const extensionsURL = buildURL(extensionsRoute.path);

View File

@ -24,7 +24,7 @@ import { buildURL } from "../utils/buildUrl";
import { appsRoute } from "./apps";
export const helmChartsRoute: RouteProps = {
path: `${appsRoute.path}/charts/:repo?/:chartName?`
path: `${appsRoute.path}/charts/:repo?/:chartName?`,
};
export interface HelmChartsRouteParams {

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const hpaRoute: RouteProps = {
path: "/hpa"
path: "/hpa",
};
export interface HpaRouteParams {

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const ingressRoute: RouteProps = {
path: "/ingresses"
path: "/ingresses",
};
export interface IngressRouteParams {

View File

@ -23,7 +23,7 @@ import type { RouteProps } from "react-router";
import { buildURL } from "../utils/buildUrl";
export const limitRangesRoute: RouteProps = {
path: "/limitranges"
path: "/limitranges",
};
export interface LimitRangeRouteParams {

Some files were not shown because too many files have changed in this diff Show More