build service
Deploy frontend / frontend (push) Failing after 46s

This commit is contained in:
2024-12-03 11:11:44 +02:00
parent 94bd0a6a62
commit c8b164e7d7
20 changed files with 147 additions and 46 deletions
@@ -8,8 +8,7 @@ import type {
} from "@hereconnect/types";
import { PushSubscription } from "web-push";
export interface ServiceDoc {
_id: string;
export interface ServiceSeqTrackerDocument {
lastSeq: string | number;
}
@@ -35,14 +34,15 @@ export const webPushSubscriptionsDb = new PouchDB<
skip_setup: true,
});
export const { messagesDb, serviceDb } = (() => {
export const { messagesDb, serviceSeqTrackerDb } = (() => {
const messagesDB = new PouchDB(messagesDbUrl, {
skip_setup: true,
});
return {
messagesDb: messagesDB as PouchDB.Database<MessageDocument>,
serviceDb: messagesDB as PouchDB.Database<ServiceDoc>,
serviceSeqTrackerDb:
messagesDB as PouchDB.Database<ServiceSeqTrackerDocument>,
} as const;
})();
@@ -52,3 +52,33 @@ export const userChatSettingsDb = new PouchDB<UserChatSettingsDocument>(
skip_setup: true,
},
);
export const checkDatabases = async () => {
const entries = await Promise.all(
Object.entries({
serverSettingsDb,
qrDb,
webPushSubscriptionsDb,
messagesDb,
userChatSettingsDb,
} as const).map(
async ([name, db]): Promise<
[string, Awaited<ReturnType<typeof db.info>>]
> => {
const info = await db.info();
return [name, info];
},
),
);
for (const [name, info] of entries) {
if ("error" in info && "reason" in info) {
throw new Error(`[${name}] ${info.error}: ${info.reason}`);
}
if ("error" in info) {
throw new Error(`[${name}] ${info.error}`);
}
}
return Object.fromEntries(entries);
};