diff --git a/src/core/CONVENTIONS.md b/src/core/CONVENTIONS.md index 5d24b54d9920..7c3de41e5751 100644 --- a/src/core/CONVENTIONS.md +++ b/src/core/CONVENTIONS.md @@ -171,7 +171,7 @@ import { MyAppRoot } from './components/app.ts'; */ export const renderApp = ( core: CoreStart, - deps: MyPluginDepsStart, + deps: MyPluginStartDeps, { element, history }: AppMountParameters ) => { ReactDOM.render(, element); @@ -182,10 +182,10 @@ export const renderApp = ( ```ts // my_plugin/public/plugin.ts -import { Plugin } from '../../src/core/public'; +import { Plugin, CoreSetup } from '../../src/core/public'; export class MyPlugin implements Plugin { - public setup(core) { + public setup(core: CoreSetup) { core.application.register({ id: 'my-app', async mount(params) { @@ -200,14 +200,14 @@ export class MyPlugin implements Plugin { } ``` -Prefer the pattern shown above, using `core.getStartServices()`, rather than store local references retrieved from `start`. +Prefer the pattern shown above, using `core.getStartServices()`, rather than store local references retrieved from `start`. **Bad:** ```ts export class MyPlugin implements Plugin { // Anti pattern private coreStart?: CoreStart; - private depsStart?: DepsStart; + private depsStart?: DepsStart; public setup(core) { core.application.register({ @@ -218,7 +218,7 @@ export class MyPlugin implements Plugin { return renderApp(this.coreStart, this.depsStart, params); } }); - } + } public start(core, deps) { // Anti pattern @@ -359,5 +359,5 @@ Migration example from the legacy format is available in `src/core/MIGRATION_EXA ### Naming conventions -Export start and setup contracts as `MyPluginStart` and `MyPluginSetup`. +Export start and setup contracts as `MyPluginStart` and `MyPluginSetup`. This avoids naming clashes, if everyone exported them simply as `Start` and `Setup`.