diff --git a/notifiers/balloon.js b/notifiers/balloon.js index c339d5d..b230e8f 100644 --- a/notifiers/balloon.js +++ b/notifiers/balloon.js @@ -50,7 +50,7 @@ function WindowsBalloon(options) { util.inherits(WindowsBalloon, EventEmitter); function noop() {} -WindowsBalloon.prototype.notify = function(options, callback) { +function notifyRaw(options, callback) { var fallback; var notifierOptions = this.options; options = utils.clone(options || {}); @@ -105,7 +105,14 @@ WindowsBalloon.prototype.notify = function(options, callback) { }); return this; -}; +} + +Object.defineProperty(WindowsBalloon.prototype, 'notify', { + get: function() { + if (!this._notify) this._notify = notifyRaw.bind(this); + return this._notify; + } +}); var allowedArguments = ['t', 'd', 'p', 'm', 'i', 'e', 'q', 'w', 'xp']; diff --git a/notifiers/growl.js b/notifiers/growl.js index b9f8de7..af57e2d 100644 --- a/notifiers/growl.js +++ b/notifiers/growl.js @@ -28,7 +28,7 @@ function Growl(options) { } util.inherits(Growl, EventEmitter); -Growl.prototype.notify = function(options, callback) { +function notifyRaw(options, callback) { growly.setHost(this.options.host, this.options.port); options = utils.clone(options || {}); @@ -71,6 +71,13 @@ Growl.prototype.notify = function(options, callback) { callback(); }); return this; -}; +} + +Object.defineProperty(Growl.prototype, 'notify', { + get: function() { + if (!this._notify) this._notify = notifyRaw.bind(this); + return this._notify; + } +}); function noop() {} diff --git a/notifiers/notificationcenter.js b/notifiers/notificationcenter.js index 2df0ecc..0d68378 100644 --- a/notifiers/notificationcenter.js +++ b/notifiers/notificationcenter.js @@ -31,7 +31,7 @@ util.inherits(NotificationCenter, EventEmitter); var activeId = null; function noop() {} -NotificationCenter.prototype.notify = function(options, callback) { +function notifyRaw(options, callback) { var fallbackNotifier; var id = identificator(); options = utils.clone(options || {}); @@ -93,7 +93,14 @@ NotificationCenter.prototype.notify = function(options, callback) { callback(new Error(errorMessageOsX)); return this; -}; +} + +Object.defineProperty(NotificationCenter.prototype, 'notify', { + get: function() { + if (!this._notify) this._notify = notifyRaw.bind(this); + return this._notify; + } +}); function identificator() { return { _ref: 'val' }; diff --git a/notifiers/notifysend.js b/notifiers/notifysend.js index 8e18512..074c39b 100644 --- a/notifiers/notifysend.js +++ b/notifiers/notifysend.js @@ -26,7 +26,7 @@ function NotifySend(options) { util.inherits(NotifySend, EventEmitter); function noop() {} -NotifySend.prototype.notify = function(options, callback) { +function notifyRaw(options, callback) { options = utils.clone(options || {}); callback = callback || noop; @@ -70,7 +70,14 @@ NotifySend.prototype.notify = function(options, callback) { } return this; -}; +} + +Object.defineProperty(NotifySend.prototype, 'notify', { + get: function() { + if (!this._notify) this._notify = notifyRaw.bind(this); + return this._notify; + } +}); var allowedArguments = ['urgency', 'expire-time', 'icon', 'category', 'hint']; diff --git a/notifiers/toaster.js b/notifiers/toaster.js index 4269d0b..1032aa5 100644 --- a/notifiers/toaster.js +++ b/notifiers/toaster.js @@ -49,7 +49,7 @@ function getPipeName() { return `${PIPE_PATH_PREFIX}${PIPE_NAME}-${uuid()}`; } -WindowsToaster.prototype.notify = function(options, callback) { +function notifyRaw(options, callback) { options = utils.clone(options || {}); callback = callback || noop; var is64Bit = os.arch() === 'x64'; @@ -142,4 +142,11 @@ WindowsToaster.prototype.notify = function(options, callback) { ); }); return this; -}; +} + +Object.defineProperty(WindowsToaster.prototype, 'notify', { + get: function() { + if (!this._notify) this._notify = notifyRaw.bind(this); + return this._notify; + } +});