7
7
import { Legacy } from 'kibana' ;
8
8
import { Server } from 'hapi' ;
9
9
import moment from 'moment' ;
10
+ import { KibanaConfig } from 'src/legacy/server/kbn_server' ;
10
11
import { getESClient } from './es_client' ;
11
12
import { getUiFiltersES } from './convert_ui_filters/get_ui_filters_es' ;
12
- import { PromiseReturnType } from '../../../typings/common' ;
13
- import { getApmIndices } from '../settings/apm_indices/get_apm_indices' ;
13
+ import {
14
+ getApmIndices ,
15
+ ApmIndicesConfig
16
+ } from '../settings/apm_indices/get_apm_indices' ;
17
+ import { ESFilter } from '../../../typings/elasticsearch' ;
18
+ import { ESClient } from './es_client' ;
14
19
15
20
function decodeUiFilters ( server : Server , uiFiltersEncoded ?: string ) {
16
21
if ( ! uiFiltersEncoded ) {
@@ -26,9 +31,20 @@ export interface APMRequestQuery {
26
31
end ?: string ;
27
32
uiFilters ?: string ;
28
33
}
34
+ // Explicitly type Setup to prevent TS initialization errors
35
+ // https://github.com/microsoft/TypeScript/issues/34933
29
36
30
- export type Setup = PromiseReturnType < typeof setupRequest > ;
31
- export async function setupRequest ( req : Legacy . Request ) {
37
+ export interface Setup {
38
+ start : number ;
39
+ end : number ;
40
+ uiFiltersES : ESFilter [ ] ;
41
+ client : ESClient ;
42
+ internalClient : ESClient ;
43
+ config : KibanaConfig ;
44
+ indices : ApmIndicesConfig ;
45
+ }
46
+
47
+ export async function setupRequest ( req : Legacy . Request ) : Promise < Setup > {
32
48
const query = ( req . query as unknown ) as APMRequestQuery ;
33
49
const { server } = req ;
34
50
const savedObjectsClient = server . savedObjects . getScopedSavedObjectsClient (
0 commit comments