Skip to content
vic

cyclejs/cycle-notification-driver

null

cyclejs/cycle-notification-driver.json
{
"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"
}

A Cycle.js Driver for showing and responding to HTML5 Notifications.

npm install @cycle/notification

Basics:

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$
}
}