mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
* Typescriptify flatten_hit.js * Fix path
This commit is contained in:
parent
7b12301f2d
commit
ec4de9993b
6 changed files with 19 additions and 19 deletions
|
@ -18,18 +18,19 @@
|
|||
*/
|
||||
|
||||
import _ from 'lodash';
|
||||
import { IndexPattern } from './';
|
||||
|
||||
// Takes a hit, merges it with any stored/scripted fields, and with the metaFields
|
||||
// returns a flattened version
|
||||
|
||||
function flattenHit(indexPattern, hit, deep) {
|
||||
const flat = {};
|
||||
function flattenHit(indexPattern: IndexPattern, hit: Record<string, any>, deep: boolean) {
|
||||
const flat = {} as Record<string, any>;
|
||||
|
||||
// recursively merge _source
|
||||
const fields = indexPattern.fields.byName;
|
||||
(function flatten(obj, keyPrefix) {
|
||||
(function flatten(obj, keyPrefix = '') {
|
||||
keyPrefix = keyPrefix ? keyPrefix + '.' : '';
|
||||
_.forOwn(obj, function (val, key) {
|
||||
_.forOwn(obj, function(val, key) {
|
||||
key = keyPrefix + key;
|
||||
|
||||
if (deep) {
|
||||
|
@ -52,28 +53,28 @@ function flattenHit(indexPattern, hit, deep) {
|
|||
} else if (Array.isArray(flat[key])) {
|
||||
flat[key].push(val);
|
||||
} else {
|
||||
flat[key] = [ flat[key], val ];
|
||||
flat[key] = [flat[key], val];
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
flatten(val, key);
|
||||
});
|
||||
}(hit._source));
|
||||
})(hit._source);
|
||||
|
||||
return flat;
|
||||
}
|
||||
|
||||
function decorateFlattenedWrapper(hit, metaFields) {
|
||||
return function (flattened) {
|
||||
function decorateFlattenedWrapper(hit: Record<string, any>, metaFields: Record<string, any>) {
|
||||
return function(flattened: Record<string, any>) {
|
||||
// assign the meta fields
|
||||
_.each(metaFields, function (meta) {
|
||||
_.each(metaFields, function(meta) {
|
||||
if (meta === '_source') return;
|
||||
flattened[meta] = hit[meta];
|
||||
});
|
||||
|
||||
// unwrap computed fields
|
||||
_.forOwn(hit.fields, function (val, key) {
|
||||
_.forOwn(hit.fields, function(val, key: any) {
|
||||
if (key[0] === '_' && !_.contains(metaFields, key)) return;
|
||||
flattened[key] = Array.isArray(val) && val.length === 1 ? val[0] : val;
|
||||
});
|
||||
|
@ -88,8 +89,12 @@ function decorateFlattenedWrapper(hit, metaFields) {
|
|||
*
|
||||
* @internal
|
||||
*/
|
||||
export function flattenHitWrapper(indexPattern, metaFields = {}, cache = new WeakMap()) {
|
||||
return function cachedFlatten(hit, deep = false) {
|
||||
export function flattenHitWrapper(
|
||||
indexPattern: IndexPattern,
|
||||
metaFields = {},
|
||||
cache = new WeakMap()
|
||||
) {
|
||||
return function cachedFlatten(hit: Record<string, any>, deep = false) {
|
||||
const decorateFlattened = decorateFlattenedWrapper(hit, metaFields);
|
||||
const cached = cache.get(hit);
|
||||
const flattened = cached || flattenHit(indexPattern, hit, deep);
|
|
@ -17,7 +17,6 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
// @ts-ignore
|
||||
export * from './flatten_hit';
|
||||
export * from './format_hit';
|
||||
export * from './index_pattern';
|
||||
|
|
|
@ -38,7 +38,6 @@ import { Field, FieldList, FieldType } from '../fields';
|
|||
import { createFieldsFetcher } from './_fields_fetcher';
|
||||
import { getRoutes } from '../utils';
|
||||
import { formatHitProvider } from './format_hit';
|
||||
// @ts-ignore
|
||||
import { flattenHitWrapper } from './flatten_hit';
|
||||
import { IndexPatternsApiClient } from './index_patterns_api_client';
|
||||
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
*/
|
||||
|
||||
import { IndexPatternsService, IndexPatternsSetup } from '.';
|
||||
// @ts-ignore
|
||||
import { flattenHitWrapper } from './index_patterns/flatten_hit';
|
||||
import { flattenHitWrapper } from './index_patterns';
|
||||
|
||||
type IndexPatternsServiceClientContract = PublicMethodsOf<IndexPatternsService>;
|
||||
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
|
||||
import { UiSettingsClientContract, SavedObjectsClientContract } from 'src/core/public';
|
||||
import { Field, FieldList, FieldType } from './fields';
|
||||
// @ts-ignore
|
||||
import { createFlattenHitWrapper } from './index_patterns/flatten_hit';
|
||||
import { createFlattenHitWrapper } from './index_patterns';
|
||||
import { createIndexPatternSelect } from './components';
|
||||
import {
|
||||
formatHitProvider,
|
||||
|
|
|
@ -21,7 +21,6 @@ import { mount } from 'enzyme';
|
|||
import { IndexPattern } from 'ui/index_patterns';
|
||||
// @ts-ignore
|
||||
import { findTestSubject } from '@elastic/eui/lib/test';
|
||||
// @ts-ignore
|
||||
import { flattenHitWrapper } from '../../../../data/public/index_patterns/index_patterns/flatten_hit';
|
||||
import { DocViewTable } from './table';
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue