From 7e2c254adee93609f9beaefa98f959effe1c2bdf Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Dec 2019 16:06:13 -0600 Subject: [PATCH] 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 }) ); }