@openshift-console/dynamic-plugin-sdk
Version:
Based on the concept of [webpack module federation](https://webpack.js.org/concepts/module-federation/), dynamic plugins are loaded and interpreted from remote sources at runtime. The standard way to deliver and expose dynamic plugins to Console is throug
90 lines (89 loc) • 4.89 kB
TypeScript
import { Extension, ExtensionDeclaration, CodeRef } from '../types';
import { WatchK8sResourcesGeneric } from './console-types';
import { CreateConnectionGetter, RelationshipProviderCreate, RelationshipProviderProvides, TopologyApplyDisplayOptions, TopologyDataModelDepicted, TopologyDataModelGetter, TopologyDataModelReconciler, TopologyDecoratorGetter, TopologyDecoratorQuadrant, TopologyDisplayOption, ViewComponentFactory } from './topology-types';
/** Getter for a ViewComponentFactory */
export declare type TopologyComponentFactory = ExtensionDeclaration<'console.topology/component/factory', {
/** Getter for a ViewComponentFactory */
getFactory: CodeRef<ViewComponentFactory>;
}>;
/** Getter for the create connector function */
export declare type TopologyCreateConnector = ExtensionDeclaration<'console.topology/create/connector', {
/** Getter for the create connector function */
getCreateConnector: CodeRef<CreateConnectionGetter>;
}>;
/** Topology Data Model Factory Extension */
export declare type TopologyDataModelFactory = ExtensionDeclaration<'console.topology/data/factory', {
/** Unique ID for the factory. */
id: string;
/** Priority for the factory */
priority: number;
/** Resources to be fetched from useK8sWatchResources hook. */
resources?: WatchK8sResourcesGeneric;
/** Keys in resources containing workloads. */
workloadKeys?: string[];
/** Getter for the data model factory */
getDataModel?: CodeRef<TopologyDataModelGetter>;
/** Getter for function to determine if a resource is depicted by this model factory */
isResourceDepicted?: CodeRef<TopologyDataModelDepicted>;
/** Getter for function to reconcile data model after all extensions' models have loaded */
getDataModelReconciler?: CodeRef<TopologyDataModelReconciler>;
}>;
/** Topology Display Filters Extension */
export declare type TopologyDisplayFilters = ExtensionDeclaration<'console.topology/display/filters', {
getTopologyFilters: CodeRef<() => TopologyDisplayOption[]>;
applyDisplayOptions: CodeRef<TopologyApplyDisplayOptions>;
}>;
/** Topology Decorator Provider Extension */
export declare type TopologyDecoratorProvider = ExtensionDeclaration<'console.topology/decorator/provider', {
id: string;
priority: number;
quadrant: TopologyDecoratorQuadrant;
decorator: CodeRef<TopologyDecoratorGetter>;
}>;
/** Topology relationship provider connector extension */
export declare type TopologyRelationshipProvider = ExtensionDeclaration<'console.topology/relationship/provider', {
provides: CodeRef<RelationshipProviderProvides>;
tooltip: string;
create: CodeRef<RelationshipProviderCreate>;
priority: number;
}>;
export declare const isTopologyComponentFactory: (e: Extension<any>) => e is ExtensionDeclaration<"console.topology/component/factory", {
/** Getter for a ViewComponentFactory */
getFactory: CodeRef<ViewComponentFactory>;
}>;
export declare const isTopologyCreateConnector: (e: Extension<any>) => e is ExtensionDeclaration<"console.topology/create/connector", {
/** Getter for the create connector function */
getCreateConnector: CodeRef<CreateConnectionGetter>;
}>;
export declare const isTopologyDataModelFactory: (e: Extension<any>) => e is ExtensionDeclaration<"console.topology/data/factory", {
/** Unique ID for the factory. */
id: string;
/** Priority for the factory */
priority: number;
/** Resources to be fetched from useK8sWatchResources hook. */
resources?: WatchK8sResourcesGeneric;
/** Keys in resources containing workloads. */
workloadKeys?: string[];
/** Getter for the data model factory */
getDataModel?: CodeRef<TopologyDataModelGetter>;
/** Getter for function to determine if a resource is depicted by this model factory */
isResourceDepicted?: CodeRef<TopologyDataModelDepicted>;
/** Getter for function to reconcile data model after all extensions' models have loaded */
getDataModelReconciler?: CodeRef<TopologyDataModelReconciler>;
}>;
export declare const isTopologyDisplayFilters: (e: Extension<any>) => e is ExtensionDeclaration<"console.topology/display/filters", {
getTopologyFilters: CodeRef<() => TopologyDisplayOption[]>;
applyDisplayOptions: CodeRef<TopologyApplyDisplayOptions>;
}>;
export declare const isTopologyDecoratorProvider: (e: Extension<any>) => e is ExtensionDeclaration<"console.topology/decorator/provider", {
id: string;
priority: number;
quadrant: TopologyDecoratorQuadrant;
decorator: CodeRef<TopologyDecoratorGetter>;
}>;
export declare const isTopologyRelationshipProvider: (e: Extension<any>) => e is ExtensionDeclaration<"console.topology/relationship/provider", {
provides: CodeRef<RelationshipProviderProvides>;
tooltip: string;
create: CodeRef<RelationshipProviderCreate>;
priority: number;
}>;