Sfoglia il codice sorgente

Merge pull request #9954 from loichuder/optional-disposable

Made disposable optional for widget extensions
Steven Silvester 4 anni fa
parent
commit
74d26dfc32

+ 4 - 1
packages/docmanager/src/widgetmanager.ts

@@ -100,7 +100,10 @@ export class DocumentWidgetManager implements IDisposable {
     // Handle widget extensions.
     const disposables = new DisposableSet();
     each(this._registry.widgetExtensions(factory.name), extender => {
-      disposables.add(extender.createNew(widget, context));
+      const disposable = extender.createNew(widget, context);
+      if (disposable) {
+        disposables.add(disposable);
+      }
     });
     Private.disposablesProperty.set(widget, disposables);
     widget.disposed.connect(this._onWidgetDisposed, this);

+ 3 - 3
packages/docregistry/src/registry.ts

@@ -96,7 +96,7 @@ export class DocumentRegistry implements IDisposable {
   }
 
   /**
-   * Dispose of the resources held by the document registery.
+   * Dispose of the resources held by the document registry.
    */
   dispose(): void {
     if (this.isDisposed) {
@@ -1113,7 +1113,7 @@ export namespace DocumentRegistry {
     /**
      * Create a new extension for a given widget.
      */
-    createNew(widget: T, context: IContext<U>): IDisposable;
+    createNew(widget: T, context: IContext<U>): IDisposable | void;
   }
 
   /**
@@ -1516,7 +1516,7 @@ namespace Private {
   /**
    * A no-op function.
    */
-  export function noOp() {
+  export function noOp(): void {
     /* no-op */
   }
 }