File size: 862 Bytes
b5ba7a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const idb = window.indexedDB.open("openoutpaint", 2);

idb.onerror = (e) => {
	console.warn("[stamp] Failed to connect to IndexedDB");
	console.warn(e);
};

idb.onupgradeneeded = (e) => {
	const db = e.target.result;

	console.debug(`[stamp] Setting up database version ${db.version}`);

	if (e.oldVersion < 1) {
		// Resources Store
		const resourcesStore = db.createObjectStore("resources", {
			keyPath: "id",
		});
		resourcesStore.createIndex("name", "name", {unique: false});
	}

	// Workspaces Store
	const workspacesStore = db.createObjectStore("workspaces", {
		keyPath: "id",
	});
	workspacesStore.createIndex("name", "name", {unique: false});
};

/** @type {IDBDatabase} */
let db = null;
/** @type {Observer<{db: IDBDatabase}>} */
const ondatabaseload = new Observer();

idb.onsuccess = (e) => {
	db = e.target.result;
	ondatabaseload.emit({db});
};