diff --git a/README.md b/README.md index 424351acb..8f5708c20 100755 --- a/README.md +++ b/README.md @@ -224,6 +224,7 @@ List of Definitions * [node-git](https://github.com/christkv/node-git) (by [vvakame](https://github.com/vvakame)) * [node_zeromq](https://github.com/JustinTulloss/zeromq.node) (by [Dave McKeown](https://github.com/davemckeown)) * [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) +* [notify.js](https://github.com/alexgibson/notify.js) (by [soundTricker](https://github.com/soundTricker)) * [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel)) * [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/)) * [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/)) diff --git a/notify.js/notify.js-tests.ts b/notify.js/notify.js-tests.ts new file mode 100644 index 000000000..7652a0a91 --- /dev/null +++ b/notify.js/notify.js-tests.ts @@ -0,0 +1,34 @@ +/// + +function test_Notify_constructor() { + //Min + var n = new Notify("hoge") + n.show(); + + //With option + n = new Notify("hoge", {body : "fuga"}); + n.show(); + + //With Full option + n = new Notify("hoge", { + body : "fuga", + icon : "./logo.png", + tag : "user", + notifyShow : (e:Event)=> console.log("notifyShow", e), + notifyClose : ()=> console.log("notifyClose"), + notifyClick : ()=> console.log("notifyClick"), + notifyError : ()=> console.log("notifyError"), + permissionGranted : ()=> console.log("permissionGranted"), + permissionDenied : ()=> console.log("permissionDenied") + }); + n.show(); + +} + +function test_Notify_static_methods() { + Notify.needsPermission(); + Notify.requestPermission(); + Notify.requestPermission(()=> console.log("onPermissionGrantedCallback")); + Notify.requestPermission(()=> console.log("onPermissionGrantedCallback"), ()=> console.log("onPermissionDeniedCallback")); + Notify.isSupported(); +} diff --git a/notify.js/notify.js.d.ts b/notify.js/notify.js.d.ts new file mode 100644 index 000000000..651b91ac5 --- /dev/null +++ b/notify.js/notify.js.d.ts @@ -0,0 +1,101 @@ +// Type definitions for notify.js 1.2.0 +// Project: https://github.com/alexgibson/notify.js +// Definitions by: soundTricker +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare var Notify: { + new (title : string , options? : notify.INotifyOption): notify.INotify; + + /** + * Check is permission is needed for the user to receive notifications. + * @return true : needs permission, false : does not need + */ + needsPermission() : boolean; + + /** + * Asks the user for permission to display notifications + * @param onPermissionGrantedCallback A callback for permmision is granted. + * @param onPermissionDeniedCallback A callback for permmision is denied. + */ + requestPermission(onPermissionGrantedCallback?: ()=> any, onPermissionDeniedCallback? : ()=> any) : void; + + /** + * return true if the browser supports HTML5 Notification + * @param true : the browser supports HTML5 Notification, false ; the browswer does not supports HTML5 Notification. + */ + isSupported() : boolean; +} + +declare module notify { + + /** + * Interface for Web Notifications API Wrapper. + */ + interface INotify { + /** + * Show the notification. + */ + show() : void; + + /** + * Remove all event listener. + */ + destroy() : void; + + /** + * Close the notification. + */ + close() : void; + onShowNotification(e : Event) : void; + onCloseNotification() : void; + onClickNotification() : void; + onErrorNotification() : void; + handleEvent(e : Event) : void; + } + + /** + * Interface for the Notify's optional parameter. + */ + interface INotifyOption { + + /** + * notification message body + */ + body? : string; + + /** + * path for icon to display in notification + */ + icon? : string; + + /** + * unique identifier to stop duplicate notifications + */ + tag? : string; + + /** + * callback when notification is shown + */ + notifyShow? (e : Event): any; + /** + * callback when notification is closed + */ + notifyClose? : Function; + /** + * callback when notification is clicked + */ + notifyClick? : Function; + /** + * callback when notification throws an error + */ + notifyError? : Function; + /** + * callback when user has granted permission + */ + permissionGranted? : Function; + /** + * callback when user has denied permission + */ + permissionDenied? : Function; + } +}