Sfoglia il codice sorgente

Update default session

Steven Silvester 8 anni fa
parent
commit
0d41cbff51
1 ha cambiato i file con 22 aggiunte e 14 eliminazioni
  1. 22 14
      packages/services/src/session/default.ts

+ 22 - 14
packages/services/src/session/default.ts

@@ -1,10 +1,18 @@
 // Copyright (c) Jupyter Development Team.
 // Distributed under the terms of the Modified BSD License.
 
+ import {
+   URLExt, uuid
+ } from '@jupyterlab/coreutils';
+
 import {
   ArrayExt, each, find, toArray
 } from '@phosphor/algorithm';
 
+ import {
+   JSONExt
+ } from '@phosphor/coreutils';
+
 import {
   ISignal, Signal
 } from '@phosphor/signaling';
@@ -48,14 +56,14 @@ class DefaultSession implements Session.ISession {
     this._id = id;
     this._path = options.path;
     this._baseUrl = options.baseUrl || utils.getBaseUrl();
-    this._uuid = utils.uuid();
+    this._uuid = uuid();
     this._ajaxSettings = JSON.stringify(
       utils.ajaxSettingsWithToken(options.ajaxSettings || {}, options.token)
     );
     this._token = options.token || utils.getConfigOption('token');
     Private.runningSessions.push(this);
     this.setupKernel(kernel);
-    this._options = utils.copy(options);
+    this._options = JSONExt.deepCopy(options);
     this.terminated = new Signal<this, void>(this);
   }
 
@@ -182,7 +190,7 @@ class DefaultSession implements Session.ISession {
   clone(): Promise<Session.ISession> {
     let options = this._getKernelOptions();
     return Kernel.connectTo(this.kernel.id, options).then(kernel => {
-      options = utils.copy(this._options);
+      options = JSONExt.deepCopy(this._options);
       options.ajaxSettings = this.ajaxSettings;
       return new DefaultSession(options, this._id, kernel);
     });
@@ -332,8 +340,8 @@ class DefaultSession implements Session.ISession {
    */
   private _getKernelOptions(): Kernel.IOptions {
     return {
-      baseUrl: this._options.baseUrl,
-      wsUrl: this._options.wsUrl,
+      baseUrl: this._options.baseUrl || '',
+      wsUrl: this._options.wsUrl || '',
       username: this.kernel.username,
       ajaxSettings: this.ajaxSettings
     };
@@ -474,13 +482,13 @@ namespace Private {
    */
   function createKernel(options: Session.IOptions): Promise<Kernel.IKernel> {
     let kernelOptions: Kernel.IOptions = {
-      name: options.kernelName,
+      name: options.kernelName || '',
       baseUrl: options.baseUrl || utils.getBaseUrl(),
-      wsUrl: options.wsUrl,
-      username: options.username,
-      clientId: options.clientId,
-      token: options.token,
-      ajaxSettings: options.ajaxSettings
+      wsUrl: options.wsUrl || '',
+      username: options.username || '',
+      clientId: options.clientId || '',
+      token: options.token || '',
+      ajaxSettings: options.ajaxSettings || {}
     };
     return Kernel.connectTo(options.kernelId, kernelOptions);
   }
@@ -572,7 +580,7 @@ namespace Private {
    */
   export
   function getSessionUrl(baseUrl: string, id: string): string {
-    return utils.urlPathJoin(baseUrl, SESSION_SERVICE_URL, id);
+    return URLExt.join(baseUrl, SESSION_SERVICE_URL, id);
   }
 
   /**
@@ -593,7 +601,7 @@ namespace Private {
   export
   function listRunning(options: Session.IOptions = {}): Promise<Session.IModel[]> {
     let baseUrl = options.baseUrl || utils.getBaseUrl();
-    let url = utils.urlPathJoin(baseUrl, SESSION_SERVICE_URL);
+    let url = URLExt.join(baseUrl, SESSION_SERVICE_URL);
     let ajaxSettings = utils.ajaxSettingsWithToken(options.ajaxSettings, options.token);
     ajaxSettings.method = 'GET';
     ajaxSettings.dataType = 'json';
@@ -690,7 +698,7 @@ namespace Private {
   export
   function startSession(options: Session.IOptions): Promise<Session.IModel> {
     let baseUrl = options.baseUrl || utils.getBaseUrl();
-    let url = utils.urlPathJoin(baseUrl, SESSION_SERVICE_URL);
+    let url = URLExt.join(baseUrl, SESSION_SERVICE_URL);
     let model = {
       kernel: { name: options.kernelName, id: options.kernelId },
       notebook: { path: options.path }