Created this file using the Push.js to allow simple push notifications in JavaScript like this

Notify.info({ title: this.title, message: "No changes to undo." });

with an import like this

import * as Notify from "../utilities/notify";

That references this file with the following contents.

import * as Push from "push";

function allowed() {
 if (Push.Permission.has()) {
	return true;
 }
 return false;
};

function display(options) {
	 Push.create(options.title,
	 {
		 body: options.message,
		 icon: { x16: "images/notify/icon-x16.png", x32: "images/notify/icon-x32.png" },
		 timeout: options.timeout || 1000,
		 onClick: () => {
		 window.focus();
		 this.close();
	 }
 });
}

function displayMessage(options, altTitle) {
 if (!allowed()) {
	return;
 }
 if (!options.hasOwnProperty("message")) {
	return;
 }
 try {
	 let newOptions = Object.assign({}, options);
	 newOptions.title = newOptions.title || altTitle;
	 display(Object.freeze(Object.assign({}, newOptions)));
 }
 catch (err) {
	console.log(err);
 } 
}

export function warning(options) {
 options.timeout = options.timeout || 2500;
 displayMessage(options, "Warning");
};

export function info(options) {
 options.timeout = options.timeout || 1000;
 displayMessage(options, "Information");
};