kibana/x-pack/plugins/observability/public/index.ts
Spencer fecdba7eba
[eslint] add rule to prevent export* in plugin index files (#109357)
* [eslint] add rule to prevent export* in plugin index files

* deduplicate export names for types/instances with the same name

* attempt to auto-fix duplicate exports too

* capture exported enums too

* enforce no_export_all for core too

* disable rule by default, allow opting-in for help fixing

* update tests

* reduce yarn.lock duplication

* add rule but no fixes

* disable all existing violations

* update api docs with new line numbers

* revert unnecessary changes to yarn.lock which only had drawbacks

* remove unnecessary eslint-disable

* rework codegen to split type exports and use babel to generate valid code

* check for "export types" deeply

* improve test by using fixtures

* add comments to some helper functions

* disable fix for namespace exports including types

* label all eslint-disable comments with related team-specific issue

* ensure that child exports of `export type` are always tracked as types

Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-09-01 18:05:45 -07:00

81 lines
2.7 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
// TODO: https://github.com/elastic/kibana/issues/110905
/* eslint-disable @kbn/eslint/no_export_all */
import { PluginInitializerContext, PluginInitializer } from 'kibana/public';
import { lazy } from 'react';
import {
Plugin,
ObservabilityPublicPluginsStart,
ObservabilityPublicPluginsSetup,
ObservabilityPublicStart,
ObservabilityPublicSetup,
} from './plugin';
export type {
ObservabilityPublicSetup,
ObservabilityPublicStart,
ObservabilityPublicPluginsSetup,
ObservabilityPublicPluginsStart,
};
export { enableInspectEsQueries } from '../common/ui_settings_keys';
export interface ConfigSchema {
unsafe: { alertingExperience: { enabled: boolean }; cases: { enabled: boolean } };
}
export const plugin: PluginInitializer<
ObservabilityPublicSetup,
ObservabilityPublicStart,
ObservabilityPublicPluginsSetup,
ObservabilityPublicPluginsStart
> = (context: PluginInitializerContext<ConfigSchema>) => {
return new Plugin(context);
};
export * from './components/shared/action_menu/';
export type { UXMetrics } from './components/shared/core_web_vitals/';
export {
getCoreVitalsComponent,
HeaderMenuPortal,
FieldValueSuggestions,
} from './components/shared/';
export type { LazyObservabilityPageTemplateProps } from './components/shared';
export {
useTrackPageview,
useUiTracker,
useTrackMetric,
UiTracker,
TrackMetricOptions,
METRIC_TYPE,
} from './hooks/use_track_metric';
export const LazyAlertsFlyout = lazy(() => import('./pages/alerts/alerts_flyout'));
export { useFetcher, FETCH_STATUS } from './hooks/use_fetcher';
export * from './typings';
export { useChartTheme } from './hooks/use_chart_theme';
export { useBreadcrumbs } from './hooks/use_breadcrumbs';
export { useTheme } from './hooks/use_theme';
export { getApmTraceUrl } from './utils/get_apm_trace_url';
export { createExploratoryViewUrl } from './components/shared/exploratory_view/configurations/utils';
export { ALL_VALUES_SELECTED } from './components/shared/field_value_suggestions/field_value_combobox';
export { FilterValueLabel } from './components/shared/filter_value_label/filter_value_label';
export type { SeriesUrl } from './components/shared/exploratory_view/types';
export type {
ObservabilityRuleTypeFormatter,
ObservabilityRuleTypeModel,
ObservabilityRuleTypeRegistry,
} from './rules/create_observability_rule_type_registry';
export { createObservabilityRuleTypeRegistryMock } from './rules/observability_rule_type_registry_mock';