Files
grungnet/src/database.js

37 lines
884 B
JavaScript
Raw Normal View History

import Dexie from "dexie";
import blobToBuffer from "./helpers/blobToBuffer";
function loadVersions(db) {
2020-05-03 22:12:39 +10:00
// v1.2.0
db.version(1).stores({
maps: "id, owner",
states: "mapId",
tokens: "id, owner",
user: "key",
});
2020-05-03 22:12:39 +10:00
// v1.2.1 - Move from blob files to array buffers
db.version(2)
.stores({})
2020-05-03 22:12:39 +10:00
.upgrade(async (tx) => {
const maps = await Dexie.waitFor(tx.table("maps").toArray());
let mapBuffers = {};
for (let map of maps) {
mapBuffers[map.id] = await Dexie.waitFor(blobToBuffer(map.file));
}
return tx
.table("maps")
.toCollection()
.modify((map) => {
2020-05-03 22:12:39 +10:00
map.file = mapBuffers[map.id];
});
});
}
// Get the dexie database used in DatabaseContext
export function getDatabase(options) {
let db = new Dexie("OwlbearRodeoDB", options);
loadVersions(db);
return db;
}