feat: add web push
This commit is contained in:
parent
a7c679e610
commit
c6fe03db7a
4 changed files with 256 additions and 3 deletions
15
index.js
15
index.js
|
|
@ -2,6 +2,7 @@ const fs = require("fs");
|
|||
const util = require("util");
|
||||
const vm = require("node:vm");
|
||||
const path = require("path");
|
||||
require('dotenv').config()
|
||||
const express = require("express");
|
||||
const session = require("express-session");
|
||||
const fileUpload = require("express-fileupload");
|
||||
|
|
@ -10,6 +11,7 @@ const { Eta } = require("eta");
|
|||
const { match } = require("path-to-regexp");
|
||||
const bcrypt = require("bcrypt");
|
||||
const cheerio = require("cheerio");
|
||||
const webPush = require("web-push");
|
||||
const app = express();
|
||||
const _expressWs = require("express-ws")(app);
|
||||
const bodyParser = require("body-parser");
|
||||
|
|
@ -38,6 +40,16 @@ app.use(
|
|||
}),
|
||||
);
|
||||
|
||||
const vapidPublicKey = process.env.VAPID_PUBLIC_KEY
|
||||
const vapidPrivateKey = process.env.VAPID_PRIVATE_KEY
|
||||
|
||||
// Configure web-push with your VAPID details
|
||||
webPush.setVapidDetails(
|
||||
"mailto:signups@sheepmail.net", // a mailto URL or URL
|
||||
vapidPublicKey,
|
||||
vapidPrivateKey,
|
||||
);
|
||||
|
||||
function bootstrapContext(db, structureId, routeId, initContext) {
|
||||
const allDbInstances = {};
|
||||
function getDb(alias) {
|
||||
|
|
@ -48,7 +60,7 @@ function bootstrapContext(db, structureId, routeId, initContext) {
|
|||
// for now just designing with component approach
|
||||
const eta = model.getTemplater(structureId);
|
||||
|
||||
const libs = { eta, db: getDb };
|
||||
const libs = { eta, db: getDb, push: webPush };
|
||||
|
||||
let dbs = model.getDbsForStructure(db, structureId);
|
||||
let context = vm.createContext({
|
||||
|
|
@ -76,6 +88,7 @@ function bootstrapContext(db, structureId, routeId, initContext) {
|
|||
model.createLog(db, structureId, routeId, s);
|
||||
},
|
||||
},
|
||||
vapidPublicKey: vapidPublicKey
|
||||
});
|
||||
for (let appDb of dbs) {
|
||||
let dbInstance = model.getDbInstance(appDb.id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue