You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							1.6 KiB
						
					
					
				var os = require('os'); | 
						|
var utils = require('./lib/utils'); | 
						|
 | 
						|
// All notifiers | 
						|
var NotifySend = require('./notifiers/notifysend'); | 
						|
var NotificationCenter = require('./notifiers/notificationcenter'); | 
						|
var WindowsToaster = require('./notifiers/toaster'); | 
						|
var Growl = require('./notifiers/growl'); | 
						|
var WindowsBalloon = require('./notifiers/balloon'); | 
						|
 | 
						|
var options = { withFallback: true }; | 
						|
 | 
						|
var osType = utils.isWSL() ? 'WSL' : os.type(); | 
						|
 | 
						|
switch (osType) { | 
						|
  case 'Linux': | 
						|
    module.exports = new NotifySend(options); | 
						|
    module.exports.Notification = NotifySend; | 
						|
    break; | 
						|
  case 'Darwin': | 
						|
    module.exports = new NotificationCenter(options); | 
						|
    module.exports.Notification = NotificationCenter; | 
						|
    break; | 
						|
  case 'Windows_NT': | 
						|
    if (utils.isLessThanWin8()) { | 
						|
      module.exports = new WindowsBalloon(options); | 
						|
      module.exports.Notification = WindowsBalloon; | 
						|
    } else { | 
						|
      module.exports = new WindowsToaster(options); | 
						|
      module.exports.Notification = WindowsToaster; | 
						|
    } | 
						|
    break; | 
						|
  case 'WSL': | 
						|
    module.exports = new WindowsToaster(options); | 
						|
    module.exports.Notification = WindowsToaster; | 
						|
    break; | 
						|
  default: | 
						|
    if (os.type().match(/BSD$/)) { | 
						|
      module.exports = new NotifySend(options); | 
						|
      module.exports.Notification = NotifySend; | 
						|
    } else { | 
						|
      module.exports = new Growl(options); | 
						|
      module.exports.Notification = Growl; | 
						|
    } | 
						|
} | 
						|
 | 
						|
// Expose notifiers to give full control. | 
						|
module.exports.NotifySend = NotifySend; | 
						|
module.exports.NotificationCenter = NotificationCenter; | 
						|
module.exports.WindowsToaster = WindowsToaster; | 
						|
module.exports.WindowsBalloon = WindowsBalloon; | 
						|
module.exports.Growl = Growl;
 | 
						|
 |