1 | var os = require('os');
|
2 | var utils = require('./lib/utils');
|
3 |
|
4 |
|
5 | var NotifySend = require('./notifiers/notifysend');
|
6 | var NotificationCenter = require('./notifiers/notificationcenter');
|
7 | var WindowsToaster = require('./notifiers/toaster');
|
8 | var Growl = require('./notifiers/growl');
|
9 | var WindowsBalloon = require('./notifiers/balloon');
|
10 |
|
11 | var options = { withFallback: true };
|
12 |
|
13 | var osType = utils.isWSL() ? 'WSL' : os.type();
|
14 |
|
15 | switch (osType) {
|
16 | case 'Linux':
|
17 | module.exports = new NotifySend(options);
|
18 | module.exports.Notification = NotifySend;
|
19 | break;
|
20 | case 'Darwin':
|
21 | module.exports = new NotificationCenter(options);
|
22 | module.exports.Notification = NotificationCenter;
|
23 | break;
|
24 | case 'Windows_NT':
|
25 | if (utils.isLessThanWin8()) {
|
26 | module.exports = new WindowsBalloon(options);
|
27 | module.exports.Notification = WindowsBalloon;
|
28 | } else {
|
29 | module.exports = new WindowsToaster(options);
|
30 | module.exports.Notification = WindowsToaster;
|
31 | }
|
32 | break;
|
33 | case 'WSL':
|
34 | module.exports = new WindowsToaster(options);
|
35 | module.exports.Notification = WindowsToaster;
|
36 | break;
|
37 | default:
|
38 | if (os.type().match(/BSD$/)) {
|
39 | module.exports = new NotifySend(options);
|
40 | module.exports.Notification = NotifySend;
|
41 | } else {
|
42 | module.exports = new Growl(options);
|
43 | module.exports.Notification = Growl;
|
44 | }
|
45 | }
|
46 |
|
47 |
|
48 | module.exports.NotifySend = NotifySend;
|
49 | module.exports.NotificationCenter = NotificationCenter;
|
50 | module.exports.WindowsToaster = WindowsToaster;
|
51 | module.exports.WindowsBalloon = WindowsBalloon;
|
52 | module.exports.Growl = Growl;
|