add support heartbeat to couchdb-changes-stream

This commit is contained in:
2024-11-29 12:38:08 +02:00
parent a393a195d0
commit 9cc03623d9
27 changed files with 8998 additions and 8531 deletions
@@ -1,28 +1,32 @@
import { serviceDb, type ServiceDoc } from "./dbs";
const SERVICE_DOC_ID = "_local/service:message-delivery-method-web-push";
export class ServiceSeqTracker {
private serviceDoc: ServiceDoc;
async getSince() {
this.serviceDoc = await serviceDb.get(SERVICE_DOC_ID).catch((error) => {
/**
* @param _id
* @constructor
*/
static async Init(_id: string) {
const serviceDoc = await serviceDb.get(_id).catch((error) => {
if (error.name === "not_found") {
return {
_id: SERVICE_DOC_ID,
_id,
lastSeq: "0",
};
}
throw error; // Re-throw other errors
});
return new ServiceSeqTracker(serviceDoc);
}
// this.serviceDoc.lastSeq =
// "126-g1AAAACLeJzLYWBgYMpgTmHgzcvPy09JdcjLz8gvLskBCScyJNX___8_K4M50SUXKMCebGlpnmxpiq4Yh_Y8FiDJ0ACk_kNNsQKbYpSakphkYYKuJwsAb2YrPw";
private constructor(private serviceDoc: ServiceDoc) {}
get lastSeq() {
return this.serviceDoc.lastSeq;
}
checkNextSeq(seq: number | string) {
if (!this.serviceDoc) {
}
const next = parseInt(seq as string, 10);
const current = parseInt(this.serviceDoc.lastSeq as string, 10);
if (next < current) {