import app from 'app'

var visibleCount = 0

export default function () {
  if (++visibleCount === 1) {
    app.dock.show()
  }
  let alreadyHidden = false
  return () => {
    if (alreadyHidden) {
      throw new Error('Tried to hide the dock icon twice')
    }
    alreadyHidden = true
    if (--visibleCount === 0) {
      app.dock.hide()
    }
  }
}

@@ -53,16 +53,83 @@
 default 
+(() =%3E %7B%0A  if (!app.dock) %7B%0A    return () =%3E () =%3E %7B%7D%0A  %7D%0A  return 
 function
@@ -134,16 +134,18 @@
 on () %7B%0A
+  
   if (++
@@ -166,24 +166,26 @@
 == 1) %7B%0A    
+  
 app.dock.sho
@@ -188,20 +188,24 @@
 .show()%0A
+  
   %7D%0A
+  
   let al
@@ -224,16 +224,18 @@
 = false%0A
+  
   return
@@ -243,16 +243,18 @@
 () =%3E %7B%0A
+  
     if (
@@ -276,16 +276,18 @@
 %7B%0A      
+  
 throw ne
@@ -331,26 +331,30 @@
 twice')%0A    
-%7D%0A
+  %7D%0A  
     alreadyH
@@ -366,24 +366,26 @@
  = true%0A    
+  
 if (--visibl
@@ -398,32 +398,34 @@
  === 0) %7B%0A      
+  
 app.dock.hide()%0A
@@ -424,16 +424,24 @@
 .hide()%0A
+      %7D%0A
     %7D%0A  
@@ -443,9 +443,12 @@
  %7D%0A  %7D%0A%7D
+)()
 %0A

Make dock management a noop when dock doesn't exist