Skip to content

Commit

Permalink
add output of jupyterlite
Browse files Browse the repository at this point in the history
  • Loading branch information
zonca committed Jul 24, 2024
1 parent 9f5ea54 commit 2a3ca91
Show file tree
Hide file tree
Showing 88 changed files with 4,345 additions and 0 deletions.
43 changes: 43 additions & 0 deletions jup/api/contents/all.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"content": [
{
"content": null,
"created": "2024-07-24T23:29:38.303699Z",
"format": null,
"hash": null,
"hash_algorithm": null,
"last_modified": "2024-07-24T23:11:58Z",
"mimetype": "image/fits",
"name": "pixel_num.fits",
"path": "pixel_num.fits",
"size": 0,
"type": "file",
"writable": true
},
{
"content": null,
"created": "2024-07-24T23:29:38.304699Z",
"format": null,
"hash": null,
"hash_algorithm": null,
"last_modified": "2024-07-24T23:06:12.000704Z",
"mimetype": null,
"name": "visualize_map.ipynb",
"path": "visualize_map.ipynb",
"size": 2380,
"type": "notebook",
"writable": true
}
],
"created": "2024-07-24T23:29:38.304699Z",
"format": "json",
"hash": null,
"hash_algorithm": null,
"last_modified": "2024-07-24T23:29:38.304699Z",
"mimetype": null,
"name": "",
"path": "",
"size": null,
"type": "directory",
"writable": true
}
9 changes: 9 additions & 0 deletions jup/api/translations/all.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"data": {
"en": {
"displayName": "English",
"nativeName": "English"
}
},
"message": ""
}
4 changes: 4 additions & 0 deletions jup/api/translations/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"data": {},
"message": ""
}
93 changes: 93 additions & 0 deletions jup/bootstrap.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

// We copy some of the pageconfig parsing logic in @jupyterlab/coreutils
// below, since this must run before any other files are loaded (including
// @jupyterlab/coreutils).

/**
* Get global configuration data for the Jupyter application.
*
* @param name - The name of the configuration option.
*
* @returns The config value or an empty string if not found.
*
* #### Notes
* All values are treated as strings. For browser based applications, it is
* assumed that the page HTML includes a script tag with the id
* `jupyter-config-data` containing the configuration as valid JSON.
*/

let _CONFIG_DATA = null;
function getOption(name) {
if (_CONFIG_DATA === null) {
let configData = {};
// Use script tag if available.
if (typeof document !== 'undefined' && document) {
const el = document.getElementById('jupyter-config-data');

if (el) {
configData = JSON.parse(el.textContent || '{}');
}
}
_CONFIG_DATA = configData;
}

return _CONFIG_DATA[name] || '';
}

// eslint-disable-next-line no-undef
__webpack_public_path__ = getOption('fullStaticUrl') + '/';

function loadScript(url) {
return new Promise((resolve, reject) => {
const newScript = document.createElement('script');
newScript.onerror = reject;
newScript.onload = resolve;
newScript.async = true;
document.head.appendChild(newScript);
newScript.src = url;
});
}

async function loadComponent(url, scope) {
await loadScript(url);

// From https://webpack.js.org/concepts/module-federation/#dynamic-remote-containers
await __webpack_init_sharing__('default');
const container = window._JUPYTERLAB[scope];
// Initialize the container, it may provide shared modules and may need ours
await container.init(__webpack_share_scopes__.default);
}

void (async function bootstrap() {
// This is all the data needed to load and activate plugins. This should be
// gathered by the server and put onto the initial page template.
const extension_data = getOption('federated_extensions');

// We first load all federated components so that the shared module
// deduplication can run and figure out which shared modules from all
// components should be actually used. We have to do this before importing
// and using the module that actually uses these components so that all
// dependencies are initialized.
let labExtensionUrl = getOption('fullLabextensionsUrl');
const extensions = await Promise.allSettled(
extension_data.map(async data => {
await loadComponent(`${labExtensionUrl}/${data.name}/${data.load}`, data.name);
})
);

extensions.forEach(p => {
if (p.status === 'rejected') {
// There was an error loading the component
console.error(p.reason);
}
});

// Now that all federated containers are initialized with the main
// container, we can import the main function.
let main = (await import('./index.js')).main;
void main();
})();
Loading

0 comments on commit 2a3ca91

Please sign in to comment.