Bladeren bron

Fix null checks

Saul Shanabrook 5 jaren geleden
bovenliggende
commit
ee1f1d0a9b
1 gewijzigde bestanden met toevoegingen van 18 en 18 verwijderingen
  1. 18 18
      packages/documentsearch/src/providers/genericsearchprovider.ts

+ 18 - 18
packages/documentsearch/src/providers/genericsearchprovider.ts

@@ -101,7 +101,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
         acceptNode: node => {
           // Filter subtrees of UNSUPPORTED_ELEMENTS and nodes that
           // do not contain our search text
-          let parentElement = node.parentElement;
+          let parentElement = node.parentElement!;
           while (parentElement !== this._widget.node) {
             if (
               parentElement.nodeName in
@@ -109,9 +109,9 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
             ) {
               return NodeFilter.FILTER_REJECT;
             }
-            parentElement = parentElement.parentElement;
+            parentElement = parentElement.parentElement!;
           }
-          return that._query.test(node.textContent)
+          return that._query.test(node.textContent!)
             ? NodeFilter.FILTER_ACCEPT
             : NodeFilter.FILTER_REJECT;
         }
@@ -129,7 +129,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
        * The o in world is found after the o in hello which means the pre could have been modified already
        * While there may be a better data structure to do this for performance, this was easy to reason about.
        */
-      originalNodes.push(node.parentElement.cloneNode(true));
+      originalNodes.push(node.parentElement!.cloneNode(true));
       node = walker.nextNode();
     }
     // We'll need to copy the regexp to ensure its 'g' and that we start the index count from 0
@@ -139,17 +139,17 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
     nodes.forEach((node, nodeIndex) => {
       const q = new RegExp(query.source, flags);
       const subsections = [];
-      let match = q.exec(node.textContent);
+      let match = q.exec(node!.textContent!);
       while (match) {
         subsections.push({
           start: match.index,
           end: match.index + match[0].length,
           text: match[0]
         });
-        match = q.exec(node.textContent);
+        match = q.exec(node!.textContent!);
       }
       const originalNode = originalNodes[nodeIndex];
-      const originalLength = node.textContent.length; // Node length will change below
+      const originalLength = node!.textContent!.length; // Node length will change below
       let lastNodeAdded = null;
       // Go backwards as index may change if we go forwards
       let newMatches = [];
@@ -160,24 +160,24 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
         spannedNode.classList.add(...FOUND_CLASSES);
         spannedNode.innerText = text;
         // Splice the text out before we add it back in with a span
-        node.textContent = `${node.textContent.slice(
+        node!.textContent = `${node!.textContent!.slice(
           0,
           start
-        )}${node.textContent.slice(end)}`;
+        )}${node!.textContent!.slice(end)}`;
         // Are we replacing from the start?
         if (start === 0) {
-          node.parentNode.prepend(spannedNode);
+          node!.parentNode!.prepend(spannedNode);
           // Are we replacing at the end?
         } else if (end === originalLength) {
-          node.parentNode.append(spannedNode);
+          node!.parentNode!.append(spannedNode);
           // Are the two results are adjacent to each other?
         } else if (lastNodeAdded && end === subsections[idx + 1].start) {
-          node.parentNode.insertBefore(spannedNode, lastNodeAdded);
+          node!.parentNode!.insertBefore(spannedNode, lastNodeAdded);
           // Ok, we are replacing somewhere in the middle
         } else {
           // We know this is Text as we filtered for this in the walker above
           const endText = (node as Text).splitText(start);
-          node.parentNode.insertBefore(spannedNode, endText);
+          node!.parentNode!.insertBefore(spannedNode, endText);
         }
         lastNodeAdded = spannedNode;
         newMatches.unshift({
@@ -237,7 +237,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
       if (match.indexInOriginal !== 0) {
         return;
       }
-      match.spanElement.parentElement.replaceWith(match.originalNode);
+      match.spanElement.parentElement!.replaceWith(match.originalNode);
     });
     this._matches = [];
     this._currentMatch = null;
@@ -289,7 +289,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
       if (this.isSubProvider) {
         if (nextIndex < 0 || nextIndex >= this._matches.length) {
           this._currentMatch = null;
-          return null;
+          return undefined;
         }
       }
       // Cheap way to make this a circular buffer
@@ -354,7 +354,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
   /**
    * The current index of the selected match.
    */
-  get currentMatchIndex(): number {
+  get currentMatchIndex(): number | null {
     if (!this._currentMatch) {
       return null;
     }
@@ -373,7 +373,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
   readonly isReadOnly = true;
 
   clearSelection(): void {
-    return null;
+    return;
   }
 
   /**
@@ -393,7 +393,7 @@ export class GenericSearchProvider implements ISearchProvider<Widget> {
 
   private _query: RegExp;
   private _widget: Widget;
-  private _currentMatch: IGenericSearchMatch;
+  private _currentMatch: IGenericSearchMatch | null;
   private _matches: IGenericSearchMatch[] = [];
   private _mutationObserver: MutationObserver = new MutationObserver(
     this._onWidgetChanged.bind(this)