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

Restructure extension apis (#1101)

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2020-10-20 14:45:15 +03:00 committed by GitHub
parent c566c85351
commit d25e2f015b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 109 additions and 53 deletions

View File

@ -1,10 +1,10 @@
import { Button, Icon, IconProps, LensRendererExtension } from "@lens/ui-extensions";
import { Component, LensRendererExtension } from "@lens/ui-extensions";
import { CoffeeDoodle } from "react-open-doodles";
import path from "path";
import React from "react"
export function ExtensionIcon(props: IconProps) {
return <Icon {...props} material="pages" tooltip={path.basename(__filename)}/>
export function ExtensionIcon(props: Component.IconProps) {
return <Component.Icon {...props} material="pages" tooltip={path.basename(__filename)}/>
}
export class ExtensionPage extends React.Component<{ extension: LensRendererExtension }> {
@ -22,7 +22,7 @@ export class ExtensionPage extends React.Component<{ extension: LensRendererExte
<div style={doodleStyle}><CoffeeDoodle accent="#3d90ce" /></div>
<p>Hello from Example extension!</p>
<p>File: <i>{__filename}</i></p>
<Button accent label="Deactivate" onClick={this.deactivate}/>
<Component.Button accent label="Deactivate" onClick={this.deactivate}/>
</div>
)
}

View File

@ -1,4 +1,4 @@
import { DynamicPageType, LensRendererExtension, PageRegistry } from "@lens/ui-extensions";
import { Registry, LensRendererExtension } from "@lens/ui-extensions";
import { examplePage, ExtensionIcon } from "./page"
export default class ExampleExtension extends LensRendererExtension {
@ -6,10 +6,10 @@ export default class ExampleExtension extends LensRendererExtension {
console.log('EXAMPLE EXTENSION RENDERER: ACTIVATED', this.getMeta());
}
registerPages(registry: PageRegistry) {
registerPages(registry: Registry.PageRegistry) {
this.disposers.push(
registry.add({
type: DynamicPageType.CLUSTER,
type: Registry.DynamicPageType.CLUSTER,
path: "/extension-example",
title: "Example Extension",
components: {

View File

@ -1,4 +1,4 @@
import { Checkbox } from "@lens/ui-extensions"
import { Component } from "@lens/ui-extensions"
import React from "react"
import { observer } from "mobx-react";
import { TelemetryPreferencesStore } from "./telemetry-preferences-store"
@ -8,7 +8,7 @@ export class TelemetryPreferenceInput extends React.Component<{telemetry: Teleme
render() {
const { telemetry } = this.props
return (
<Checkbox
<Component.Checkbox
label="Allow telemetry & usage tracking"
value={telemetry.enabled}
onChange={v => { telemetry.enabled = v; }}

View File

@ -1,11 +1,11 @@
import { BaseStore } from "@lens/extensions";
import { Store } from "@lens/extensions";
import { toJS } from "mobx"
export type TelemetryPreferencesModel = {
enabled: boolean;
}
export class TelemetryPreferencesStore extends BaseStore<TelemetryPreferencesModel> {
export class TelemetryPreferencesStore extends Store.BaseStore<TelemetryPreferencesModel> {
private constructor() {
super({
configName: "telemetry-preferences-store",

View File

@ -1,9 +1,14 @@
// Lens-extensions api developer's kit
export type { LensExtensionRuntimeEnv } from "./lens-runtime";
export * from "./lens-main-extension"
// APIs
export * from "./lens-main-extension"
export { BaseStore } from "../common/base-store"
export { appEventBus } from "../common/event-bus"
export type { AppEvent } from "../common/event-bus"
export { Singleton } from "../common/utils"
import * as EventBus from "./main-api/event-bus"
import * as Store from "./main-api/stores"
import * as Util from "./main-api/utils"
export {
EventBus,
Store,
Util
}

View File

@ -4,16 +4,17 @@ export type { LensExtensionRuntimeEnv } from "./lens-renderer-runtime"
// APIs
export * from "./lens-extension"
export * from "./lens-renderer-extension"
export { DynamicPageType, PageRegistry } from "./page-registry"
export { AppPreferenceRegistry } from "./app-preference-registry"
export { appEventBus } from "../common/event-bus"
export type { AppEvent } from "../common/event-bus"
export { Singleton } from "../common/utils"
// TODO: add more common re-usable UI components + refactor interfaces (Props -> ComponentProps)
export * from "../renderer/components/icon"
export * from "../renderer/components/checkbox"
export * from "../renderer/components/tooltip"
export * from "../renderer/components/button"
export * from "../renderer/components/tabs"
export * from "../renderer/components/badge"
import * as Component from "./renderer-api/components"
import * as EventBus from "./main-api/event-bus"
import * as K8sApi from "./renderer-api/k8s-api"
import * as Registry from "./renderer-api/registries"
import * as Util from "./main-api/utils"
export {
Component,
EventBus,
K8sApi,
Registry,
Util
}

View File

@ -1,14 +1,14 @@
import { LensExtension } from "./lens-extension"
import type { PageRegistry } from "./extension-renderer-api"
import { AppPreferenceRegistry } from "./app-preference-registry";
import type { PageRegistry } from "./page-registry"
import type { AppPreferenceRegistry } from "./app-preference-registry";
export class LensRendererExtension extends LensExtension {
registerPages(pageStore: PageRegistry) {
registerPages(registry: PageRegistry) {
return
}
registerAppPreferences(appPreferenceStore: AppPreferenceRegistry) {
registerAppPreferences(registry: AppPreferenceRegistry) {
return
}
}

View File

@ -0,0 +1,2 @@
export { appEventBus } from "../../common/event-bus"
export type { AppEvent } from "../../common/event-bus"

View File

@ -0,0 +1 @@
export { BaseStore } from "../../common/base-store"

View File

@ -0,0 +1 @@
export { Singleton } from "../../common/utils"

View File

@ -0,0 +1,12 @@
// TODO: add more common re-usable UI components + refactor interfaces (Props -> ComponentProps)
export * from "../../renderer/components/icon"
export * from "../../renderer/components/checkbox"
export * from "../../renderer/components/tooltip"
export * from "../../renderer/components/button"
export * from "../../renderer/components/tabs"
export * from "../../renderer/components/badge"
export { KubeObjectMeta } from "../../renderer/components/kube-object/kube-object-meta";
export { MenuItem, SubMenu } from "../../renderer/components/menu";
export { StatusBrick } from "../../renderer/components/status-brick";
export { terminalStore, createTerminalTab } from "../../renderer/components/dock/terminal.store";
export { createPodLogsTab } from "../../renderer/components/dock/pod-logs.store";

View File

@ -0,0 +1,29 @@
export { KubeApi } from "../../renderer/api/kube-api";
export { KubeObject } from "../../renderer/api/kube-object";
export { Pod, podsApi } from "../../renderer/api/endpoints";
export { Node, nodesApi } from "../../renderer/api/endpoints";
export { Deployment, deploymentApi } from "../../renderer/api/endpoints";
export { DaemonSet, daemonSetApi } from "../../renderer/api/endpoints";
export { StatefulSet, statefulSetApi } from "../../renderer/api/endpoints";
export { Job, jobApi } from "../../renderer/api/endpoints";
export { CronJob, cronJobApi } from "../../renderer/api/endpoints";
export { ConfigMap, configMapApi } from "../../renderer/api/endpoints";
export { Secret, secretsApi } from "../../renderer/api/endpoints";
export { ResourceQuota, resourceQuotaApi } from "../../renderer/api/endpoints";
export { HorizontalPodAutoscaler, hpaApi } from "../../renderer/api/endpoints";
export { PodDisruptionBudget, pdbApi } from "../../renderer/api/endpoints";
export { Service, serviceApi } from "../../renderer/api/endpoints";
export { Endpoint, endpointApi } from "../../renderer/api/endpoints";
export { Ingress, ingressApi } from "../../renderer/api/endpoints";
export { NetworkPolicy, networkPolicyApi } from "../../renderer/api/endpoints";
export { PersistentVolume, persistentVolumeApi } from "../../renderer/api/endpoints";
export { PersistentVolumeClaim, PersistentVolumeClaimsApi } from "../../renderer/api/endpoints";
export { StorageClass, storageClassApi } from "../../renderer/api/endpoints";
export { Namespace, namespacesApi } from "../../renderer/api/endpoints";
export { KubeEvent, eventApi } from "../../renderer/api/endpoints";
export { ServiceAccount, serviceAccountsApi } from "../../renderer/api/endpoints";
export { Role, roleApi } from "../../renderer/api/endpoints";
export { RoleBinding, roleBindingApi } from "../../renderer/api/endpoints";
export { ClusterRole, clusterRoleApi } from "../../renderer/api/endpoints";
export { ClusterRoleBinding, clusterRoleBindingApi } from "../../renderer/api/endpoints";

View File

@ -0,0 +1,2 @@
export { DynamicPageType, PageRegistry } from "../page-registry"
export { AppPreferenceRegistry } from "../app-preference-registry"

View File

@ -2,30 +2,33 @@
// Docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/
export * from "./cluster.api"
export * from "./namespaces.api"
export * from "./cluster-role.api"
export * from "./cluster-role-binding.api"
export * from "./configmap.api"
export * from "./cron-job.api"
export * from "./daemon-set.api"
export * from "./deployment.api"
export * from "./endpoint.api"
export * from "./events.api"
export * from "./hpa.api"
export * from "./ingress.api"
export * from "./job.api"
export * from "./namespaces.api"
export * from "./network-policy.api"
export * from "./nodes.api"
export * from "./persistent-volume.api"
export * from "./persistent-volume-claims.api"
export * from "./pods.api"
export * from "./poddisruptionbudget.api"
export * from "./pod-metrics.api"
export * from "./podsecuritypolicy.api"
export * from "./replica-set.api"
export * from "./resource-quota.api"
export * from "./role.api"
export * from "./role-binding.api"
export * from "./secret.api"
export * from "./service-accounts.api"
export * from "./nodes.api"
export * from "./pods.api"
export * from "./deployment.api"
export * from "./daemon-set.api"
export * from "./stateful-set.api"
export * from "./replica-set.api"
export * from "./job.api"
export * from "./cron-job.api"
export * from "./configmap.api"
export * from "./ingress.api"
export * from "./network-policy.api"
export * from "./persistent-volume-claims.api"
export * from "./persistent-volume.api"
export * from "./service.api"
export * from "./endpoint.api"
export * from "./storage-class.api"
export * from "./pod-metrics.api"
export * from "./podsecuritypolicy.api"
export * from "./selfsubjectrulesreviews.api"
export * from "./poddisruptionbudget.api"
export * from "./service.api"
export * from "./service-accounts.api"
export * from "./stateful-set.api"
export * from "./storage-class.api"