cyclejs/cycle-notification-driver
null
{ "createdAt": "2015-07-20T12:40:59Z", "defaultBranch": "master", "description": null, "fullName": "cyclejs/cycle-notification-driver", "homepage": null, "language": "JavaScript", "name": "cycle-notification-driver", "pushedAt": "2016-03-31T20:08:09Z", "stargazersCount": 21, "topics": [], "updatedAt": "2025-07-09T07:52:32Z", "url": "https://github.com/cyclejs/cycle-notification-driver"}Cycle Notification Driver
Section titled “Cycle Notification Driver”A Cycle.js Driver for showing and responding to HTML5 Notifications.
npm install @cycle/notificationBasics:
import Cycle from '@cycle/core';import { makeNotificationDriver } from '@cycle/notification'
function main({notification}) { // ...}
const drivers = { notification: makeNotificationDriver()}
Cycle.run(main, drivers)Simple and normal use case:
function main({notification}) {
let notifications$ = Rx.Observable .interval(10000) .startWith(-1) .map( (value) => ({ title: 'Test Notification', body: `Interval ${value}`, tag: 'test-notification', icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAEUlEQVQIW2Pg3uSLjBgo5AMACSoZ+1zqJ8AAAAAASUVORK5CYII=' }) ) .take(10), show$ = notification.get('show'), click$ = notification.get('click'), error$ = notification.get('error'), close$ = notification.get('close'), all$ = Rx.Observable.merge(show$, click$, error$, close$)
all$.do(args => console.log(args)).subscribe()
return { notification: notifications$ }}