Skip to content

Commit

Permalink
Revert to one plugin per-kernel
Browse files Browse the repository at this point in the history
  • Loading branch information
martinRenou committed Jan 11, 2024
1 parent feb5620 commit 0379271
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 30 deletions.
62 changes: 33 additions & 29 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,39 @@ function getJson(url: string) {
return JSON.parse(xhr.responseText);
}

const xeusKernelsPlugin: JupyterLiteServerPlugin<void> = {
id: '@jupyterlite/xeus:register-kernels',
autoStart: true,
requires: [IKernelSpecs],
optional: [IServiceWorkerManager, IBroadcastChannelWrapper],
activate: (
app: JupyterLiteServer,
kernelspecs: IKernelSpecs,
serviceWorker?: IServiceWorkerManager,
broadcastChannel?: IBroadcastChannelWrapper
) => {
let kernel_list: string[] = [];
try {
kernel_list = getJson('xeus/kernels.json');
} catch (err) {
console.log(`Could not fetch xeus/kernels.json: ${err}`);
throw err;
}
let kernel_list: string[] = [];
try {
kernel_list = getJson('xeus/kernels.json');
} catch (err) {
console.log(`Could not fetch xeus/kernels.json: ${err}`);
throw err;
}

// Fetch kernel spec for each kernel
for (const kernel of kernel_list) {
const kernelspec = getJson(
'xeus/kernels/' + kernel + '/kernel.json'
);
const plugins = kernel_list.map((kernel): JupyterLiteServerPlugin<void> => {
return {
id: `@jupyterlite/xeus-${kernel}:register`,
autoStart: true,
requires: [IKernelSpecs],
optional: [IServiceWorkerManager, IBroadcastChannelWrapper],
activate: (
app: JupyterLiteServer,
kernelspecs: IKernelSpecs,
serviceWorker?: IServiceWorkerManager,
broadcastChannel?: IBroadcastChannelWrapper
) => {
// Fetch kernel spec
const kernelspec = getJson('xeus/kernels/' + kernel + '/kernel.json');
kernelspec.name = kernel;
kernelspec.dir = kernel;
kernelspec.resources = {
'logo-32x32': URLExt.join(PageConfig.getBaseUrl(), 'xeus/kernels/' + kernel + '/logo-32x32.png'),
'logo-64x64': URLExt.join(PageConfig.getBaseUrl(), 'xeus/kernels/' + kernel + '/logo-64x64.png'),
'logo-32x32': URLExt.join(
PageConfig.getBaseUrl(),
'xeus/kernels/' + kernel + '/logo-32x32.png'
),
'logo-64x64': URLExt.join(
PageConfig.getBaseUrl(),
'xeus/kernels/' + kernel + '/logo-64x64.png'
)
};

kernelspecs.register({
Expand All @@ -76,8 +80,8 @@ const xeusKernelsPlugin: JupyterLiteServerPlugin<void> = {
});
}
});
};
}
};
}
};
});

export default xeusKernelsPlugin;
export default plugins;
5 changes: 4 additions & 1 deletion src/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,10 @@ class XeusKernel {
const dir = this._kernelspec.dir;

// location of the kernel binary on the server
const binary_js = URLExt.join(PageConfig.getBaseUrl(), this._kernelspec.argv[0]);
const binary_js = URLExt.join(
PageConfig.getBaseUrl(),
this._kernelspec.argv[0]
);
const binary_wasm = binary_js.replace('.js', '.wasm');

importScripts(binary_js);
Expand Down

0 comments on commit 0379271

Please sign in to comment.