@gudhub/core 1.2.4-beta.18 → 1.2.4-beta.20

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.
@@ -448,7 +448,7 @@ export class IndexedDBAppServiceForWorker extends AppDataService {
448
448
  }
449
449
 
450
450
  async putApp(id, data) {
451
- return this.storeManager.addApp(id, data);
451
+ return this.storeManager.putApp(id, data);
452
452
 
453
453
  // try {
454
454
  // await this.openDatabase();
@@ -502,8 +502,8 @@ export class IndexedDBAppService extends AppDataService {
502
502
 
503
503
  // this.appRequestAndProcessWorker = new Worker('./appRequestWorker.js');
504
504
  // this.appRequestAndProcessWorker = new Worker(new URL('./appRequestWorker.js', import.meta.url));
505
- // this.appRequestAndProcessWorker = new Worker('node_modules/@gudhub/core/umd/appRequestWorker.js');
506
- this.appRequestAndProcessWorker = new Worker('override_npm/gudhub/umd/appRequestWorker.js');
505
+ this.appRequestAndProcessWorker = new Worker('node_modules/@gudhub/core/umd/appRequestWorker.js');
506
+ // this.appRequestAndProcessWorker = new Worker('override_npm/gudhub/umd/appRequestWorker.js');
507
507
  // this.appRequestAndProcessWorker = new AppRequestWorker();
508
508
 
509
509
  // new Worker(new URL('./worker.js', import.meta.url));
@@ -761,7 +761,7 @@ export class IndexedDBAppService extends AppDataService {
761
761
  }
762
762
 
763
763
  async putApp(id, data) { //TODO -> put?
764
- return this.storeManager.addApp(id, data);
764
+ return this.storeManager.putApp(id, data);
765
765
 
766
766
  // try {
767
767
  // const db = await this.openDatabase();
@@ -57,7 +57,7 @@ export class IndexedDBChunkService extends ChunkDataService {
57
57
 
58
58
 
59
59
  async putChunk(id, data) {
60
- return this.storeManager.addChunk(id, data);
60
+ return this.storeManager.putChunk(id, data);
61
61
 
62
62
  // try {
63
63
  // const db = await this.openDatabase(); //here
@@ -50,6 +50,9 @@ export class IndexedDBManager {
50
50
  // });
51
51
 
52
52
 
53
+ this.dbPrms = this.openDB();
54
+
55
+
53
56
  // this.db = this.openDB();
54
57
 
55
58
  // this
@@ -132,7 +135,14 @@ export class IndexedDBManager {
132
135
  // TODO remove outdated stores before also
133
136
 
134
137
 
135
- if (this.db) return this.db;
138
+ // if (this.db) return this.db;
139
+
140
+ let resolver, rejecter;
141
+
142
+ this.dbPrms = new Promise((resolve, reject) => {
143
+ resolver = resolve;
144
+ rejecter = reject;
145
+ });
136
146
 
137
147
  for (let storeName of this.storeNameList) {
138
148
  await this.checkAndCreateStore(storeName);
@@ -142,9 +152,9 @@ export class IndexedDBManager {
142
152
 
143
153
  let self = this;
144
154
 
145
- return new Promise((resolve, reject) => {
155
+ // return new Promise((resolve, reject) => {
146
156
  // const request = indexedDB.open(this.dbName, this.dbVersion);
147
- const request = indexedDB.open(self.dbName);
157
+ const request = indexedDB.open(this.dbName);
148
158
 
149
159
  // request.onupgradeneeded = (event) => {
150
160
  // const db = event.target.result;
@@ -159,20 +169,21 @@ export class IndexedDBManager {
159
169
  // };
160
170
 
161
171
  request.onsuccess = (event) => {
162
- self.db = event.target.result;
172
+ this.db = event.target.result;
163
173
 
164
174
  // let version = this.db.version;
165
175
 
166
- resolve(self.db);
176
+ resolver(this.db);
167
177
  };
168
178
 
169
- request.onerror = reject;
170
- });
179
+ request.onerror = rejecter;
180
+ // });
171
181
  }
172
182
 
173
183
  async executeOperation(storeName, operation) {
174
184
 
175
- await this.openDB();
185
+ //this get executed more than 1 time
186
+ await this.dbPrms;
176
187
 
177
188
  // if (
178
189
  // !this.db
@@ -21,6 +21,19 @@ export class BaseStoreManager {
21
21
  });
22
22
  }
23
23
 
24
+ async putItem(id, data) {
25
+ return new Promise(async (resolve, reject) => {
26
+
27
+ this.dbManager.executeOperation(this.storeName, (store) => {
28
+ const request = store.put(data, id);
29
+
30
+ request.onsuccess = resolve;
31
+ request.onerror = reject;
32
+ });
33
+
34
+ });
35
+ }
36
+
24
37
  async hasItem(id) {
25
38
 
26
39
  // debugger
@@ -25,6 +25,12 @@ export class AppStoreManager extends BaseStoreManager {
25
25
  // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
26
26
  }
27
27
 
28
+ async putApp(id, data) {
29
+ return this.putItem(id, data);
30
+
31
+ // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
32
+ }
33
+
28
34
  async hasApp(id) {
29
35
  return this.hasItem(id);
30
36
  }
@@ -57,6 +63,12 @@ export class ChunksStoreManager extends BaseStoreManager {
57
63
  // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
58
64
  }
59
65
 
66
+ async putChunk(id, chunk) {
67
+ return this.putItem(id, chunk);
68
+
69
+ // return dbManager.enqueueOperation('apps', 'readwrite', (store) => store.add(app));
70
+ }
71
+
60
72
  async deleteChunk(id) {
61
73
  return this.deleteItem(id);
62
74
 
@@ -31,4 +31,107 @@ export let objectAssignWithoutOverride = (target, ...sourceList) => {
31
31
  if (desc.enumerable) Object.defineProperty(target, key, desc);
32
32
  }
33
33
  }
34
- };
34
+ };
35
+
36
+
37
+
38
+ // // Base classes
39
+ // class IndexedDBMixin {
40
+ // constructor(dbName, version) {
41
+ // this.dbName = dbName;
42
+ // this.version = version;
43
+ // this.dbPromise = this.openConnection();
44
+ // }
45
+
46
+ // openConnection() {
47
+ // return new Promise((resolve, reject) => {
48
+ // const request = indexedDB.open(this.dbName, this.version);
49
+
50
+ // request.onupgradeneeded = (event) => {
51
+ // const db = event.target.result;
52
+ // if (!db.objectStoreNames.contains('storeName')) {
53
+ // db.createObjectStore('storeName', { keyPath: 'id' });
54
+ // }
55
+ // };
56
+
57
+ // request.onsuccess = (event) => resolve(event.target.result);
58
+ // request.onerror = (event) => reject(event.target.error);
59
+ // });
60
+ // }
61
+
62
+ // async getDB() {
63
+ // return await this.dbPromise;
64
+ // }
65
+
66
+ // async addRecord(storeName, record) {
67
+ // const db = await this.getDB();
68
+ // return new Promise((resolve, reject) => {
69
+ // const transaction = db.transaction(storeName, 'readwrite');
70
+ // const store = transaction.objectStore(storeName);
71
+ // const request = store.add(record);
72
+
73
+ // request.onsuccess = () => resolve(request.result);
74
+ // request.onerror = () => reject(request.error);
75
+ // });
76
+ // }
77
+
78
+ // async getRecord(storeName, key) {
79
+ // const db = await this.getDB();
80
+ // return new Promise((resolve, reject) => {
81
+ // const transaction = db.transaction(storeName, 'readonly');
82
+ // const store = transaction.objectStore(storeName);
83
+ // const request = store.get(key);
84
+
85
+ // request.onsuccess = () => resolve(request.result);
86
+ // request.onerror = () => reject(request.error);
87
+ // });
88
+ // }
89
+ // }
90
+
91
+ // class LoggingMixin {
92
+ // log(message) {
93
+ // console.log(message);
94
+ // }
95
+
96
+ // error(message) {
97
+ // console.error(message);
98
+ // }
99
+ // }
100
+
101
+ // // Mixin function
102
+ // function applyMixins(targetClass, baseClasses) {
103
+ // baseClasses.forEach(baseClass => {
104
+ // Object.getOwnPropertyDescriptors(baseClass.prototype).forEach(descriptor => {
105
+ // Object.defineProperty(targetClass.prototype, descriptor[0], descriptor[1]);
106
+ // });
107
+ // });
108
+ // }
109
+
110
+ // // Combined class
111
+ // class EnhancedIndexedDB extends IndexedDBMixin {
112
+ // constructor(dbName, version) {
113
+ // super(dbName, version);
114
+ // }
115
+ // }
116
+
117
+ // // Apply mixins
118
+ // applyMixins(EnhancedIndexedDB, [LoggingMixin]);
119
+
120
+ // // Usage example
121
+ // const dbFacade = new EnhancedIndexedDB('myDatabase', 1);
122
+
123
+ // dbFacade.addRecord('storeName', { id: 1, name: 'Sample' })
124
+ // .then((id) => {
125
+ // dbFacade.log('Record added with id: ' + id);
126
+ // })
127
+ // .catch((error) => {
128
+ // dbFacade.error('Error adding record: ' + error);
129
+ // });
130
+
131
+ // dbFacade.getRecord('storeName', 1)
132
+ // .then((record) => {
133
+ // dbFacade.log('Record retrieved: ' + JSON.stringify(record));
134
+ // })
135
+ // .catch((error) => {
136
+ // dbFacade.error('Error retrieving record: ' + error);
137
+ // });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gudhub/core",
3
- "version": "1.2.4-beta.18",
3
+ "version": "1.2.4-beta.20",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {