@datalayer/jupyter-react 0.9.7 → 0.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
6
|
import { PageConfig } from '@jupyterlab/coreutils';
|
|
7
|
+
/**
|
|
8
|
+
* The URL prefix for the kernel api.
|
|
9
|
+
*/
|
|
10
|
+
const API_KERNEL_PREFIX_URL = '/api/kernel';
|
|
7
11
|
/**
|
|
8
12
|
* The default Jupyter configuration.
|
|
9
13
|
*/
|
|
@@ -15,9 +19,13 @@ let config = {
|
|
|
15
19
|
insideJupyterHub: false,
|
|
16
20
|
};
|
|
17
21
|
/**
|
|
18
|
-
* Datalayer configuration
|
|
22
|
+
* Datalayer configuration is loaded.
|
|
23
|
+
*/
|
|
24
|
+
let datalayerConfigLoaded = false;
|
|
25
|
+
/**
|
|
26
|
+
* Jupyter configuration is loaded.
|
|
19
27
|
*/
|
|
20
|
-
let
|
|
28
|
+
let jupyterConfigLoaded = false;
|
|
21
29
|
/**
|
|
22
30
|
* Setter for jupyterServerHttpUrl.
|
|
23
31
|
*/
|
|
@@ -55,12 +63,12 @@ export const getJupyterToken = () => config.jupyterToken;
|
|
|
55
63
|
* @returns The parameter value if {@link name} is specified, otherwise the full configuration.
|
|
56
64
|
*/
|
|
57
65
|
export function getDatalayerConfig(name) {
|
|
58
|
-
if (!
|
|
66
|
+
if (!datalayerConfigLoaded) {
|
|
59
67
|
const datalayerConfigData = document.getElementById('datalayer-config-data');
|
|
60
68
|
if (datalayerConfigData?.textContent) {
|
|
61
69
|
try {
|
|
62
70
|
config = { ...config, ...JSON.parse(datalayerConfigData.textContent) };
|
|
63
|
-
|
|
71
|
+
datalayerConfigLoaded = true;
|
|
64
72
|
}
|
|
65
73
|
catch (error) {
|
|
66
74
|
console.error('Failed to parse the Datalayer configuration.', error);
|
|
@@ -76,51 +84,61 @@ export function getDatalayerConfig(name) {
|
|
|
76
84
|
*/
|
|
77
85
|
export const loadJupyterConfig = (props) => {
|
|
78
86
|
const { lite, jupyterServerHttpUrl, jupyterServerWsUrl, collaborative, terminals, jupyterToken, } = props;
|
|
79
|
-
|
|
87
|
+
if (jupyterConfigLoaded) {
|
|
88
|
+
// Bail, the Jupyter config is already loaded.
|
|
89
|
+
return config;
|
|
90
|
+
}
|
|
91
|
+
// Load the Datalayer config.
|
|
80
92
|
getDatalayerConfig();
|
|
81
|
-
if (
|
|
93
|
+
if (datalayerConfigLoaded) {
|
|
94
|
+
// There is a Datalayer config, rely on that.
|
|
82
95
|
setJupyterServerHttpUrl(jupyterServerHttpUrl ??
|
|
83
96
|
config.jupyterServerHttpUrl ??
|
|
84
97
|
location.protocol + '//' + location.host + '/api/jupyter');
|
|
85
98
|
setJupyterServerWsUrl(jupyterServerWsUrl ??
|
|
86
99
|
config.jupyterServerWsUrl ??
|
|
87
|
-
location.protocol.replace(
|
|
100
|
+
location.protocol.replace(/^http/, 'ws') +
|
|
88
101
|
'//' +
|
|
89
102
|
location.host +
|
|
90
103
|
'/api/jupyter');
|
|
91
104
|
setJupyterToken(jupyterToken ?? config.jupyterToken ?? '');
|
|
92
105
|
}
|
|
93
106
|
else {
|
|
94
|
-
// No Datalayer
|
|
107
|
+
// No Datalayer config, look for a Jupyter config.
|
|
95
108
|
const jupyterConfigData = document.getElementById('jupyter-config-data');
|
|
96
109
|
if (jupyterConfigData) {
|
|
97
110
|
const jupyterConfig = JSON.parse(jupyterConfigData.textContent || '');
|
|
98
111
|
setJupyterServerHttpUrl(jupyterServerHttpUrl ??
|
|
99
112
|
location.protocol + '//' + location.host + jupyterConfig.baseUrl);
|
|
100
|
-
setJupyterServerWsUrl(jupyterServerWsUrl ??
|
|
101
|
-
? 'wss://' + location.host
|
|
102
|
-
: 'ws://' + location.host + jupyterConfig.baseUrl);
|
|
113
|
+
setJupyterServerWsUrl(jupyterServerWsUrl ?? getJupyterServerHttpUrl().replace(/^http/, 'ws'));
|
|
103
114
|
setJupyterToken(jupyterToken ?? jupyterConfig.token);
|
|
104
115
|
config.insideJupyterLab = jupyterConfig.appName === 'JupyterLab';
|
|
116
|
+
// Hub related information ('hubHost' 'hubPrefix' 'hubUser' ,'hubServerName').
|
|
117
|
+
config.insideJupyterHub = PageConfig.getOption('hubHost') !== '';
|
|
105
118
|
}
|
|
106
119
|
else {
|
|
107
|
-
// No Datalayer and no
|
|
120
|
+
// No Datalayer and no Jupyter config, rely on location...
|
|
108
121
|
setJupyterServerHttpUrl(jupyterServerHttpUrl ??
|
|
109
|
-
location.protocol + '//' + location.host +
|
|
122
|
+
location.protocol + '//' + location.host + API_KERNEL_PREFIX_URL);
|
|
110
123
|
setJupyterServerWsUrl(jupyterServerWsUrl ??
|
|
111
|
-
location.protocol.replace(
|
|
124
|
+
location.protocol.replace(/^http/, 'ws') +
|
|
112
125
|
'//' +
|
|
113
126
|
location.host +
|
|
114
|
-
|
|
127
|
+
API_KERNEL_PREFIX_URL);
|
|
115
128
|
setJupyterToken(jupyterToken ?? '');
|
|
116
129
|
}
|
|
117
130
|
}
|
|
131
|
+
jupyterConfigLoaded = true;
|
|
118
132
|
if (lite) {
|
|
119
133
|
setJupyterServerHttpUrl(location.protocol + '//' + location.host);
|
|
120
134
|
setJupyterServerWsUrl(location.protocol === 'https:'
|
|
121
135
|
? 'wss://' + location.host
|
|
122
136
|
: 'ws://' + location.host);
|
|
123
137
|
}
|
|
138
|
+
if (config.insideJupyterLab) {
|
|
139
|
+
// Bail if running inisde JupyterLab, we don't want to change the existing PageConfig.
|
|
140
|
+
return config;
|
|
141
|
+
}
|
|
124
142
|
PageConfig.setOption('baseUrl', getJupyterServerHttpUrl());
|
|
125
143
|
PageConfig.setOption('wsUrl', getJupyterServerWsUrl());
|
|
126
144
|
PageConfig.setOption('token', getJupyterToken());
|
|
@@ -129,11 +147,6 @@ export const loadJupyterConfig = (props) => {
|
|
|
129
147
|
PageConfig.setOption('terminalsAvailable', String(terminals));
|
|
130
148
|
PageConfig.setOption('mathjaxUrl', 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js');
|
|
131
149
|
PageConfig.setOption('mathjaxConfig', 'TeX-AMS_CHTML-full,Safe');
|
|
132
|
-
// PageConfig.getOption('hubHost')
|
|
133
|
-
// PageConfig.getOption('hubPrefix')
|
|
134
|
-
// PageConfig.getOption('hubUser')
|
|
135
|
-
// PageConfig.getOption('hubServerName')
|
|
136
|
-
config.insideJupyterHub = PageConfig.getOption('hubHost') !== '';
|
|
137
150
|
return config;
|
|
138
151
|
};
|
|
139
152
|
//# sourceMappingURL=JupyterConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterConfig.js","sourceRoot":"","sources":["../../src/jupyter/JupyterConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"JupyterConfig.js","sourceRoot":"","sources":["../../src/jupyter/JupyterConfig.ts"],"names":[],"mappings":"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"}
|