diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern._constructor_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern._constructor_.md
index c6359fc268882..6574e7ee37926 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern._constructor_.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern._constructor_.md
@@ -9,7 +9,7 @@ Constructs a new instance of the `IndexPattern` class
Signature:
```typescript
-constructor(id: string | undefined, getConfig: any, savedObjectsClient: SavedObjectsClientContract, apiClient: IIndexPatternsApiClient, patternCache: PatternCache, fieldFormats: FieldFormatsStartCommon, onNotification: OnNotification, onError: OnError);
+constructor(id: string | undefined, { getConfig, savedObjectsClient, apiClient, patternCache, fieldFormats, onNotification, onError, }: IndexPatternDeps);
```
## Parameters
@@ -17,11 +17,5 @@ constructor(id: string | undefined, getConfig: any, savedObjectsClient: SavedObj
| Parameter | Type | Description |
| --- | --- | --- |
| id | string | undefined
| |
-| getConfig | any
| |
-| savedObjectsClient | SavedObjectsClientContract
| |
-| apiClient | IIndexPatternsApiClient
| |
-| patternCache | PatternCache
| |
-| fieldFormats | FieldFormatsStartCommon
| |
-| onNotification | OnNotification
| |
-| onError | OnError
| |
+| { getConfig, savedObjectsClient, apiClient, patternCache, fieldFormats, onNotification, onError, } | IndexPatternDeps
| |
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern.md
index 3e67b96cb80ce..8ffa7b6b36f56 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpattern.md
@@ -14,7 +14,7 @@ export declare class IndexPattern implements IIndexPattern
| Constructor | Modifiers | Description |
| --- | --- | --- |
-| [(constructor)(id, getConfig, savedObjectsClient, apiClient, patternCache, fieldFormats, onNotification, onError)](./kibana-plugin-plugins-data-public.indexpattern._constructor_.md) | | Constructs a new instance of the IndexPattern
class |
+| [(constructor)(id, { getConfig, savedObjectsClient, apiClient, patternCache, fieldFormats, onNotification, onError, })](./kibana-plugin-plugins-data-public.indexpattern._constructor_.md) | | Constructs a new instance of the IndexPattern
class |
## Properties
diff --git a/src/plugins/data/common/index_patterns/index_patterns/index_pattern.test.ts b/src/plugins/data/common/index_patterns/index_patterns/index_pattern.test.ts
index 8ec3072bf916b..cea476781ad3b 100644
--- a/src/plugins/data/common/index_patterns/index_patterns/index_pattern.test.ts
+++ b/src/plugins/data/common/index_patterns/index_patterns/index_pattern.test.ts
@@ -28,7 +28,7 @@ import mockLogStashFields from '../../../../../fixtures/logstash_fields';
import { stubbedSavedObjectIndexPattern } from '../../../../../fixtures/stubbed_saved_object_index_pattern';
import { Field } from '../fields';
-import { FieldFormatsStartCommon } from '../../field_formats';
+import { fieldFormatsMock } from '../../field_formats/mocks';
jest.mock('../../field_mapping', () => {
const originalModule = jest.requireActual('../../field_mapping');
@@ -97,16 +97,15 @@ const apiClient = {
// helper function to create index patterns
function create(id: string, payload?: any): Promise {
- const indexPattern = new IndexPattern(
- id,
- (cfg: any) => config.get(cfg),
- savedObjectsClient as any,
+ const indexPattern = new IndexPattern(id, {
+ getConfig: (cfg: any) => config.get(cfg),
+ savedObjectsClient: savedObjectsClient as any,
apiClient,
patternCache,
- ({ getDefaultInstance: () => {}, getType: () => {} } as unknown) as FieldFormatsStartCommon,
- () => {},
- () => {}
- );
+ fieldFormats: fieldFormatsMock,
+ onNotification: () => {},
+ onError: () => {},
+ });
setDocsourcePayload(id, payload);
@@ -363,31 +362,29 @@ describe('IndexPattern', () => {
},
});
// Create a normal index pattern
- const pattern = new IndexPattern(
- 'foo',
- (cfg: any) => config.get(cfg),
- savedObjectsClient as any,
+ const pattern = new IndexPattern('foo', {
+ getConfig: (cfg: any) => config.get(cfg),
+ savedObjectsClient: savedObjectsClient as any,
apiClient,
patternCache,
- ({ getDefaultInstance: () => {}, getType: () => {} } as unknown) as FieldFormatsStartCommon,
- () => {},
- () => {}
- );
+ fieldFormats: fieldFormatsMock,
+ onNotification: () => {},
+ onError: () => {},
+ });
await pattern.init();
expect(get(pattern, 'version')).toBe('fooa');
// Create the same one - we're going to handle concurrency
- const samePattern = new IndexPattern(
- 'foo',
- (cfg: any) => config.get(cfg),
- savedObjectsClient as any,
+ const samePattern = new IndexPattern('foo', {
+ getConfig: (cfg: any) => config.get(cfg),
+ savedObjectsClient: savedObjectsClient as any,
apiClient,
patternCache,
- ({ getDefaultInstance: () => {}, getType: () => {} } as unknown) as FieldFormatsStartCommon,
- () => {},
- () => {}
- );
+ fieldFormats: fieldFormatsMock,
+ onNotification: () => {},
+ onError: () => {},
+ });
await samePattern.init();
expect(get(samePattern, 'version')).toBe('fooaa');
diff --git a/src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts b/src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts
index aefa8734b01c7..666d99362ce80 100644
--- a/src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts
+++ b/src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts
@@ -45,6 +45,16 @@ import { expandShorthand, FieldMappingSpec, MappingObject } from '../../field_ma
const MAX_ATTEMPTS_TO_RESOLVE_CONFLICTS = 3;
const type = 'index-pattern';
+interface IndexPatternDeps {
+ getConfig: any;
+ savedObjectsClient: SavedObjectsClientContract;
+ apiClient: IIndexPatternsApiClient;
+ patternCache: PatternCache;
+ fieldFormats: FieldFormatsStartCommon;
+ onNotification: OnNotification;
+ onError: OnError;
+}
+
export class IndexPattern implements IIndexPattern {
[key: string]: any;
@@ -97,13 +107,15 @@ export class IndexPattern implements IIndexPattern {
constructor(
id: string | undefined,
- getConfig: any,
- savedObjectsClient: SavedObjectsClientContract,
- apiClient: IIndexPatternsApiClient,
- patternCache: PatternCache,
- fieldFormats: FieldFormatsStartCommon,
- onNotification: OnNotification,
- onError: OnError
+ {
+ getConfig,
+ savedObjectsClient,
+ apiClient,
+ patternCache,
+ fieldFormats,
+ onNotification,
+ onError,
+ }: IndexPatternDeps
) {
this.id = id;
this.savedObjectsClient = savedObjectsClient;
@@ -400,16 +412,15 @@ export class IndexPattern implements IIndexPattern {
async create(allowOverride: boolean = false) {
const _create = async (duplicateId?: string) => {
if (duplicateId) {
- const duplicatePattern = new IndexPattern(
- duplicateId,
- this.getConfig,
- this.savedObjectsClient,
- this.apiClient,
- this.patternCache,
- this.fieldFormats,
- this.onNotification,
- this.onError
- );
+ const duplicatePattern = new IndexPattern(duplicateId, {
+ getConfig: this.getConfig,
+ savedObjectsClient: this.savedObjectsClient,
+ apiClient: this.apiClient,
+ patternCache: this.patternCache,
+ fieldFormats: this.fieldFormats,
+ onNotification: this.onNotification,
+ onError: this.onError,
+ });
await duplicatePattern.destroy();
}
@@ -453,16 +464,15 @@ export class IndexPattern implements IIndexPattern {
_.get(err, 'res.status') === 409 &&
saveAttempts++ < MAX_ATTEMPTS_TO_RESOLVE_CONFLICTS
) {
- const samePattern = new IndexPattern(
- this.id,
- this.getConfig,
- this.savedObjectsClient,
- this.apiClient,
- this.patternCache,
- this.fieldFormats,
- this.onNotification,
- this.onError
- );
+ const samePattern = new IndexPattern(this.id, {
+ getConfig: this.getConfig,
+ savedObjectsClient: this.savedObjectsClient,
+ apiClient: this.apiClient,
+ patternCache: this.patternCache,
+ fieldFormats: this.fieldFormats,
+ onNotification: this.onNotification,
+ onError: this.onError,
+ });
return samePattern.init().then(() => {
// What keys changed from now and what the server returned
const updatedBody = samePattern.prepBody();
diff --git a/src/plugins/data/common/index_patterns/index_patterns/index_patterns.test.ts b/src/plugins/data/common/index_patterns/index_patterns/index_patterns.test.ts
index 5ff19a3c54cb1..b0ecfc89d376b 100644
--- a/src/plugins/data/common/index_patterns/index_patterns/index_patterns.test.ts
+++ b/src/plugins/data/common/index_patterns/index_patterns/index_patterns.test.ts
@@ -62,15 +62,15 @@ describe('IndexPatterns', () => {
}) as Promise>
);
- indexPatterns = new IndexPatternsService(
- core.uiSettings,
+ indexPatterns = new IndexPatternsService({
+ uiSettings: core.uiSettings,
savedObjectsClient,
http,
fieldFormats,
- () => {},
- () => {},
- () => {}
- );
+ onNotification: () => {},
+ onError: () => {},
+ onRedirectNoIndexPattern: () => {},
+ });
});
test('does cache gets for the same id', async () => {
diff --git a/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts b/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts
index db2a68956f106..22d1765d79348 100644
--- a/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts
+++ b/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts
@@ -49,6 +49,16 @@ export interface IndexPatternSavedObjectAttrs {
title: string;
}
+interface IndexPatternsServiceDeps {
+ uiSettings: CoreStart['uiSettings'];
+ savedObjectsClient: SavedObjectsClientContract;
+ http: HttpStart;
+ fieldFormats: FieldFormatsStartCommon;
+ onNotification: OnNotification;
+ onError: OnError;
+ onRedirectNoIndexPattern: () => void;
+}
+
export class IndexPatternsService {
private config: IUiSettingsClient;
private savedObjectsClient: SavedObjectsClientContract;
@@ -65,15 +75,15 @@ export class IndexPatternsService {
shortDotsEnable: boolean
) => Field;
- constructor(
- uiSettings: CoreStart['uiSettings'],
- savedObjectsClient: SavedObjectsClientContract,
- http: HttpStart,
- fieldFormats: FieldFormatsStartCommon,
- onNotification: OnNotification,
- onError: OnError,
- onRedirectNoIndexPattern: () => void
- ) {
+ constructor({
+ uiSettings,
+ savedObjectsClient,
+ http,
+ fieldFormats,
+ onNotification,
+ onError,
+ onRedirectNoIndexPattern,
+ }: IndexPatternsServiceDeps) {
this.apiClient = new IndexPatternsApiClient(http);
this.config = uiSettings;
this.savedObjectsClient = savedObjectsClient;
@@ -186,16 +196,15 @@ export class IndexPatternsService {
};
make = (id?: string): Promise => {
- const indexPattern = new IndexPattern(
- id,
- (cfg: any) => this.config.get(cfg),
- this.savedObjectsClient,
- this.apiClient,
- indexPatternCache,
- this.fieldFormats,
- this.onNotification,
- this.onError
- );
+ const indexPattern = new IndexPattern(id, {
+ getConfig: (cfg: any) => this.config.get(cfg),
+ savedObjectsClient: this.savedObjectsClient,
+ apiClient: this.apiClient,
+ patternCache: indexPatternCache,
+ fieldFormats: this.fieldFormats,
+ onNotification: this.onNotification,
+ onError: this.onError,
+ });
return indexPattern.init();
};
diff --git a/src/plugins/data/public/plugin.ts b/src/plugins/data/public/plugin.ts
index baac2cf0d7a77..493733daf261b 100644
--- a/src/plugins/data/public/plugin.ts
+++ b/src/plugins/data/public/plugin.ts
@@ -164,17 +164,21 @@ export class DataPublicPlugin implements Plugin {
+ onNotification: (toastInputFields) => {
notifications.toasts.add(toastInputFields);
},
- notifications.toasts.addError,
- onRedirectNoIndexPattern(application.capabilities, application.navigateToApp, overlays)
- );
+ onError: notifications.toasts.addError,
+ onRedirectNoIndexPattern: onRedirectNoIndexPattern(
+ application.capabilities,
+ application.navigateToApp,
+ overlays
+ ),
+ });
setIndexPatterns(indexPatterns);
const query = this.queryService.start(savedObjects);
diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md
index f23dfe857c775..23213d4d1165a 100644
--- a/src/plugins/data/public/public.api.md
+++ b/src/plugins/data/public/public.api.md
@@ -978,12 +978,8 @@ export type IMetricAggType = MetricAggType;
//
// @public (undocumented)
export class IndexPattern implements IIndexPattern {
- // Warning: (ae-forgotten-export) The symbol "IIndexPatternsApiClient" needs to be exported by the entry point index.d.ts
- // Warning: (ae-forgotten-export) The symbol "PatternCache" needs to be exported by the entry point index.d.ts
- // Warning: (ae-forgotten-export) The symbol "FieldFormatsStartCommon" needs to be exported by the entry point index.d.ts
- // Warning: (ae-forgotten-export) The symbol "OnNotification" needs to be exported by the entry point index.d.ts
- // Warning: (ae-forgotten-export) The symbol "OnError" needs to be exported by the entry point index.d.ts
- constructor(id: string | undefined, getConfig: any, savedObjectsClient: SavedObjectsClientContract, apiClient: IIndexPatternsApiClient, patternCache: PatternCache, fieldFormats: FieldFormatsStartCommon, onNotification: OnNotification, onError: OnError);
+ // Warning: (ae-forgotten-export) The symbol "IndexPatternDeps" needs to be exported by the entry point index.d.ts
+ constructor(id: string | undefined, { getConfig, savedObjectsClient, apiClient, patternCache, fieldFormats, onNotification, onError, }: IndexPatternDeps);
// (undocumented)
[key: string]: any;
// (undocumented)