kibana/examples/search_examples/server/plugin.ts
Brandon Kobel 4584a8b570
Elastic License 2.0 (#90099)
* Updating everything except the license headers themselves

* Applying ESLint rules

* Manually replacing the stragglers
2021-02-03 18:12:39 -08:00

64 lines
1.7 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import type {
PluginInitializerContext,
CoreSetup,
CoreStart,
Plugin,
Logger,
} from 'src/core/server';
import type { DataRequestHandlerContext } from 'src/plugins/data/server';
import {
SearchExamplesPluginSetup,
SearchExamplesPluginStart,
SearchExamplesPluginSetupDeps,
SearchExamplesPluginStartDeps,
} from './types';
import { mySearchStrategyProvider } from './my_strategy';
import { registerRoutes } from './routes';
export class SearchExamplesPlugin
implements
Plugin<
SearchExamplesPluginSetup,
SearchExamplesPluginStart,
SearchExamplesPluginSetupDeps,
SearchExamplesPluginStartDeps
> {
private readonly logger: Logger;
constructor(initializerContext: PluginInitializerContext) {
this.logger = initializerContext.logger.get();
}
public setup(
core: CoreSetup<SearchExamplesPluginStartDeps>,
deps: SearchExamplesPluginSetupDeps
) {
this.logger.debug('search_examples: Setup');
const router = core.http.createRouter<DataRequestHandlerContext>();
core.getStartServices().then(([_, depsStart]) => {
const myStrategy = mySearchStrategyProvider(depsStart.data);
deps.data.search.registerSearchStrategy('myStrategy', myStrategy);
registerRoutes(router);
});
return {};
}
public start(core: CoreStart) {
this.logger.debug('search_examples: Started');
return {};
}
public stop() {}
}