From ac69b0a6563efe3ebf5881aadc51ff42d390e12b Mon Sep 17 00:00:00 2001 From: dannyrb Date: Sun, 8 Dec 2019 14:37:54 -0500 Subject: [PATCH] docs: ExtensionManager class docs --- docs/latest/SUMMARY.md | 1 + docs/latest/extensions/index.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/docs/latest/SUMMARY.md b/docs/latest/SUMMARY.md index 346da384b..738b5c0b4 100644 --- a/docs/latest/SUMMARY.md +++ b/docs/latest/SUMMARY.md @@ -27,6 +27,7 @@ - [Toolbar](extensions/modules/toolbar.md) - [Viewport](extensions/modules/viewport.md) - [Contexts](extensions/index.md#contexts) + - [ExtensionManager](extensions/index.md#extension-manager) - [OHIF Maintained](extensions/index.md#maintained-extensions) - [Services](services/index.md) - [Default](services/default/index.md) diff --git a/docs/latest/extensions/index.md b/docs/latest/extensions/index.md index 7831cd54a..ae7716104 100644 --- a/docs/latest/extensions/index.md +++ b/docs/latest/extensions/index.md @@ -8,6 +8,7 @@ - [Modules](#modules) - [Contexts](#contexts) - [Consuming Extensions](#consuming-extensions) + - [Extension Manager](#extension-manager) - [Maintained Extensions](#maintained-extensions) ## Overview @@ -188,6 +189,33 @@ with current theming, configuration, extension, and services support. If you're not sure how to achieve your goals with the extensibility available today, create a GitHub issue! +### `ExtensionManager` + +The `ExtensionManager` is a class made available to us via the `@ohif/core` +project (platform/core). Our application instantiates a single instance of it, +and provides a `ServicesManager` and `CommandsManager`. + +```js +const commandsManager = new CommandsManager(); +const servicesManager = new ServicesManager(); +const extensionManager = new ExtensionManager({ + commandsManager, + servicesManager, +}); +``` + +The `ExtensionManager` only has a few public members: + +- `registerExtension` - Registers a single extension +- `registerExtensions` - Registers an array of extensions +- `modules` - An object containing registered extensions by `MODULE_TYPE` + +During registration, lifecycle hooks and modules have access to +`ExtensionManager`'s `ServicesManager` and `CommandsManager`. + +Our `@ohif/viewer` uses the `modules` member to access registered extensions at +appropriate places in our application. + ## Maintained Extensions A small number of powerful extensions for popular use cases are maintained by