From 417e920ea05c3b9516c2dd378fdf2f07e6659577 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 22 Feb 2021 10:46:40 +0100 Subject: [PATCH] make log id autoinc --- src/logging/IDBLogger.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/logging/IDBLogger.js b/src/logging/IDBLogger.js index 0ff21034..b4c52edb 100644 --- a/src/logging/IDBLogger.js +++ b/src/logging/IDBLogger.js @@ -20,7 +20,6 @@ import { reqAsPromise, iterateCursor, fetchResults, - encodeUint64 } from "../matrix/storage/idb/utils.js"; import {BaseLogger} from "./BaseLogger.js"; @@ -30,9 +29,6 @@ export class IDBLogger extends BaseLogger { const {name, flushInterval = 60 * 1000, limit = 3000} = options; this._name = name; this._limit = limit; - // does not get loaded from idb on startup as we only use it to - // differentiate between two items with the same start time - this._itemCounter = 0; this._queuedItems = this._loadQueuedItems(); // TODO: also listen for unload just in case sync keeps on running after pagehide is fired? window.addEventListener("pagehide", this, false); @@ -101,13 +97,11 @@ export class IDBLogger extends BaseLogger { } _openDB() { - return openDatabase(this._name, db => db.createObjectStore("logs", {keyPath: "id"}), 1); + return openDatabase(this._name, db => db.createObjectStore("logs", {keyPath: "id", autoIncrement: true}), 1); } _persistItem(serializedItem) { - this._itemCounter += 1; this._queuedItems.push({ - id: `${encodeUint64(serializedItem.s)}:${this._itemCounter}`, json: JSON.stringify(serializedItem) }); } @@ -127,10 +121,7 @@ export class IDBLogger extends BaseLogger { const logs = txn.objectStore("logs"); const storedItems = await fetchResults(logs.openCursor(), () => false); const allItems = storedItems.concat(this._queuedItems); - const sortedItems = allItems.sort((a, b) => { - return a.id > b.id; - }); - return new IDBLogExport(sortedItems, this, this._platform); + return new IDBLogExport(allItems, this, this._platform); } finally { try { db.close();