Skip to content

Commit

Permalink
Search platform context cleanup (#57448)
Browse files Browse the repository at this point in the history
* Initial commit - cleanup

* cleanup

* tsing

* ts fixes

* Fix jest test

* Code review fxes

* Remove empty file reference

Remove empty file reference

* code review

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
  • Loading branch information
Liza Katz and elasticmachine authored Feb 19, 2020
1 parent 05947ad commit 1319b65
Show file tree
Hide file tree
Showing 26 changed files with 139 additions and 520 deletions.
22 changes: 9 additions & 13 deletions examples/demo_search/public/demo_search_strategy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@
*/

import { Observable } from 'rxjs';
import {
ISearchContext,
SYNC_SEARCH_STRATEGY,
ISearchGeneric,
} from '../../../src/plugins/data/public';
import { ISearchContext, SYNC_SEARCH_STRATEGY } from '../../../src/plugins/data/public';
import { TSearchStrategyProvider, ISearchStrategy } from '../../../src/plugins/data/public';

import { DEMO_SEARCH_STRATEGY, IDemoResponse } from '../common';
Expand Down Expand Up @@ -54,15 +50,15 @@ import { DEMO_SEARCH_STRATEGY, IDemoResponse } from '../common';
* @param search - a search function to access other strategies that have already been registered.
*/
export const demoClientSearchStrategyProvider: TSearchStrategyProvider<typeof DEMO_SEARCH_STRATEGY> = (
context: ISearchContext,
search: ISearchGeneric
context: ISearchContext
): ISearchStrategy<typeof DEMO_SEARCH_STRATEGY> => {
const syncStrategyProvider = context.getSearchStrategy(SYNC_SEARCH_STRATEGY);
const { search } = syncStrategyProvider(context);
return {
search: (request, options) =>
search(
{ ...request, serverStrategy: DEMO_SEARCH_STRATEGY },
options,
SYNC_SEARCH_STRATEGY
) as Observable<IDemoResponse>,
search: (request, options) => {
return search({ ...request, serverStrategy: DEMO_SEARCH_STRATEGY }, options) as Observable<
IDemoResponse
>;
},
};
};
6 changes: 2 additions & 4 deletions examples/demo_search/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,10 @@
* under the License.
*/

import { PluginInitializer, PluginInitializerContext } from 'kibana/public';
import { PluginInitializer } from 'kibana/public';

import { DemoDataPlugin } from './plugin';

export { DEMO_SEARCH_STRATEGY } from '../common';

export const plugin: PluginInitializer<void, void> = (
initializerContext: PluginInitializerContext
) => new DemoDataPlugin(initializerContext);
export const plugin: PluginInitializer<void, void> = () => new DemoDataPlugin();
4 changes: 1 addition & 3 deletions examples/demo_search/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import { DataPublicPluginSetup } from '../../../src/plugins/data/public';
import { Plugin, CoreSetup, PluginInitializerContext } from '../../../src/core/public';
import { Plugin, CoreSetup } from '../../../src/core/public';
import { DEMO_SEARCH_STRATEGY } from '../common';
import { demoClientSearchStrategyProvider } from './demo_search_strategy';
import { IDemoRequest, IDemoResponse } from '../common';
Expand Down Expand Up @@ -47,10 +47,8 @@ declare module '../../../src/plugins/data/public' {
}

export class DemoDataPlugin implements Plugin {
constructor(private initializerContext: PluginInitializerContext) {}
public setup(core: CoreSetup, deps: DemoDataSearchSetupDependencies) {
deps.data.search.registerSearchStrategyProvider(
this.initializerContext.opaqueId,
DEMO_SEARCH_STRATEGY,
demoClientSearchStrategyProvider
);
Expand Down
21 changes: 13 additions & 8 deletions examples/search_explorer/public/application.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,13 @@ import {
EuiSideNav,
} from '@elastic/eui';

import { AppMountContext, AppMountParameters } from '../../../src/core/public';
import { AppMountParameters, CoreStart } from '../../../src/core/public';
import { EsSearchTest } from './es_strategy';
import { Page } from './page';
import { DemoStrategy } from './demo_strategy';
import { DocumentationPage } from './documentation';
import { SearchApiPage } from './search_api';
import { AppPluginStartDependencies, SearchBarComponentParams } from './types';

const Home = () => <DocumentationPage />;

Expand All @@ -44,7 +45,7 @@ interface PageDef {
}

type NavProps = RouteComponentProps & {
navigateToApp: AppMountContext['core']['application']['navigateToApp'];
navigateToApp: CoreStart['application']['navigateToApp'];
pages: PageDef[];
};

Expand All @@ -71,7 +72,7 @@ const Nav = withRouter(({ history, navigateToApp, pages }: NavProps) => {

const buildPage = (page: PageDef) => <Page title={page.title}>{page.component}</Page>;

const SearchApp = ({ basename, context }: { basename: string; context: AppMountContext }) => {
const SearchApp = ({ basename, data, application }: SearchBarComponentParams) => {
const pages: PageDef[] = [
{
id: 'home',
Expand All @@ -86,12 +87,12 @@ const SearchApp = ({ basename, context }: { basename: string; context: AppMountC
{
title: 'ES search strategy',
id: 'esSearch',
component: <EsSearchTest search={context.search!.search} />,
component: <EsSearchTest search={data.search.search} />,
},
{
title: 'Demo search strategy',
id: 'demoSearch',
component: <DemoStrategy search={context.search!.search} />,
component: <DemoStrategy search={data.search.search} />,
},
];

Expand All @@ -103,7 +104,7 @@ const SearchApp = ({ basename, context }: { basename: string; context: AppMountC
<Router basename={basename}>
<EuiPage>
<EuiPageSideBar>
<Nav navigateToApp={context.core.application.navigateToApp} pages={pages} />
<Nav navigateToApp={application.navigateToApp} pages={pages} />
</EuiPageSideBar>
<Route path="/" exact component={Home} />
{routes}
Expand All @@ -113,10 +114,14 @@ const SearchApp = ({ basename, context }: { basename: string; context: AppMountC
};

export const renderApp = (
context: AppMountContext,
coreStart: CoreStart,
deps: AppPluginStartDependencies,
{ appBasePath, element }: AppMountParameters
) => {
ReactDOM.render(<SearchApp basename={appBasePath} context={context} />, element);
ReactDOM.render(
<SearchApp basename={appBasePath} data={deps.data} application={coreStart.application} />,
element
);

return () => ReactDOM.unmountComponentAtNode(element);
};
7 changes: 1 addition & 6 deletions examples/search_explorer/public/es_strategy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ import serverPlugin from '!!raw-loader!./../../../src/plugins/data/server/search
// @ts-ignore
import serverStrategy from '!!raw-loader!./../../../src/plugins/data/server/search/es_search/es_search_strategy';

// @ts-ignore
import publicPlugin from '!!raw-loader!./../../../src/plugins/data/public/search/es_search/es_search_service';
// @ts-ignore
import publicStrategy from '!!raw-loader!./../../../src/plugins/data/public/search/es_search/es_search_strategy';

Expand Down Expand Up @@ -125,10 +123,7 @@ export class EsSearchTest extends React.Component<Props, State> {
codeSections={[
{
title: 'Public',
code: [
{ description: 'es_search_service.ts', snippet: publicPlugin },
{ description: 'es_search_strategy.ts', snippet: publicStrategy },
],
code: [{ description: 'es_search_strategy.ts', snippet: publicStrategy }],
},
{
title: 'Server',
Expand Down
16 changes: 6 additions & 10 deletions examples/search_explorer/public/plugin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,18 @@
* under the License.
*/

import { Plugin, CoreSetup } from 'kibana/public';
import { ISearchAppMountContext } from '../../../src/plugins/data/public';
import { Plugin, CoreSetup, AppMountParameters } from 'kibana/public';
import { AppPluginStartDependencies } from './types';

declare module 'kibana/public' {
interface AppMountContext {
search?: ISearchAppMountContext;
}
}
export class SearchExplorerPlugin implements Plugin {
public setup(core: CoreSetup) {
public setup(core: CoreSetup<AppPluginStartDependencies>) {
core.application.register({
id: 'searchExplorer',
title: 'Search Explorer',
async mount(context, params) {
async mount(params: AppMountParameters) {
const [coreStart, depsStart] = await core.getStartServices();
const { renderApp } = await import('./application');
return renderApp(context, params);
return renderApp(coreStart, depsStart, params);
},
});
}
Expand Down
18 changes: 0 additions & 18 deletions examples/search_explorer/public/search_api.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@
import React from 'react';
import { GuideSection } from './guide_section';

// @ts-ignore
import publicSetupContract from '!!raw-loader!./../../../src/plugins/data/public/search/i_search_setup';
// @ts-ignore
import publicSearchStrategy from '!!raw-loader!./../../../src/plugins/data/public/search/i_search_strategy';
// @ts-ignore
import publicSearch from '!!raw-loader!./../../../src/plugins/data/public/search/i_search';
// @ts-ignore
Expand All @@ -31,8 +27,6 @@ import publicPlugin from '!!raw-loader!./../../../src/plugins/data/public/search
// @ts-ignore
import serverSetupContract from '!!raw-loader!./../../../src/plugins/data/server/search/i_search_setup';
// @ts-ignore
import serverSearchStrategy from '!!raw-loader!./../../../src/plugins/data/server/search/i_search_strategy';
// @ts-ignore
import serverSearch from '!!raw-loader!./../../../src/plugins/data/server/search/i_search';
// @ts-ignore
import serverPlugin from '!!raw-loader!./../../../src/plugins/data/server/search/search_service';
Expand All @@ -47,18 +41,10 @@ export const SearchApiPage = () => (
description: 'search_service.ts',
snippet: publicPlugin,
},
{
description: `i_search_setup.ts`,
snippet: publicSetupContract,
},
{
description: 'i_search',
snippet: publicSearch,
},
{
description: 'i_search_strategy',
snippet: publicSearchStrategy,
},
],
},
{
Expand All @@ -76,10 +62,6 @@ export const SearchApiPage = () => (
description: 'i_search',
snippet: serverSearch,
},
{
description: 'i_search_strategy',
snippet: serverSearchStrategy,
},
],
},
]}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,15 @@
* under the License.
*/

import { ISearchGeneric } from './i_search';
import { CoreStart } from 'kibana/public';
import { DataPublicPluginStart } from '../../../src/plugins/data/public';

export interface ISearchAppMountContext {
search: ISearchGeneric;
export interface AppPluginStartDependencies {
data: DataPublicPluginStart;
}

export interface SearchBarComponentParams {
application: CoreStart['application'];
basename: string;
data: DataPublicPluginStart;
}
7 changes: 0 additions & 7 deletions examples/ui_actions_explorer/public/plugin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

import { Plugin, CoreSetup, AppMountParameters } from 'kibana/public';
import { UiActionsStart, UiActionsSetup } from 'src/plugins/ui_actions/public';
import { ISearchAppMountContext } from '../../../src/plugins/data/public';
import {
PHONE_TRIGGER,
USER_TRIGGER,
Expand All @@ -38,12 +37,6 @@ import {
SHOWCASE_PLUGGABILITY_ACTION,
} from './actions/actions';

declare module 'kibana/public' {
interface AppMountContext {
search?: ISearchAppMountContext;
}
}

interface StartDeps {
uiActions: UiActionsStart;
}
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/data/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
private readonly packageInfo: PackageInfo;

constructor(initializerContext: PluginInitializerContext) {
this.searchService = new SearchService(initializerContext);
this.searchService = new SearchService();
this.queryService = new QueryService();
this.fieldFormatsService = new FieldFormatsService();
this.storage = new Storage(window.localStorage);
Expand Down

This file was deleted.

Loading

0 comments on commit 1319b65

Please sign in to comment.