From 7e2c254adee93609f9beaefa98f959effe1c2bdf Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Dec 2019 16:06:13 -0600 Subject: [PATCH 1/4] Allow metadata for launcher items integrity --- packages/console-extension/src/index.ts | 6 ++++-- packages/launcher/src/index.tsx | 6 ++++++ packages/notebook-extension/src/index.ts | 6 ++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index a16342b54e9d..44a69ceae068 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -181,7 +181,8 @@ async function activateConsole( let baseUrl = PageConfig.getBaseUrl(); for (let name in specs.kernelspecs) { let rank = name === specs.default ? 0 : Infinity; - let kernelIconUrl = specs.kernelspecs[name]?.resources['logo-64x64']; + const spec = specs.kernelspecs[name]!; + let kernelIconUrl = spec.resources['logo-64x64']; if (kernelIconUrl) { let index = kernelIconUrl.indexOf('kernelspecs'); kernelIconUrl = URLExt.join(baseUrl, kernelIconUrl.slice(index)); @@ -192,7 +193,8 @@ async function activateConsole( args: { isLauncher: true, kernelPreference: { name } }, category: 'Console', rank, - kernelIconUrl + kernelIconUrl, + metadata: spec.metadata }) ); } diff --git a/packages/launcher/src/index.tsx b/packages/launcher/src/index.tsx index 4015ab101c5d..db7709070557 100644 --- a/packages/launcher/src/index.tsx +++ b/packages/launcher/src/index.tsx @@ -344,6 +344,12 @@ export namespace ILauncher { * spec. */ kernelIconUrl?: string; + + /** + * Metadata about the item. This can be used by the launcher to + * affect how the item is displayed. + */ + metadata?: ReadonlyJSONObject; } } diff --git a/packages/notebook-extension/src/index.ts b/packages/notebook-extension/src/index.ts index c273c2e05c29..016a0e2eee65 100644 --- a/packages/notebook-extension/src/index.ts +++ b/packages/notebook-extension/src/index.ts @@ -725,7 +725,8 @@ function activateNotebookHandler( for (let name in specs.kernelspecs) { let rank = name === specs.default ? 0 : Infinity; - let kernelIconUrl = specs.kernelspecs[name]?.resources['logo-64x64']; + const spec = specs.kernelspecs[name]!; + let kernelIconUrl = spec.resources['logo-64x64']; if (kernelIconUrl) { let index = kernelIconUrl.indexOf('kernelspecs'); kernelIconUrl = URLExt.join(baseUrl, kernelIconUrl.slice(index)); @@ -736,7 +737,8 @@ function activateNotebookHandler( args: { isLauncher: true, kernelName: name }, category: 'Notebook', rank, - kernelIconUrl + kernelIconUrl, + metadata: spec.metadata }) ); } From c26c8cc993763f3d89e1a6a942378a956298c718 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 23 Dec 2019 10:46:18 -0600 Subject: [PATCH 2/4] Pass in the metadata as kernel metadata --- packages/console-extension/src/index.ts | 2 +- packages/notebook-extension/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index 44a69ceae068..2b7db3262713 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -194,7 +194,7 @@ async function activateConsole( category: 'Console', rank, kernelIconUrl, - metadata: spec.metadata + metadata: { kernel: spec.metadata } }) ); } diff --git a/packages/notebook-extension/src/index.ts b/packages/notebook-extension/src/index.ts index 016a0e2eee65..7cc4c017054f 100644 --- a/packages/notebook-extension/src/index.ts +++ b/packages/notebook-extension/src/index.ts @@ -738,7 +738,7 @@ function activateNotebookHandler( category: 'Notebook', rank, kernelIconUrl, - metadata: spec.metadata + metadata: { kernel: spec.metadata } }) ); } From b273d31232d7bc1a45d435cf209a8e7ad5c37378 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 23 Dec 2019 11:20:25 -0600 Subject: [PATCH 3/4] Strict null handling --- packages/console-extension/src/index.ts | 4 ++-- packages/notebook-extension/src/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index 2b7db3262713..08e15b3489f9 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -40,7 +40,7 @@ import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import { find } from '@lumino/algorithm'; -import { JSONObject, ReadonlyPartialJSONObject, UUID } from '@lumino/coreutils'; +import { JSONExt, JSONObject, ReadonlyPartialJSONObject, UUID, ReadonlyJSONValue } from '@lumino/coreutils'; import { DisposableSet } from '@lumino/disposable'; @@ -194,7 +194,7 @@ async function activateConsole( category: 'Console', rank, kernelIconUrl, - metadata: { kernel: spec.metadata } + metadata: { kernel: JSONExt.deepCopy(spec.metadata || {}) as ReadonlyJSONValue } }) ); } diff --git a/packages/notebook-extension/src/index.ts b/packages/notebook-extension/src/index.ts index 7cc4c017054f..6e8ca3a6eab9 100644 --- a/packages/notebook-extension/src/index.ts +++ b/packages/notebook-extension/src/index.ts @@ -32,7 +32,7 @@ import { IDocumentManager } from '@jupyterlab/docmanager'; import { ArrayExt } from '@lumino/algorithm'; -import { UUID, JSONObject, ReadonlyPartialJSONObject } from '@lumino/coreutils'; +import { UUID, JSONExt, JSONObject, ReadonlyPartialJSONObject, ReadonlyJSONValue } from '@lumino/coreutils'; import { DisposableSet } from '@lumino/disposable'; @@ -738,7 +738,7 @@ function activateNotebookHandler( category: 'Notebook', rank, kernelIconUrl, - metadata: { kernel: spec.metadata } + metadata: { kernel: JSONExt.deepCopy(spec.metadata || {}) as ReadonlyJSONValue } }) ); } From caf3e2bc86d9f8c050c90952eb3e8692231d20b6 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 23 Dec 2019 11:27:32 -0600 Subject: [PATCH 4/4] lint --- packages/console-extension/src/index.ts | 14 ++++++++++++-- packages/notebook-extension/src/index.ts | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index 08e15b3489f9..557abee44468 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -40,7 +40,13 @@ import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import { find } from '@lumino/algorithm'; -import { JSONExt, JSONObject, ReadonlyPartialJSONObject, UUID, ReadonlyJSONValue } from '@lumino/coreutils'; +import { + JSONExt, + JSONObject, + ReadonlyPartialJSONObject, + UUID, + ReadonlyJSONValue +} from '@lumino/coreutils'; import { DisposableSet } from '@lumino/disposable'; @@ -194,7 +200,11 @@ async function activateConsole( category: 'Console', rank, kernelIconUrl, - metadata: { kernel: JSONExt.deepCopy(spec.metadata || {}) as ReadonlyJSONValue } + metadata: { + kernel: JSONExt.deepCopy( + spec.metadata || {} + ) as ReadonlyJSONValue + } }) ); } diff --git a/packages/notebook-extension/src/index.ts b/packages/notebook-extension/src/index.ts index 6e8ca3a6eab9..29db3c920a0c 100644 --- a/packages/notebook-extension/src/index.ts +++ b/packages/notebook-extension/src/index.ts @@ -32,7 +32,13 @@ import { IDocumentManager } from '@jupyterlab/docmanager'; import { ArrayExt } from '@lumino/algorithm'; -import { UUID, JSONExt, JSONObject, ReadonlyPartialJSONObject, ReadonlyJSONValue } from '@lumino/coreutils'; +import { + UUID, + JSONExt, + JSONObject, + ReadonlyPartialJSONObject, + ReadonlyJSONValue +} from '@lumino/coreutils'; import { DisposableSet } from '@lumino/disposable'; @@ -738,7 +744,11 @@ function activateNotebookHandler( category: 'Notebook', rank, kernelIconUrl, - metadata: { kernel: JSONExt.deepCopy(spec.metadata || {}) as ReadonlyJSONValue } + metadata: { + kernel: JSONExt.deepCopy( + spec.metadata || {} + ) as ReadonlyJSONValue + } }) ); }