From a54736d0c2a6cf9aa998aa01b7eecf79bb09059e Mon Sep 17 00:00:00 2001 From: Michael Dokolin Date: Wed, 29 Sep 2021 22:08:15 +0200 Subject: [PATCH] Update plugins using expressions according to the updated public API --- .../public/actions_and_expressions.tsx | 4 ++-- .../public/actions_and_expressions2.tsx | 2 +- .../expressions_explorer/public/renderers/button.tsx | 4 ++-- .../expression_functions/tagcloud_function.test.ts | 10 ++++++---- .../vis_type_markdown/public/markdown_fn.test.ts | 3 ++- .../vis_types/metric/public/metric_vis_fn.test.ts | 6 ++++-- src/plugins/vis_types/pie/public/pie_fn.test.ts | 5 +++-- .../vis_types/table/public/table_vis_fn.test.ts | 5 +++-- src/plugins/vis_types/vislib/public/pie_fn.test.ts | 3 ++- .../canvas/canvas_plugin_src/functions/common/as.ts | 11 ++++++++--- .../generate_function_reference.ts | 2 +- .../expressions/format_column/format_column.test.ts | 5 ++--- 12 files changed, 36 insertions(+), 24 deletions(-) diff --git a/examples/expressions_explorer/public/actions_and_expressions.tsx b/examples/expressions_explorer/public/actions_and_expressions.tsx index f802a78faf06e..6d0c8886a79f3 100644 --- a/examples/expressions_explorer/public/actions_and_expressions.tsx +++ b/examples/expressions_explorer/public/actions_and_expressions.tsx @@ -47,11 +47,11 @@ export function ActionsExpressionsExample({ expressions, actions }: Props) { }; const handleEvents = (event: any) => { - if (event.id !== 'NAVIGATE') return; + if (event.name !== 'NAVIGATE') return; // enrich event context with some extra data event.baseUrl = 'http://www.google.com'; - actions.executeTriggerActions(NAVIGATE_TRIGGER_ID, event.value); + actions.executeTriggerActions(NAVIGATE_TRIGGER_ID, event.data); }; return ( diff --git a/examples/expressions_explorer/public/actions_and_expressions2.tsx b/examples/expressions_explorer/public/actions_and_expressions2.tsx index 31ba903ad91ac..e7dc28b8b97cd 100644 --- a/examples/expressions_explorer/public/actions_and_expressions2.tsx +++ b/examples/expressions_explorer/public/actions_and_expressions2.tsx @@ -50,7 +50,7 @@ export function ActionsExpressionsExample2({ expressions, actions }: Props) { }; const handleEvents = (event: any) => { - updateVariables({ color: event.value.href === 'http://www.google.com' ? 'red' : 'blue' }); + updateVariables({ color: event.data.href === 'http://www.google.com' ? 'red' : 'blue' }); }; return ( diff --git a/examples/expressions_explorer/public/renderers/button.tsx b/examples/expressions_explorer/public/renderers/button.tsx index 68add91c3cbc9..557180ab73a35 100644 --- a/examples/expressions_explorer/public/renderers/button.tsx +++ b/examples/expressions_explorer/public/renderers/button.tsx @@ -18,8 +18,8 @@ export const buttonRenderer: ExpressionRenderDefinition = { render(domNode, config, handlers) { const buttonClick = () => { handlers.event({ - id: 'NAVIGATE', - value: { + name: 'NAVIGATE', + data: { href: config.href, }, }); diff --git a/src/plugins/chart_expressions/expression_tagcloud/common/expression_functions/tagcloud_function.test.ts b/src/plugins/chart_expressions/expression_tagcloud/common/expression_functions/tagcloud_function.test.ts index 8abdc36704b45..86a371afd6912 100644 --- a/src/plugins/chart_expressions/expression_tagcloud/common/expression_functions/tagcloud_function.test.ts +++ b/src/plugins/chart_expressions/expression_tagcloud/common/expression_functions/tagcloud_function.test.ts @@ -12,6 +12,8 @@ import { functionWrapper } from '../../../../expressions/common/expression_funct import { ExpressionValueVisDimension } from '../../../../visualizations/public'; import { Datatable } from '../../../../expressions/common/expression_types/specs'; +type Arguments = Parameters['fn']>[1]; + describe('interpreter/functions#tagcloud', () => { const fn = functionWrapper(tagcloudFunction()); const column1 = 'Count'; @@ -26,7 +28,7 @@ describe('interpreter/functions#tagcloud', () => { { [column1]: 0, [column2]: 'US' }, { [column1]: 10, [column2]: 'UK' }, ], - }; + } as unknown as Datatable; const visConfig = { scale: 'linear', orientation: 'single', @@ -73,12 +75,12 @@ describe('interpreter/functions#tagcloud', () => { }; it('returns an object with the correct structure for number accessors', () => { - const actual = fn(context, { ...visConfig, ...numberAccessors }, undefined); + const actual = fn(context, { ...visConfig, ...numberAccessors } as Arguments, undefined); expect(actual).toMatchSnapshot(); }); it('returns an object with the correct structure for string accessors', () => { - const actual = fn(context, { ...visConfig, ...stringAccessors }, undefined); + const actual = fn(context, { ...visConfig, ...stringAccessors } as Arguments, undefined); expect(actual).toMatchSnapshot(); }); @@ -93,7 +95,7 @@ describe('interpreter/functions#tagcloud', () => { }, }, }; - await fn(context, { ...visConfig, ...numberAccessors }, handlers as any); + await fn(context, { ...visConfig, ...numberAccessors } as Arguments, handlers as any); expect(loggedTable!).toMatchSnapshot(); }); diff --git a/src/plugins/vis_type_markdown/public/markdown_fn.test.ts b/src/plugins/vis_type_markdown/public/markdown_fn.test.ts index bef0b32e392f0..148a15fb9fc8a 100644 --- a/src/plugins/vis_type_markdown/public/markdown_fn.test.ts +++ b/src/plugins/vis_type_markdown/public/markdown_fn.test.ts @@ -8,6 +8,7 @@ import { functionWrapper } from '../../expressions/common/expression_functions/specs/tests/utils'; import { createMarkdownVisFn } from './markdown_fn'; +import { Arguments } from './types'; describe('interpreter/functions#markdown', () => { const fn = functionWrapper(createMarkdownVisFn()); @@ -15,7 +16,7 @@ describe('interpreter/functions#markdown', () => { font: { spec: { fontSize: 12 } }, openLinksInNewTab: true, markdown: '## hello _markdown_', - }; + } as unknown as Arguments; it('returns an object with the correct structure', async () => { const actual = await fn(null, args, undefined); diff --git a/src/plugins/vis_types/metric/public/metric_vis_fn.test.ts b/src/plugins/vis_types/metric/public/metric_vis_fn.test.ts index 3844c0f21ed05..28124a653629c 100644 --- a/src/plugins/vis_types/metric/public/metric_vis_fn.test.ts +++ b/src/plugins/vis_types/metric/public/metric_vis_fn.test.ts @@ -10,13 +10,15 @@ import { createMetricVisFn } from './metric_vis_fn'; import { functionWrapper } from '../../../expressions/common/expression_functions/specs/tests/utils'; import { Datatable } from '../../../expressions/common/expression_types/specs'; +type Arguments = Parameters['fn']>[1]; + describe('interpreter/functions#metric', () => { const fn = functionWrapper(createMetricVisFn()); const context = { type: 'datatable', rows: [{ 'col-0-1': 0 }], columns: [{ id: 'col-0-1', name: 'Count' }], - }; + } as unknown as Datatable; const args = { percentageMode: false, useRanges: false, @@ -50,7 +52,7 @@ describe('interpreter/functions#metric', () => { aggType: 'count', }, ], - }; + } as unknown as Arguments; it('returns an object with the correct structure', () => { const actual = fn(context, args, undefined); diff --git a/src/plugins/vis_types/pie/public/pie_fn.test.ts b/src/plugins/vis_types/pie/public/pie_fn.test.ts index d0e0af9807f34..9ba21cdc847e5 100644 --- a/src/plugins/vis_types/pie/public/pie_fn.test.ts +++ b/src/plugins/vis_types/pie/public/pie_fn.test.ts @@ -8,6 +8,7 @@ import { functionWrapper } from '../../../expressions/common/expression_functions/specs/tests/utils'; import { createPieVisFn } from './pie_fn'; +import { PieVisConfig } from './types'; import { Datatable } from '../../../expressions/common/expression_types/specs'; describe('interpreter/functions#pie', () => { @@ -16,7 +17,7 @@ describe('interpreter/functions#pie', () => { type: 'datatable', rows: [{ 'col-0-1': 0 }], columns: [{ id: 'col-0-1', name: 'Count' }], - }; + } as unknown as Datatable; const visConfig = { addTooltip: true, addLegend: true, @@ -43,7 +44,7 @@ describe('interpreter/functions#pie', () => { params: {}, aggType: 'count', }, - }; + } as unknown as PieVisConfig; beforeEach(() => { jest.clearAllMocks(); diff --git a/src/plugins/vis_types/table/public/table_vis_fn.test.ts b/src/plugins/vis_types/table/public/table_vis_fn.test.ts index 8b08bca160478..d0d9a414bbcce 100644 --- a/src/plugins/vis_types/table/public/table_vis_fn.test.ts +++ b/src/plugins/vis_types/table/public/table_vis_fn.test.ts @@ -8,6 +8,7 @@ import { createTableVisFn } from './table_vis_fn'; import { tableVisResponseHandler } from './utils'; +import { TableVisConfig } from './types'; import { functionWrapper } from '../../../expressions/common/expression_functions/specs/tests/utils'; import { Datatable } from '../../../expressions/common/expression_types/specs'; @@ -24,7 +25,7 @@ describe('interpreter/functions#table', () => { type: 'datatable', rows: [{ 'col-0-1': 0 }], columns: [{ id: 'col-0-1', name: 'Count' }], - }; + } as unknown as Datatable; const visConfig = { title: 'My Chart title', perPage: 10, @@ -52,7 +53,7 @@ describe('interpreter/functions#table', () => { }, ], buckets: [], - }; + } as unknown as TableVisConfig; beforeEach(() => { jest.clearAllMocks(); diff --git a/src/plugins/vis_types/vislib/public/pie_fn.test.ts b/src/plugins/vis_types/vislib/public/pie_fn.test.ts index 0df7bf1365bea..9c317f9e72dc1 100644 --- a/src/plugins/vis_types/vislib/public/pie_fn.test.ts +++ b/src/plugins/vis_types/vislib/public/pie_fn.test.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { Datatable } from 'src/plugins/expressions'; import { functionWrapper } from '../../../expressions/common/expression_functions/specs/tests/utils'; import { createPieVisFn } from './pie_fn'; // @ts-ignore @@ -34,7 +35,7 @@ describe('interpreter/functions#pie', () => { type: 'datatable', rows: [{ 'col-0-1': 0 }], columns: [{ id: 'col-0-1', name: 'Count' }], - }; + } as unknown as Datatable; const visConfig = { type: 'pie', addTooltip: true, diff --git a/x-pack/plugins/canvas/canvas_plugin_src/functions/common/as.ts b/x-pack/plugins/canvas/canvas_plugin_src/functions/common/as.ts index 4c37d9acc4868..63c3f1dcabcaf 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/functions/common/as.ts +++ b/x-pack/plugins/canvas/canvas_plugin_src/functions/common/as.ts @@ -5,7 +5,12 @@ * 2.0. */ -import { Datatable, ExpressionFunctionDefinition, getType } from '../../../types'; +import { + Datatable, + DatatableColumnType, + ExpressionFunctionDefinition, + getType, +} from '../../../types'; import { getFunctionHelp } from '../../../i18n'; interface Arguments { @@ -30,14 +35,14 @@ export function asFn(): ExpressionFunctionDefinition<'as', Input, Arguments, Dat default: 'value', }, }, - fn: (input, args) => { + fn: (input, args): Datatable => { return { type: 'datatable', columns: [ { id: args.name, name: args.name, - meta: { type: getType(input) }, + meta: { type: getType(input) as DatatableColumnType }, }, ], rows: [ diff --git a/x-pack/plugins/canvas/public/components/function_reference_generator/generate_function_reference.ts b/x-pack/plugins/canvas/public/components/function_reference_generator/generate_function_reference.ts index 075e65bc24dab..289704ae79539 100644 --- a/x-pack/plugins/canvas/public/components/function_reference_generator/generate_function_reference.ts +++ b/x-pack/plugins/canvas/public/components/function_reference_generator/generate_function_reference.ts @@ -156,7 +156,7 @@ ${examplesBlock} *Returns:* ${output ? wrapInBackTicks(output) : 'Depends on your input and arguments'}\n\n`; }; -const getArgsTable = (args: { [key: string]: ExpressionFunctionParameter }) => { +const getArgsTable = (args: { [key: string]: ExpressionFunctionParameter }) => { if (!args || Object.keys(args).length === 0) { return 'None'; } diff --git a/x-pack/plugins/lens/common/expressions/format_column/format_column.test.ts b/x-pack/plugins/lens/common/expressions/format_column/format_column.test.ts index 28f9b08eff1cb..4d53f96c71fd8 100644 --- a/x-pack/plugins/lens/common/expressions/format_column/format_column.test.ts +++ b/x-pack/plugins/lens/common/expressions/format_column/format_column.test.ts @@ -7,11 +7,10 @@ import { Datatable, DatatableColumn } from 'src/plugins/expressions/public'; import { functionWrapper } from 'src/plugins/expressions/common/expression_functions/specs/tests/utils'; -import { FormatColumnArgs, formatColumn } from './index'; +import { formatColumn } from './index'; describe('format_column', () => { - const fn: (input: Datatable, args: FormatColumnArgs) => Promise = - functionWrapper(formatColumn); + const fn = functionWrapper(formatColumn); let datatable: Datatable;