@gudhub/core 1.2.4-beta.46 → 1.2.4-beta.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.parcel-cache/d3a1b9507cb44047-AssetGraph +0 -0
  2. package/.parcel-cache/data.mdb +0 -0
  3. package/.parcel-cache/dc1da35000e13623-RequestGraph +0 -0
  4. package/.parcel-cache/lock.mdb +0 -0
  5. package/.parcel-cache/snapshot-dc1da35000e13623.txt +129 -132
  6. package/GUDHUB/AppProcessor/AppProcessor.js +6 -20
  7. package/GUDHUB/ChunksManager/ChunksManager.test.js +3 -0
  8. package/GUDHUB/DataService/AppDataService.js +1 -200
  9. package/GUDHUB/DataService/ChunkDataService.js +0 -4
  10. package/GUDHUB/DataService/IndexedDB/IndexedDBAppService.js +224 -263
  11. package/GUDHUB/DataService/IndexedDB/IndexedDBChunkService.js +3 -227
  12. package/GUDHUB/DataService/IndexedDB/IndexedDBService.js +124 -302
  13. package/GUDHUB/DataService/IndexedDB/StoreManager/BaseStoreManager.js +9 -36
  14. package/GUDHUB/DataService/IndexedDB/StoreManager/managers.js +4 -40
  15. package/GUDHUB/DataService/IndexedDB/appRequestWorker.js +23 -88
  16. package/GUDHUB/DataService/IndexedDB/consts.js +1 -3
  17. package/GUDHUB/DataService/IndexedDB/init.js +1 -1
  18. package/GUDHUB/DataService/IndexedDB/storeManagerConf/init.js +1 -1
  19. package/GUDHUB/DataService/export.js +73 -13
  20. package/GUDHUB/DataService/httpService/AppHttpService.js +5 -15
  21. package/GUDHUB/DataService/httpService/ChunkHttpService.js +35 -37
  22. package/GUDHUB/DataService/utils.js +24 -127
  23. package/GUDHUB/GHConstructor/createAngularModuleInstance.js +7 -4
  24. package/GUDHUB/GHConstructor/createClassInstance.js +8 -3
  25. package/GUDHUB/ItemProcessor/ItemProcessor.js +0 -18
  26. package/GUDHUB/Storage/ModulesList.js +0 -7
  27. package/GUDHUB/Utils/Utils.js +0 -14
  28. package/GUDHUB/WebSocket/WebSocket.js +2 -2
  29. package/GUDHUB/api/AppApi.js +13 -13
  30. package/GUDHUB/api/ChunkApi.js +5 -5
  31. package/GUDHUB/config.js +11 -2
  32. package/GUDHUB/consts.js +6 -12
  33. package/GUDHUB/gudhub.js +7 -30
  34. package/GUDHUB/gudhubAppRequestWorker.js +1 -2
  35. package/package.json +4 -2
  36. package/GUDHUB/ChunksManager/ChunksManager.js +0 -68
  37. package/indextest.html +0 -35
@@ -4,346 +4,168 @@ import { dbName, dbVersion } from "./consts.js";
4
4
  import { chunksMergeConf } from "./storeManagerConf/chunkCacheStoreManagerConf.js";
5
5
 
6
6
 
