53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
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;
|