From c4ca8cdd5e79b80170cda9b03681d70d5a7425fe Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Wed, 12 Jan 2022 10:52:24 -0500 Subject: [PATCH] auto add/drop db spaces --- src/data/index.js | 23 +++++++++++++++++------ src/main/mesh.js | 6 +++--- src/mesh/api.js | 2 ++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/data/index.js b/src/data/index.js index 0c197470..0b45aea3 100644 --- a/src/data/index.js +++ b/src/data/index.js @@ -176,14 +176,25 @@ request = IDB.open(name, this.version); request.onupgradeneeded = function(event) { - if (options.delete === true) { - storage.db.deleteObjectStore(name); - return; - } let db = storage.db = request.result; - for (let store of storage.stores) { + let current = [...db.objectStoreNames]; + let stores = storage.stores; + // add missing stores + for (let store of stores) { + if (current.indexOf(store) >= 0) { + continue; + } storage.created[store] = db.createObjectStore(store); storage.current = store; + current.push(store); + console.log({index_added: store}); + } + // remove obsolete stores + for (let curr of current) { + if (stores.indexOf(curr) < 0) { + storage.db.deleteObjectStore(curr); + console.log({index_dropped: curr}); + } } event.target.transaction.oncomplete = function(event) { storage.runQueue(); @@ -197,7 +208,7 @@ }; request.onerror = function(event) { - console.log({error:event}); + console.log({error: event}); fallback(); }; } catch (e) { diff --git a/src/main/mesh.js b/src/main/mesh.js index a3e5cb36..b64abdd7 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -6,9 +6,10 @@ let broker = gapp.broker; let call = broker.send; +let dbindex = [ "admin", "space" ]; function init() { - let stores = data.open('mesh', { stores:[ "admin", "cache", "space" ] }).init(), + let stores = data.open('mesh', { stores: dbindex, version: 4 }).init(), moto = self.moto, api = mesh.api, dark = false, @@ -19,8 +20,7 @@ function init() { platform = space.platform, db = mesh.db = { admin: stores.promise('admin'), - space: stores.promise('space'), - cache: stores.promise('cache') + space: stores.promise('space') }; // mark init time and use count diff --git a/src/mesh/api.js b/src/mesh/api.js index f6f61142..e97aabf9 100644 --- a/src/mesh/api.js +++ b/src/mesh/api.js @@ -361,6 +361,7 @@ let tool = { api.log.emit('repairing mesh(es)...').pin(); tool.heal(models, { merge: true }).then(() => { api.log.emit('repair commplete').pin(); + api.selection.update(); }); }, @@ -368,6 +369,7 @@ let tool = { api.log.emit('cleaning mesh(es)...').pin(); tool.heal(models, { merge: false }).then(() => { api.log.emit('cleaning complete').pin(); + api.selection.update(); }); } };