7
- // этот класс для наследования был создан, т.е. надо подумать как его скомпоновать с IndexedDBManager
8
- export class IndexedDBService {
9
- constructor(conf) {
10
- this.store = conf.store;
11
- this.dbName = conf.dbName;
12
- this.dbVersion = conf.dbVersion;
13
-
14
- this.requestCache = new Map; // id -> promise ///TODO seems irrelevant to class IndexedDBManager (could be renamed to Facade already)
15
- }
16
- }
17
-
18
-
19
- //Maybe rename to Facade
20
- export class IndexedDBManager {
21
- constructor(
22
- dbName,
23
- // dbVersion,
24
- storeNameList,
25
- ) {
26
- if (
27
- !IndexedDBManager.dbNameToInstanceMap
28
- ) {
29
- IndexedDBManager.dbNameToInstanceMap = new Map;
30
- }
31
-
32
- if (
33
- IndexedDBManager.dbNameToInstanceMap.has(dbName)
34
- ) return IndexedDBManager.dbNameToInstanceMap.get(dbName);
35
-
36
- this.db = null;
37
- // this.queue = [];
38
- // this.isProcessing = false;
39
-
40
- this.dbName = dbName;
41
- // this.dbVersion = dbVersion;
42
- this.storeNameList = storeNameList;
43
- // this.storeNameList = [];
44
-
45
- IndexedDBManager.dbNameToInstanceMap.set(dbName, this);
46
-
47
-
48
- // this.db = new Promise((resolve, reject) => {
49
-
50
- // });
51
-
52
-
53
- // this.dbPrms = this.openDB();
54
-
55
- this.db = null;
56
7
 
8
+ export class StoreBackend { }
57
9
 
58
- // this.db = this.openDB();
59
10
 
60
- // this
61
-
62
- // this.openDB();
11
+ export class IndexedDBManager extends StoreBackend {
12
+ constructor(
13
+ dbName,
14
+ storeNameList,
15
+ ) {
16
+ if (
17
+ !IndexedDBManager.dbNameToInstanceMap
18
+ ) {
19
+ IndexedDBManager.dbNameToInstanceMap = new Map;
63
20
  }
64
21
 
65
- // TODO also remove outdated stores
66
- async checkAndCreateStore(storeName) {
67
- const databases = await indexedDB.databases();
68
- const dbInfo = databases.find(db => db.name === this.dbName);
69
-
70
- let storeExists = false;
22
+ if (
23
+ IndexedDBManager.dbNameToInstanceMap.has(dbName)
24
+ ) return IndexedDBManager.dbNameToInstanceMap.get(dbName);
71
25
 
72
- let self = this;
26
+ this.db = null;
27
+ // this.queue = [];
28
+ // this.isProcessing = false;
73
29
 
74
- if (
75
- dbInfo
76
- ) {
77
- storeExists = await new Promise((resolve, reject) => {
78
- const request = indexedDB.open(self.dbName);
79
-
80
- request.onsuccess = function(event) {
81
- const db = event.target.result;
82
- const exists = db.objectStoreNames.contains(storeName);
83
- db.close();
84
- resolve(exists);
85
- };
86
-
87
- request.onerror = function(event) {
88
- reject(event.target.error);
89
- };
90
- });
91
-
92
- //TODO try catch for promise reject
93
- }
30
+ this.dbName = dbName;
31
+ this.storeNameList = storeNameList;
94
32
 
95
- if (
96
- !storeExists
97
- ) {
98
- return new Promise((resolve, reject) => {
99
- const request = indexedDB.open(self.dbName, dbInfo ? dbInfo.version + 1 : 1);
33
+ IndexedDBManager.dbNameToInstanceMap.set(dbName, this);
34
+ }
100
35
 
101
- request.onupgradeneeded = function(event) {
102
- const db = event.target.result;
103
- if (
104
- !db.objectStoreNames.contains(storeName)
105
- ) {
106
- db.createObjectStore(storeName);
107
- }
108
- };
36
+ async checkAndCreateStore(storeName) {
37
+ const databases = await indexedDB.databases();
38
+ const dbInfo = databases.find(db => db.name === this.dbName);
109
39
 
110
- request.onsuccess = function(event) {
111
- const db = event.target.result;
112
- db.close();
113
- resolve();
114
- };
40
+ let storeExists = false;
115
41
 
116
- request.onerror = reject;
117
- });
42
+ let self = this;
118
43
 
44
+ if (
45
+ dbInfo
46
+ ) {
47
+ storeExists = await new Promise((resolve, reject) => {
48
+ const request = indexedDB.open(self.dbName);
49
+
50
+ request.onsuccess = function (event) {
51
+ const db = event.target.result;
52
+ const exists = db.objectStoreNames.contains(storeName);
53
+ db.close();
54
+ resolve(exists);
55
+ };
119
56
 
120
- //TODO try catch for reject
121
- }
57
+ request.onerror = function (event) {
58
+ reject(event.target.error);
59
+ };
60
+ });
122
61
 
123
- //TODO maybe not return anything it will be ok for promise resolve
124
- return true;
62
+ //TODO try catch for promise reject
125
63
  }
126
64
 
127
- // // Usage example
128
- // checkAndCreateStore('myDatabase', 'myObjectStore').then(() => {
129
- // console.log('Check and creation (if necessary) complete.');
130
- // }).catch(error => {
131
- // console.error('Error checking and creating object store:', error);
132
- // });
133
-
134
-
135
- async openDB() {
136
-
137
- // TODO remove outdated stores before also
138
-
139
-
140
- if (this.db) return this.db;
65
+ if (
66
+ !storeExists
67
+ ) {
68
+ return new Promise((resolve, reject) => {
69
+ const request = indexedDB.open(self.dbName, dbInfo ? dbInfo.version + 1 : 1);
70
+
71
+ request.onupgradeneeded = function (event) {
72
+ const db = event.target.result;
73
+ if (
74
+ !db.objectStoreNames.contains(storeName)
75
+ ) {
76
+ db.createObjectStore(storeName);
77
+ }
78
+ };
141
79
 
142
- let resolver, rejecter;
80
+ request.onsuccess = function (event) {
81
+ const db = event.target.result;
82
+ db.close();
83
+ resolve();
84
+ };
143
85
 
144
- let dbPrms = new Promise((resolve, reject) => {
145
- resolver = resolve;
146
- rejecter = reject;
86
+ request.onerror = reject;
147
87
  });
148
88
 
149
- for (let storeName of this.storeNameList) {
150
- await this.checkAndCreateStore(storeName);
151
- }
152
-
153
-
154
-
155
- let self = this;
156
-
157
- // return new Promise((resolve, reject) => {
158
- // const request = indexedDB.open(this.dbName, this.dbVersion);
159
- const request = indexedDB.open(this.dbName);
160
-
161
- // request.onupgradeneeded = (event) => {
162
- // const db = event.target.result;
163
-
164
- // this.storeNameList.forEach(storeName => {
165
- // if (
166
- // !db.objectStoreNames.contains(storeName)
167
- // ) {
168
- // db.createObjectStore(storeName);
169
- // }
170
- // });
171
- // };
172
-
173
- request.onsuccess = (event) => {
174
- self.db = event.target.result;
175
-
176
- // let version = this.db.version;
177
-
178
- resolver(this.db);
179
- };
180
-
181
- request.onerror = rejecter;
182
89
 
183
- return dbPrms;
184
- // });
90
+ //TODO try catch for reject
185
91
  }
186
-
187
- async executeOperation(storeName, operation) {
188
-
189
- //this get executed more than 1 time
190
- let db = await this.openDB();
191
-
192
- // if (
193
- // !this.db
194
- // ) {
195
- // throw new Error("Database not initialized. Call openDB first.");
196
- // }
197
92
 
93
+ //TODO maybe not return anything it will be ok for promise resolve
94
+ return true;
95
+ }
198
96
 
199
- // await this.db;
97
+ async openDB() {
98
+ if (this.db) return this.db;
200
99
 
100
+ let resolver, rejecter;
201
101
 
202
- // let self = this;
102
+ let dbPrms = new Promise((resolve, reject) => {
103
+ resolver = resolve;
104
+ rejecter = reject;
105
+ });
203
106
 
204
- // await this.db;
205
-
206
- return new Promise((resolve, reject) => {
207
- const transaction = db.transaction(storeName, 'readwrite'); //TODO not all operations readwrite
208
- const store = transaction.objectStore(storeName);
209
-
210
- transaction.oncomplete = () => resolve();
211
- transaction.onerror = (event) => reject(`Transaction failed: ${event.target.error}`);
212
-
213
- try {
214
- operation(store);
215
- } catch (error) {
216
- reject(`Operation failed: ${error.message}`);
217
- }
218
- });
219
- }
220
-
221
-
222
- // в инете пишут что индексдб сам хендлит транзакции, может не нужно вообще городить эти конструкции
223
-
224
-
225
- // async enqueueOperation(storeName, type, operation) {
226
- // await this.ensureStoreExists(storeName); // Ensure the store exists <-----------------------
227
- // const db = await this.dbPromise;
228
- // return new Promise((resolve, reject) => {
229
- // const transaction = db.transaction(storeName, type);
230
- // const store = transaction.objectStore(storeName);
231
- // const request = operation(store);
232
-
233
- // request.onsuccess = (event) => {
234
- // resolve(event.target.result);
235
- // };
236
-
237
- // request.onerror = (event) => {
238
- // reject(event.target.error);
239
- // };
240
- // });
241
- // }
242
-
243
-
244
- async enqueueOperation(storeName, operation) {
245
- this.queue.push({ storeName, operation });
246
-
247
- if (!this.isProcessing) {
248
- this.isProcessing = true;
249
- while (this.queue.length > 0) {
250
- const { storeName, operation } = this.queue.shift();
251
- try {
252
- await this.executeOperation(storeName, operation);
253
- } catch (error) {
254
- console.error('Operation failed:', error);
255
- }
256
- }
257
- this.isProcessing = false;
258
- }
107
+ for (let storeName of this.storeNameList) {
108
+ await this.checkAndCreateStore(storeName);
259
109
  }
260
110
 
261
- // единственное что тут не нравится - версия динамически меняется
262
- async ensureStoreExists(storeName) {
111
+ let self = this;
263
112
 
264
- }
113
+ const request = indexedDB.open(this.dbName);
265
114
 
115
+ request.onsuccess = (event) => {
116
+ self.db = event.target.result;
117
+ resolver(this.db);
118
+ };
266
119
 
267
- // async ensureStoreExists(storeName) {
268
- // const db = await this.dbPromise;
269
- // if (!db.objectStoreNames.contains(storeName)) {
270
- // this.db.close();
271
- // const version = db.version + 1;
272
- // const request = indexedDB.open(this.dbName, version);
273
-
274
- // request.onupgradeneeded = (event) => {
275
- // const upgradedDb = event.target.result;
276
- // if (!upgradedDb.objectStoreNames.contains(storeName)) {
277
- // upgradedDb.createObjectStore(storeName, { keyPath: 'id', autoIncrement: true });
278
- // }
279
- // };
280
-
281
- // return new Promise((resolve, reject) => {
282
- // request.onsuccess = (event) => {
283
- // this.db = event.target.result;
284
- // this.dbPromise = Promise.resolve(this.db); // Update the dbPromise
285
- // resolve(this.db);
286
- // };
287
-
288
- // request.onerror = (event) => {
289
- // reject(event.target.error);
290
- // };
291
- // });
292
- // }
293
- // return Promise.resolve(db);
294
- // }
295
-
296
- async createObjectStore(storeName) {
297
-
298
-
299
- // async createObjectStore(storeName) {
300
- // const db = await this.dbPromise;
301
- // if (!db.objectStoreNames.contains(storeName)) {
302
- // db.close();
303
- // const version = db.version + 1;
304
- // const request = indexedDB.open(this.dbName, version);
305
-
306
- // request.onupgradeneeded = (event) => {
307
- // const upgradedDb = event.target.result;
308
- // if (!upgradedDb.objectStoreNames.contains(storeName)) {
309
- // upgradedDb.createObjectStore(storeName, { keyPath: 'id', autoIncrement: true });
310
- // }
311
- // };
312
-
313
- // return new Promise((resolve, reject) => {
314
- // request.onsuccess = (event) => {
315
- // this.db = event.target.result;
316
- // resolve(this.db);
317
- // };
318
-
319
- // request.onerror = (event) => {
320
- // reject(event.target.error);
321
- // };
322
- // });
323
- // }
324
- // return Promise.resolve(db);
325
- // }
120
+ request.onerror = rejecter;
326
121
 
327
- }
122
+ return dbPrms;
328
123
  }
329
-
330
- export const gudhubIndexedDBManager = new IndexedDBManager(
331
- dbName,
332
- // dbVersion,
333
- [
334
- appsConf.store,
335
- chunksConf.store,
336
- chunksMergeConf.store,
337
- ],
338
- );
339
124
 
340
- // export default dbManager;
125
+ async executeOperation(storeName, operation) {
341
126
 
127
+ // TODO this get executed more than 1 time
128
+ let db = await this.openDB();
342
129
 
130
+ return new Promise((resolve, reject) => {
131
+ const transaction = db.transaction(storeName, 'readwrite'); //TODO not all operations readwrite
132
+ const store = transaction.objectStore(storeName);
343
133
 
344
- // последний ответ посмотри, там я спрашивал можно ли не закрывать и открывать дб из каждого сторменеджера
134
+ transaction.oncomplete = () => resolve();
135
+ transaction.onerror = (event) => reject(`Transaction failed: ${event.target.error}`);
345
136
 
137
+ try {
138
+ operation(store);
139
+ } catch (error) {
140
+ reject(`Operation failed: ${error.message}`);
141
+ }
142
+ });
143
+ }
144
+
145
+ // async enqueueOperation(storeName, operation) {
146
+ // this.queue.push({ storeName, operation });
147
+
148
+ // if (!this.isProcessing) {
149
+ // this.isProcessing = true;
150
+ // while (this.queue.length > 0) {
151
+ // const { storeName, operation } = this.queue.shift();
152
+ // try {
153
+ // await this.executeOperation(storeName, operation);
154
+ // } catch (error) {
155
+ // console.error('Operation failed:', error);
156
+ // }
157
+ // }
158
+ // this.isProcessing = false;
159
+ // }
160
+ // }
161
+ }
346
162
 
347
- // await this.ensureStoreExists(storeName); // Ensure the store exists - вот этот код вроде ок, т.е. перед выполнением след операции проверка
348
163
 
349
-
164
+ export const indexedDBStoreBackendSingleton = new IndexedDBManager(
165
+ dbName,
166
+ [
167
+ appsConf.store,
168
+ chunksConf.store,
169
+ chunksMergeConf.store,
170
+ ],
171
+ );
@@ -1,17 +1,13 @@
1
1
  export class BaseStoreManager {
2
- // constructor(dbManager, dbName, storeName) {
3
- constructor(dbManager, storeName) {
4
- this.dbManager = dbManager;
5
- // this.dbName = dbName;
2
+ constructor(storeBackend, storeName) {
3
+ this.storeBackend = storeBackend;
6
4
  this.storeName = storeName;
7
- // this.dbManager.openDB(this.dbName, [this.storeName]);
8
- // this.dbManager.ensureStoreExists(this.storeName);
9
5
  }
10
6
 
11
7
  async addItem(id, data) {
12
8
  return new Promise(async (resolve, reject) => {
13
9
 
14
- this.dbManager.executeOperation(this.storeName, (store) => {
10
+ this.storeBackend.executeOperation(this.storeName, (store) => {
15
11
  const request = store.add(data, id);
16
12
 
17
13
  request.onsuccess = resolve;
@@ -24,7 +20,7 @@ export class BaseStoreManager {
24
20
  async putItem(id, data) {
25
21
  return new Promise(async (resolve, reject) => {
26
22
 
27
- this.dbManager.executeOperation(this.storeName, (store) => {
23
+ this.storeBackend.executeOperation(this.storeName, (store) => {
28
24
  const request = store.put(data, id);
29
25
 
30
26
  request.onsuccess = resolve;
@@ -35,9 +31,6 @@ export class BaseStoreManager {
35
31
  }
36
32
 
37
33
  async hasItem(id) {
38
-
39
- // debugger
40
-
41
34
  try {
42
35
  let item = await this.getItem(id);
43
36
 
@@ -49,27 +42,12 @@ export class BaseStoreManager {
49
42
 
50
43
  return false;
51
44
  }
52
-
53
- return new Promise(async (resolve, reject) => {
54
-
55
- this.dbManager.executeOperation(this.storeName, (store) => {
56
- const request = store.get(id);
57
-
58
- request.onsuccess = () => {
59
- const data = request.result;
60
- resolve(data);
61
- };
62
-
63
- request.onerror = reject;
64
- });
65
-
66
- });
67
45
  }
68
46
 
69
47
  async getItem(id) {
70
48
  return new Promise(async (resolve, reject) => {
71
49
 
72
- this.dbManager.executeOperation(this.storeName, (store) => {
50
+ this.storeBackend.executeOperation(this.storeName, (store) => {
73
51
  const request = store.get(id);
74
52
 
75
53
  request.onsuccess = () => {
@@ -86,7 +64,7 @@ export class BaseStoreManager {
86
64
  async updateItem(id, updatedItem) {
87
65
  return new Promise(async (resolve, reject) => {
88
66
 
89
- this.dbManager.executeOperation(this.storeName, (store) => {
67
+ this.storeBackend.executeOperation(this.storeName, (store) => {
90
68
  const request = store.get(id);
91
69
 
92
70
  request.onsuccess = () => {
@@ -94,7 +72,7 @@ export class BaseStoreManager {
94
72
  Object.assign(data, updatedItem);
95
73
  store.put(data, id);
96
74
 
97
- //TODO wait put operation before resolve
75
+ //TODO wait put operation before resolve?
98
76
  resolve();
99
77
  };
100
78
 
@@ -107,7 +85,7 @@ export class BaseStoreManager {
107
85
  async deleteItem(id) {
108
86
  return new Promise(async (resolve, reject) => {
109
87
 
110
- this.dbManager.executeOperation(this.storeName, (store) => {
88
+ this.storeBackend.executeOperation(this.storeName, (store) => {
111
89
  const request = store.delete(id);
112
90
 
113
91
  request.onsuccess = resolve;
@@ -116,9 +94,4 @@ export class BaseStoreManager {
116
94
 
117
95
  });
118
96
  }
119
- }
120
-
121
-
122
- //TODO move to base class here
123
- // this.requestCache = new Map; // id -> promise ///TODO seems irrelevant to class IndexedDBManager (could be renamed to Facade already)
124
-
97
+ }
@@ -1,32 +1,24 @@
1
1
  import { appsConf } from "../appDataConf.js";
2
2
  import { chunksConf } from "../chunkDataConf.js";
3
- // import { dbName } from "../consts";
4
- import { gudhubIndexedDBManager } from "../IndexedDBService.js";
3
+ import { indexedDBStoreBackendSingleton } from "../IndexedDBService.js";
5
4
  import { chunksMergeConf } from "../storeManagerConf/chunkCacheStoreManagerConf.js";
6
5
  import { BaseStoreManager } from "./BaseStoreManager.js";
7
6
 
8
7
  export class AppStoreManager extends BaseStoreManager {
9
8
  constructor() {
10
- super(gudhubIndexedDBManager, appsConf.store);
9
+ super(indexedDBStoreBackendSingleton, appsConf.store);
11
10
  }
12
11
 
13
12
  async getApp(id) {
14
-
15
13
  return this.getItem(id);
16
-
17
- // return dbManager.enqueueOperation('apps', 'readonly', (store) => store.get(id));
18
14
  }
19
15
 
20
16
  async addApp(id, data) {
21
17
  return this.addItem(id, data);
22
-
23
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
24
18
  }
25
19
 
26
20
  async putApp(id, data) {
27
21
  return this.putItem(id, data);
28
-
29
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
30
22
  }
31
23
 
32
24
  async hasApp(id) {
@@ -35,79 +27,51 @@ export class AppStoreManager extends BaseStoreManager {
35
27
 
36
28
  async deleteApp(id) {
37
29
  return this.deleteItem(id);
38
-
39
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.delete(id));
40
30
  }
41
-
42
- // Additional methods specific to AppStoreManager if necessary
43
31
  }
44
32
 
45
33
  export class ChunksStoreManager extends BaseStoreManager {
46
34
  constructor() {
47
- super(gudhubIndexedDBManager, chunksConf.store);
35
+ super(indexedDBStoreBackendSingleton, chunksConf.store);
48
36
  }
49
37
 
50
38
 
51
39
  async getChunk(id) {
52
-
53
40
  return this.getItem(id);
54
-
55
- // return dbManager.enqueueOperation('apps', 'readonly', (store) => store.get(id));
56
41
  }
57
42
 
58
43
  async addChunk(id, chunk) {
59
44
  return this.addItem(id, chunk);
60
-
61
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
62
45
  }
63
46
 
64
47
  async putChunk(id, chunk) {
65
48
  return this.putItem(id, chunk);
66
-
67
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
68
49
  }
69
50
 
70
51
  async deleteChunk(id) {
71
52
  return this.deleteItem(id);
72
-
73
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.delete(id));
74
53
  }
75
-
76
-
77
- //use item methods from BaseStoreManager !!!!!!!
78
-
79
-
80
- // Additional methods specific to ChunksStoreManager if necessary
81
54
  }
82
55
 
83
56
  export class MergedChunksStoreManager extends BaseStoreManager {
84
57
  constructor() {
85
- super(gudhubIndexedDBManager, chunksMergeConf.store);
58
+ super(indexedDBStoreBackendSingleton, chunksMergeConf.store);
86
59
  }
87
60
 
88
61
  async get(id) {
89
-
90
62
  return this.getItem(id);
91
-
92
- // return dbManager.enqueueOperation('apps', 'readonly', (store) => store.get(id));
93
63
  }
94
64
 
95
65
  async add(id, chunk) {
96
66
  return this.addItem(id, chunk);
97
-
98
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
99
67
  }
100
68
 
101
69
  //TODO update here ok?
102
70
  async put(id, chunk) {
103
71
  return this.putItem(id, chunk);
104
-
105
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
106
72
  }
107
73
 
108
74
  async delete(id) {
109
75
  return this.deleteItem(id);
110
-
111
- // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.delete(id));
112
76
  }
113
77
  }