55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import PouchDB from "./PouchDB";
|
|
import type {
|
|
MessageDocument,
|
|
QRCodeDocument,
|
|
ServerSettingsDocument,
|
|
UserChatSettingsDocument,
|
|
WebPushSubscriptionDocument,
|
|
} from "@hereconnect/types";
|
|
import { PushSubscription } from "web-push";
|
|
|
|
export interface ServiceDoc {
|
|
_id: string;
|
|
lastSeq: string | number;
|
|
}
|
|
|
|
if (!process.env.API_URL) {
|
|
throw new Error("Environment variable API_URL is not set");
|
|
}
|
|
|
|
export const messagesDbUrl = `${process.env.API_URL}/messages`;
|
|
|
|
export const serverSettingsDb = new PouchDB<ServerSettingsDocument>(
|
|
`${process.env.API_URL}/server_settings`,
|
|
{
|
|
skip_setup: true,
|
|
},
|
|
);
|
|
export const qrDb = new PouchDB<QRCodeDocument>(`${process.env.API_URL}/qr`, {
|
|
skip_setup: true,
|
|
});
|
|
|
|
export const webPushSubscriptionsDb = new PouchDB<
|
|
WebPushSubscriptionDocument<PushSubscription>
|
|
>(`${process.env.API_URL}/web_push_subscriptions`, {
|
|
skip_setup: true,
|
|
});
|
|
|
|
export const { messagesDb, serviceDb } = (() => {
|
|
const messagesDB = new PouchDB(messagesDbUrl, {
|
|
skip_setup: true,
|
|
});
|
|
|
|
return {
|
|
messagesDb: messagesDB as PouchDB.Database<MessageDocument>,
|
|
serviceDb: messagesDB as PouchDB.Database<ServiceDoc>,
|
|
} as const;
|
|
})();
|
|
|
|
export const userChatSettingsDb = new PouchDB<UserChatSettingsDocument>(
|
|
`${process.env.API_URL}/user_chat_settings`,
|
|
{
|
|
skip_setup: true,
|
|
},
|
|
);
|