Skip to content

Commit a237f37

Browse files
committed
Make dependencies optional
1 parent 8ae29b8 commit a237f37

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

packages/labextension/src/index.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
import { INotebookTracker } from '@jupyterlab/notebook';
66
import { LabIcon } from '@jupyterlab/ui-components';
77
import { ICommandPalette } from '@jupyterlab/apputils';
8+
import { nullTranslator } from '@jupyterlab/translation';
89
import { KernelUsagePanel } from './panel';
910
import tachometer from '../style/tachometer.svg';
1011

@@ -24,32 +25,34 @@ namespace CommandIDs {
2425
const extension: JupyterFrontEndPlugin<void> = {
2526
id: '@jupyter-server/resource-usage:memory-status-item',
2627
autoStart: true,
27-
requires: [IStatusBar, ITranslator, ICommandPalette, INotebookTracker],
2828
activate: (
2929
app: JupyterFrontEnd,
30-
statusBar: IStatusBar,
31-
translator: ITranslator,
32-
palette: ICommandPalette,
33-
notebookTracker: INotebookTracker
30+
statusBar: IStatusBar | null,
31+
translator: ITranslator | null,
32+
palette: ICommandPalette | null,
33+
notebookTracker: INotebookTracker | null
3434
) => {
35+
translator = translator || nullTranslator;
3536
const trans = translator.load('jupyterlab');
3637
const item = new MemoryUsage(translator);
3738

38-
statusBar.registerStatusItem(extension.id, {
39-
item,
40-
align: 'left',
41-
rank: 2,
42-
isActive: () => item.model.metricsAvailable,
43-
activeStateChanged: item.model.stateChanged,
44-
});
39+
if (statusBar) {
40+
statusBar.registerStatusItem(extension.id, {
41+
item,
42+
align: 'left',
43+
rank: 2,
44+
isActive: () => item.model.metricsAvailable,
45+
activeStateChanged: item.model.stateChanged,
46+
});
47+
}
4548

4649
const { commands, shell } = app;
4750
const category = 'Kernel Resource';
4851

4952
let panel: KernelUsagePanel | null = null;
5053

5154
function createPanel() {
52-
if (!panel || panel.isDisposed) {
55+
if ((!panel || panel.isDisposed) && notebookTracker) {
5356
panel = new KernelUsagePanel({
5457
widgetAdded: notebookTracker.widgetAdded,
5558
currentNotebookChanged: notebookTracker.currentChanged,
@@ -68,7 +71,9 @@ const extension: JupyterFrontEndPlugin<void> = {
6871
execute: createPanel,
6972
});
7073

71-
palette.addItem({ command: CommandIDs.getKernelUsage, category });
74+
if (palette) {
75+
palette.addItem({ command: CommandIDs.getKernelUsage, category });
76+
}
7277

7378
createPanel();
7479
},

0 commit comments

Comments
 (0)