[Uptime] Migrate to TypeScript project references (#90510)

* Add reference to Uptime plugin to root tsconfig.refs.json.

* Add Uptime path to excluded list, and reference to references prop in `x-pack/tsconfig.json`.

* Add reference to Uptime project in `x-pack/test/tsconfig.json`.

* Add `tsconfig.json` project file to Uptime.

* Fix broken JSON structure in test fixture.

* Fix broken type exports. Introduce missing types.

* Implement PR feedback.

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Justin Kambic 2021-02-08 21:51:42 -05:00 committed by GitHub
parent 231610c720
commit c7e23bffc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 117 additions and 47 deletions

View file

@ -7,23 +7,33 @@
import { ActionGroup } from '../../../alerts/common';
export type MonitorStatusActionGroup = ActionGroup<'xpack.uptime.alerts.actionGroups.monitorStatus'>;
export type TLSActionGroup = ActionGroup<'xpack.uptime.alerts.actionGroups.tls'>;
export type DurationAnomalyActionGroup = ActionGroup<'xpack.uptime.alerts.actionGroups.durationAnomaly'>;
export const MONITOR_STATUS: MonitorStatusActionGroup = {
id: 'xpack.uptime.alerts.actionGroups.monitorStatus',
name: 'Uptime Down Monitor',
};
export const TLS: TLSActionGroup = {
id: 'xpack.uptime.alerts.actionGroups.tls',
name: 'Uptime TLS Alert',
};
export const DURATION_ANOMALY: DurationAnomalyActionGroup = {
id: 'xpack.uptime.alerts.actionGroups.durationAnomaly',
name: 'Uptime Duration Anomaly',
};
export const ACTION_GROUP_DEFINITIONS: {
MONITOR_STATUS: ActionGroup<'xpack.uptime.alerts.actionGroups.monitorStatus'>;
TLS: ActionGroup<'xpack.uptime.alerts.actionGroups.tls'>;
DURATION_ANOMALY: ActionGroup<'xpack.uptime.alerts.actionGroups.durationAnomaly'>;
MONITOR_STATUS: MonitorStatusActionGroup;
TLS: TLSActionGroup;
DURATION_ANOMALY: DurationAnomalyActionGroup;
} = {
MONITOR_STATUS: {
id: 'xpack.uptime.alerts.actionGroups.monitorStatus',
name: 'Uptime Down Monitor',
},
TLS: {
id: 'xpack.uptime.alerts.actionGroups.tls',
name: 'Uptime TLS Alert',
},
DURATION_ANOMALY: {
id: 'xpack.uptime.alerts.actionGroups.durationAnomaly',
name: 'Uptime Duration Anomaly',
},
MONITOR_STATUS,
TLS,
DURATION_ANOMALY,
};
export const CLIENT_ALERT_TYPES = {

View file

@ -5,9 +5,11 @@
* 2.0.
*/
import { EuiPanel, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui';
import { EuiPanel, EuiFlexGroup, EuiFlexItem, EuiText, EuiPanelProps } from '@elastic/eui';
import { rgba } from 'polished';
import { euiStyled } from '../../../../../../../../../src/plugins/kibana_react/common';
import { FunctionComponent } from 'react';
import { StyledComponent } from 'styled-components';
import { euiStyled, EuiTheme } from '../../../../../../../../../src/plugins/kibana_react/common';
import { FIXED_AXIS_HEIGHT } from './constants';
interface WaterfallChartOuterContainerProps {
@ -53,7 +55,10 @@ export const WaterfallChartAxisOnlyContainer = euiStyled(EuiFlexItem)`
export const WaterfallChartTopContainer = euiStyled(EuiFlexGroup)`
`;
export const WaterfallChartFixedTopContainerSidebarCover = euiStyled(EuiPanel)`
export const WaterfallChartFixedTopContainerSidebarCover: StyledComponent<
FunctionComponent<EuiPanelProps>,
EuiTheme
> = euiStyled(EuiPanel)`
height: 100%;
border-radius: 0 !important;
border: none;
@ -82,7 +87,10 @@ export const WaterfallChartSidebarContainer = euiStyled.div<WaterfallChartSideba
overflow-y: hidden;
`;
export const WaterfallChartSidebarContainerInnerPanel = euiStyled(EuiPanel)`
export const WaterfallChartSidebarContainerInnerPanel: StyledComponent<
FunctionComponent<EuiPanelProps>,
EuiTheme
> = euiStyled(EuiPanel)`
border: 0;
height: 100%;
`;

View file

@ -12,7 +12,7 @@ import { IntegrationGroup } from './integration_group';
import { MonitorSummary } from '../../../../../../common/runtime_types';
import { toggleIntegrationsPopover, PopoverState } from '../../../../../state/actions';
interface ActionsPopoverProps {
export interface ActionsPopoverProps {
summary: MonitorSummary;
popoverState: PopoverState | null;
togglePopoverIsVisible: typeof toggleIntegrationsPopover;

View file

@ -261,7 +261,25 @@
},
"state": {
"agent": null,
"checks": ,
"checks": [
{
"agent": { "id": "8f9a37fb-573a-4fdc-9895-440a5b39c250", "__typename": "Agent" },
"container": null,
"kubernetes": null,
"monitor": {
"ip": "127.0.0.1",
"name": "localhost",
"status": "up",
"__typename": "CheckMonitor"
},
"observer": {
"geo": { "name": null, "location": null, "__typename": "CheckGeo" },
"__typename": "CheckObserver"
},
"timestamp": "1570538246143",
"__typename": "Check"
}
],
"geo": null,
"observer": {
"geo": { "name": [], "location": null, "__typename": "StateGeo" },

View file

@ -53,7 +53,7 @@ export const deleteAnomalyAlertAction = createAsyncAction<{ alertId: string }, a
'DELETE ANOMALY ALERT'
);
interface AlertState {
export interface AlertState {
connectors: AsyncInitState<ActionConnector[]>;
newAlert: AsyncInitState<Alert<UptimeAlertTypeParams>>;
alerts: AsyncInitState<AlertsResult>;

View file

@ -19,7 +19,7 @@ export const getCertificatesAction = createAsyncAction<GetCertsParams, CertResul
'GET_CERTIFICATES'
);
interface CertificatesState {
export interface CertificatesState {
certs: AsyncInitState<CertResult>;
}

View file

@ -5,17 +5,16 @@
* 2.0.
*/
import { compose, createStore, applyMiddleware } from 'redux';
import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import createSagaMiddleware from 'redux-saga';
import { rootEffect } from './effects';
import { rootReducer } from './reducers';
export type AppState = ReturnType<typeof rootReducer>;
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const sagaMW = createSagaMiddleware();
export const store = createStore(rootReducer, composeEnhancers(applyMiddleware(sagaMW)));
export const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(sagaMW)));
sagaMW.run(rootEffect);

View file

@ -24,7 +24,7 @@ export interface JourneyState {
error?: Error;
}
interface JourneyKVP {
export interface JourneyKVP {
[checkGroup: string]: JourneyState;
}

View file

@ -10,7 +10,7 @@ import moment from 'moment';
import { schema } from '@kbn/config-schema';
import { ActionGroupIdsOf } from '../../../../alerts/common';
import { updateState } from './common';
import { ACTION_GROUP_DEFINITIONS } from '../../../common/constants/alerts';
import { DURATION_ANOMALY } from '../../../common/constants/alerts';
import { commonStateTranslations, durationAnomalyTranslations } from './translations';
import { AnomaliesTableRecord } from '../../../../ml/common/types/anomalies';
import { getSeverityType } from '../../../../ml/common/util/anomaly_utils';
@ -21,7 +21,6 @@ import { getMLJobId } from '../../../common/lib';
import { getLatestMonitor } from '../requests/get_latest_monitor';
import { uptimeAlertWrapper } from './uptime_alert_wrapper';
const { DURATION_ANOMALY } = ACTION_GROUP_DEFINITIONS;
export type ActionGroupIds = ActionGroupIdsOf<typeof DURATION_ANOMALY>;
export const getAnomalySummary = (anomaly: AnomaliesTableRecord, monitorInfo: Ping) => {

View file

@ -17,7 +17,7 @@ import {
Ping,
GetMonitorAvailabilityParams,
} from '../../../common/runtime_types';
import { ACTION_GROUP_DEFINITIONS } from '../../../common/constants/alerts';
import { MONITOR_STATUS } from '../../../common/constants/alerts';
import { updateState } from './common';
import { commonMonitorStateI18, commonStateTranslations, DOWN_LABEL } from './translations';
import { stringifyKueries, combineFiltersAndUserSearch } from '../../../common/lib';
@ -29,7 +29,6 @@ import { MonitorStatusTranslations } from '../../../common/translations';
import { getUptimeIndexPattern, IndexPatternTitleAndFields } from '../requests/get_index_pattern';
import { UMServerLibs, UptimeESClient } from '../lib';
const { MONITOR_STATUS } = ACTION_GROUP_DEFINITIONS;
export type ActionGroupIds = ActionGroupIdsOf<typeof MONITOR_STATUS>;
const getMonIdByLoc = (monitorId: string, location: string) => {

View file

@ -9,7 +9,7 @@ import moment from 'moment';
import { schema } from '@kbn/config-schema';
import { UptimeAlertTypeFactory } from './types';
import { updateState } from './common';
import { ACTION_GROUP_DEFINITIONS } from '../../../common/constants/alerts';
import { TLS } from '../../../common/constants/alerts';
import { DYNAMIC_SETTINGS_DEFAULTS } from '../../../common/constants';
import { Cert, CertResult } from '../../../common/runtime_types';
import { commonStateTranslations, tlsTranslations } from './translations';
@ -17,7 +17,6 @@ import { DEFAULT_FROM, DEFAULT_TO } from '../../rest_api/certs/certs';
import { uptimeAlertWrapper } from './uptime_alert_wrapper';
import { ActionGroupIdsOf } from '../../../../alerts/common';
const { TLS } = ACTION_GROUP_DEFINITIONS;
export type ActionGroupIds = ActionGroupIdsOf<typeof TLS>;
const DEFAULT_SIZE = 20;

View file

@ -27,7 +27,7 @@ export interface UMServerLibs extends UMDomainLibs {
framework: UMBackendFrameworkAdapter;
}
interface CountResponse {
export interface CountResponse {
body: {
count: number;
_shards: {

View file

@ -8,7 +8,7 @@
import { UMElasticsearchQueryFn } from '../adapters/framework';
import { SyntheticsJourneyApiResponse } from '../../../common/runtime_types';
interface GetJourneyDetails {
export interface GetJourneyDetails {
checkGroup: string;
}

View file

@ -8,7 +8,7 @@
import { UMElasticsearchQueryFn } from '../adapters/framework';
import { Ping } from '../../../common/runtime_types';
interface GetJourneyStepsParams {
export interface GetJourneyStepsParams {
checkGroups: string[];
}

View file

@ -8,7 +8,7 @@
import { UMElasticsearchQueryFn } from '../adapters/framework';
import { Ping } from '../../../common/runtime_types/ping';
interface GetJourneyScreenshotParams {
export interface GetJourneyScreenshotParams {
checkGroup: string;
stepIndex: number;
}

View file

@ -8,7 +8,7 @@
import { UMElasticsearchQueryFn } from '../adapters/framework';
import { Ping } from '../../../common/runtime_types';
interface GetJourneyStepsParams {
export interface GetJourneyStepsParams {
checkGroup: string;
syntheticEventTypes?: string | string[];
}

View file

@ -8,7 +8,7 @@
import { UMElasticsearchQueryFn } from '../adapters/framework';
import { NetworkEvent } from '../../../common/runtime_types';
interface GetNetworkEventsParams {
export interface GetNetworkEventsParams {
checkGroup: string;
stepIndex: string;
}

View file

@ -5,14 +5,14 @@
* 2.0.
*/
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
import { ElasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks';
import {
elasticsearchServiceMock,
savedObjectsClientMock,
} from '../../../../../../src/core/server/mocks';
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
import { ElasticsearchClientMock } from '../../../../../../src/core/server/elasticsearch/client/mocks';
import { createUptimeESClient } from '../lib';
import { createUptimeESClient, UptimeESClient } from '../lib';
export interface MultiPageCriteria<K, T> {
after_key?: K;
@ -60,7 +60,14 @@ export const setupMockEsCompositeQuery = <K, C, I>(
return esMock;
};
export const getUptimeESMockClient = (esClientMock?: ElasticsearchClientMock) => {
interface UptimeEsMockClient {
esClient: ElasticsearchClientMock;
uptimeEsClient: UptimeESClient;
}
export const getUptimeESMockClient = (
esClientMock?: ElasticsearchClientMock
): UptimeEsMockClient => {
const esClient = elasticsearchServiceMock.createElasticsearchClient();
const savedObjectsClient = savedObjectsClientMock.create();

View file

@ -0,0 +1,24 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"composite": true,
"outDir": "./target/types",
"emitDeclarationOnly": true,
"declaration": true,
"declarationMap": true
},
"include": [
"common/**/*",
"public/**/*",
"public/components/monitor/status_details/location_map/embeddables/low_poly_layer.json",
"server/**/*",
"server/lib/requests/__fixtures__/monitor_charts_mock.json",
"../../../typings/**/*"
],
"references": [
{ "path": "../alerts/tsconfig.json" },
{ "path": "../ml/tsconfig.json" },
{ "path": "../triggers_actions_ui/tsconfig.json" },
{ "path": "../observability/tsconfig.json" }
]
}

View file

@ -76,6 +76,10 @@
{ "path": "../plugins/triggers_actions_ui/tsconfig.json" },
{ "path": "../plugins/ui_actions_enhanced/tsconfig.json" },
{ "path": "../plugins/upgrade_assistant/tsconfig.json" },
{ "path": "../plugins/watcher/tsconfig.json" }
{ "path": "../plugins/watcher/tsconfig.json" },
{ "path": "../plugins/runtime_fields/tsconfig.json" },
{ "path": "../plugins/index_management/tsconfig.json" },
{ "path": "../plugins/watcher/tsconfig.json" },
{ "path": "../plugins/uptime/tsconfig.json" }
]
}

View file

@ -56,6 +56,7 @@
"plugins/index_management/**/*",
"plugins/grokdebugger/**/*",
"plugins/upgrade_assistant/**/*",
"plugins/uptime/**/*",
"test/**/*"
],
"compilerOptions": {
@ -145,6 +146,7 @@
{ "path": "./plugins/upgrade_assistant/tsconfig.json" },
{ "path": "./plugins/runtime_fields/tsconfig.json" },
{ "path": "./plugins/index_management/tsconfig.json" },
{ "path": "./plugins/watcher/tsconfig.json" }
{ "path": "./plugins/watcher/tsconfig.json" },
{ "path": "./plugins/uptime/tsconfig.json" }
]
}

View file

@ -50,6 +50,7 @@
{ "path": "./plugins/upgrade_assistant/tsconfig.json" },
{ "path": "./plugins/runtime_fields/tsconfig.json" },
{ "path": "./plugins/index_management/tsconfig.json" },
{ "path": "./plugins/watcher/tsconfig.json" }
{ "path": "./plugins/watcher/tsconfig.json" },
{ "path": "./plugins/uptime/tsconfig.json" }
]
}