|  | 'use strict'; | 
|  | const restoreCursor = require('restore-cursor'); | 
|  |  | 
|  | let hidden = false; | 
|  |  | 
|  | exports.show = stream => { | 
|  | const s = stream || process.stderr; | 
|  |  | 
|  | if (!s.isTTY) { | 
|  | return; | 
|  | } | 
|  |  | 
|  | hidden = false; | 
|  | s.write('\u001b[?25h'); | 
|  | }; | 
|  |  | 
|  | exports.hide = stream => { | 
|  | const s = stream || process.stderr; | 
|  |  | 
|  | if (!s.isTTY) { | 
|  | return; | 
|  | } | 
|  |  | 
|  | restoreCursor(); | 
|  | hidden = true; | 
|  | s.write('\u001b[?25l'); | 
|  | }; | 
|  |  | 
|  | exports.toggle = (force, stream) => { | 
|  | if (force !== undefined) { | 
|  | hidden = force; | 
|  | } | 
|  |  | 
|  | if (hidden) { | 
|  | exports.show(stream); | 
|  | } else { | 
|  | exports.hide(stream); | 
|  | } | 
|  | }; |