import * as webpush from "jsr:@negrel/webpush";
import { createClient } from "jsr:@supabase/supabase-js@2";
// ------------------------------------------------
// Supabase admin client
// ------------------------------------------------
const supabase = createClient(
Deno.env.get("SUPABASE_URL")!,
Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!
);
// ------------------------------------------------
// Lazy initialization for push server
// ------------------------------------------------
let appServer: webpush.ApplicationServer | null = null;
async function getPushServer() {
if (appServer) return appServer;
appServer = await webpush.ApplicationServer.new({
contactInformation: Deno.env.get("VAPID_SUBJECT")!,
vapidKeys: {
publicKey: Deno.env.get("VAPID_PUBLIC_KEY")!,
privateKey: Deno.env.get("VAPID_PRIVATE_KEY")!,
},
});
return appServer;
}
Deno.serve(async () => {
try {
const server = await getPushServer();
import * as webpush from "jsr:@negrel/webpush";
import { createClient } from "jsr:@supabase/supabase-js@2";
// ------------------------------------------------
// Supabase admin client
// ------------------------------------------------
const supabase = createClient(
Deno.env.get("SUPABASE_URL")!,
Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!
);
// ------------------------------------------------
// Lazy initialization for push server
// ------------------------------------------------
let appServer: webpush.ApplicationServer | null = null;
async function getPushServer() {
if (appServer) return appServer;
appServer = await webpush.ApplicationServer.new({
contactInformation: Deno.env.get("VAPID_SUBJECT")!,
vapidKeys: {
publicKey: Deno.env.get("VAPID_PUBLIC_KEY")!,
privateKey: Deno.env.get("VAPID_PRIVATE_KEY")!,
},
});
return appServer;
}
Deno.serve(async () => {
try {
const server = await getPushServer();