import { PluginInitializerContext , CoreSetup , CoreStart , Plugin , Logger , } from '../../../src/core/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 ) { this . logger = initializerContext . logger . get ( ) ; } public setup ( core , deps ) { this . logger . debug ( 'search_examples: Setup' ) ; const router = core . http . createRouter ( ) ; core . getStartServices ( ) . then ( ( [ _ , depsStart ] ) => { const myStrategy = mySearchStrategyProvider ( depsStart . data ) ; deps . data . search . registerSearchStrategy ( 'myStrategy' , myStrategy ) ; registerRoutes ( router , depsStart . data ) ; } ) ; return { } ; } public start ( core ) { this . logger . debug ( 'search_examples: Started' ) ; return { } ; } public stop ( ) { } }