@jacraig/request 1.0.8 → 1.1.0

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 (30) hide show
  1. package/lib/Request.cjs.js +228 -54
  2. package/lib/Request.cjs.js.map +1 -1
  3. package/lib/Request.esm.js +228 -55
  4. package/lib/Request.esm.js.map +1 -1
  5. package/lib/Request.umd.js +228 -54
  6. package/lib/Request.umd.js.map +1 -1
  7. package/lib/Request.umd.min.js +1 -1
  8. package/lib/Request.umd.min.js.map +1 -1
  9. package/lib/declarations/AsyncFunction.d.ts +2 -0
  10. package/lib/declarations/AsyncFunction.d.ts.map +1 -0
  11. package/lib/declarations/Cache.d.ts +9 -30
  12. package/lib/declarations/Cache.d.ts.map +1 -1
  13. package/lib/declarations/CacheEntryOptions.d.ts +6 -0
  14. package/lib/declarations/CacheEntryOptions.d.ts.map +1 -0
  15. package/lib/declarations/CacheProvider.d.ts +15 -0
  16. package/lib/declarations/CacheProvider.d.ts.map +1 -0
  17. package/lib/declarations/{Database.d.ts → DatabaseConnection.d.ts} +2 -1
  18. package/lib/declarations/DatabaseConnection.d.ts.map +1 -0
  19. package/lib/declarations/InMemoryStorageProvider.d.ts +14 -0
  20. package/lib/declarations/InMemoryStorageProvider.d.ts.map +1 -0
  21. package/lib/declarations/IndexedDbStorageProvider.d.ts +15 -0
  22. package/lib/declarations/IndexedDbStorageProvider.d.ts.map +1 -0
  23. package/lib/declarations/Request.d.ts +12 -2
  24. package/lib/declarations/Request.d.ts.map +1 -1
  25. package/lib/declarations/StorageEntry.d.ts +7 -0
  26. package/lib/declarations/StorageEntry.d.ts.map +1 -0
  27. package/lib/declarations/StorageProvider.d.ts +11 -0
  28. package/lib/declarations/StorageProvider.d.ts.map +1 -0
  29. package/package.json +8 -2
  30. package/lib/declarations/Database.d.ts.map +0 -1
@@ -1,5 +1,57 @@
1
1
  import { Logger } from '@jacraig/woodchuck';
2
2
 
3
+ class Cache {
4
+ constructor(provider) {
5
+ this.storageProvider = provider;
6
+ }
7
+ async set(key, value, entryOptions = { expirationTime: 0, slidingExpirationTime: 0, sliding: false }) {
8
+ Logger.debug("Setting object in cache: ", { "key": key, "value": value, "entryOptions": entryOptions });
9
+ await this.storageProvider.add(value, key, entryOptions);
10
+ }
11
+ async get(key) {
12
+ Logger.debug("Getting object from cache: " + key);
13
+ await this.storageProvider.compact();
14
+ let returnValue = await this.storageProvider.get(key);
15
+ if (returnValue == null) {
16
+ return returnValue;
17
+ }
18
+ let entryOptions = await this.storageProvider.getOptions(key);
19
+ if (entryOptions.sliding) {
20
+ await this.set(key, returnValue, {
21
+ expirationTime: new Date().getTime() + entryOptions.slidingExpirationTime,
22
+ slidingExpirationTime: entryOptions.slidingExpirationTime,
23
+ sliding: true
24
+ });
25
+ }
26
+ return returnValue;
27
+ }
28
+ async getOrCreate(key, fallBack, options = { expirationTime: 0, slidingExpirationTime: 0, sliding: false }) {
29
+ Logger.debug("Getting object from cache or creating it: ", { "key": key });
30
+ await this.storageProvider.compact();
31
+ let returnValue = await this.storageProvider.getOrCreate(key, fallBack, options);
32
+ if (returnValue == null) {
33
+ return returnValue;
34
+ }
35
+ let entryOptions = await this.storageProvider.getOptions(key);
36
+ if (entryOptions.sliding) {
37
+ await this.set(key, returnValue, {
38
+ expirationTime: new Date().getTime() + entryOptions.slidingExpirationTime,
39
+ slidingExpirationTime: entryOptions.slidingExpirationTime,
40
+ sliding: true
41
+ });
42
+ }
43
+ return returnValue;
44
+ }
45
+ async remove(key) {
46
+ Logger.debug("Removing object from cache: " + key);
47
+ await this.storageProvider.remove(key);
48
+ }
49
+ async clear() {
50
+ Logger.debug("Clearing cache");
51
+ await this.storageProvider.clear();
52
+ }
53
+ }
54
+
3
55
  class DatabaseConnection {
4
56
  constructor(dbName, tables, version) {
5
57
  this.dbName = dbName;
@@ -39,6 +91,10 @@ class DatabaseConnection {
39
91
  });
40
92
  }
41
93
  add(table, obj, key) {
94
+ if (table == null || key == null) {
95
+ Logger.error('Table and key must be specified to add an object to the database');
96
+ return Promise.reject(new Error('Table and key must be specified to add an object to the database'));
97
+ }
42
98
  return new Promise((resolve, reject) => {
43
99
  if (!this.database) {
44
100
  Logger.error('Database connection is not open');
@@ -57,7 +113,34 @@ class DatabaseConnection {
57
113
  };
58
114
  });
59
115
  }
116
+ clear(table) {
117
+ if (table == null) {
118
+ Logger.error('Table must be specified to clear the database');
119
+ return Promise.reject(new Error('Table must be specified to clear the database'));
120
+ }
121
+ return new Promise((resolve, reject) => {
122
+ if (!this.database) {
123
+ Logger.error('Database connection is not open');
124
+ reject(new Error('Database connection is not open'));
125
+ return;
126
+ }
127
+ const transaction = this.database.transaction(table, 'readwrite');
128
+ const objectStore = transaction.objectStore(table);
129
+ const request = objectStore.clear();
130
+ request.onsuccess = () => {
131
+ resolve();
132
+ };
133
+ request.onerror = (ev) => {
134
+ Logger.error('Failed to clear the database: ', ev.target.error);
135
+ reject(new Error('Failed to clear the database: ' + ev.target.error));
136
+ };
137
+ });
138
+ }
60
139
  remove(table, key) {
140
+ if (table == null || key == null) {
141
+ Logger.error('Table and key must be specified to remove an object from the database');
142
+ return Promise.reject(new Error('Table and key must be specified to remove an object from the database'));
143
+ }
61
144
  return new Promise((resolve, reject) => {
62
145
  if (!this.database) {
63
146
  Logger.error('Database connection is not open');
@@ -77,6 +160,10 @@ class DatabaseConnection {
77
160
  });
78
161
  }
79
162
  getByKey(table, key) {
163
+ if (table == null || key == null) {
164
+ Logger.error('Table and key must be specified to get an object from the database');
165
+ return Promise.reject(new Error('Table and key must be specified to get an object from the database'));
166
+ }
80
167
  return new Promise((resolve, reject) => {
81
168
  if (!this.database) {
82
169
  Logger.error('Database connection is not open');
@@ -96,6 +183,10 @@ class DatabaseConnection {
96
183
  });
97
184
  }
98
185
  getKeys(table) {
186
+ if (table == null) {
187
+ Logger.error('Table must be specified to get keys from the database');
188
+ return Promise.reject(new Error('Table must be specified to get keys from the database'));
189
+ }
99
190
  return new Promise((resolve, reject) => {
100
191
  if (!this.database) {
101
192
  Logger.error('Database connection is not open');
@@ -115,6 +206,10 @@ class DatabaseConnection {
115
206
  });
116
207
  }
117
208
  get(table, query) {
209
+ if (table == null || query == null) {
210
+ Logger.error('Table and query must be specified to get an object from the database');
211
+ return Promise.reject(new Error('Table and query must be specified to get an object from the database'));
212
+ }
118
213
  return new Promise((resolve, reject) => {
119
214
  if (!this.database) {
120
215
  Logger.error('Database connection is not open');
@@ -134,6 +229,10 @@ class DatabaseConnection {
134
229
  });
135
230
  }
136
231
  getAll(table, query) {
232
+ if (table == null) {
233
+ Logger.error('Table must be specified to get objects from the database');
234
+ return Promise.reject(new Error('Table must be specified to get objects from the database'));
235
+ }
137
236
  return new Promise((resolve, reject) => {
138
237
  if (!this.database) {
139
238
  Logger.error('Database connection is not open');
@@ -156,16 +255,14 @@ class DatabaseConnection {
156
255
 
157
256
  class IndexedDbStorageProvider {
158
257
  constructor() {
258
+ this.storage = new Map();
159
259
  this.database = new DatabaseConnection("cacheStore", ["cache", "cacheEntryOptions"], 1);
160
260
  }
161
261
  async clear() {
262
+ this.storage.clear();
162
263
  await this.database.openDatabase();
163
- let cacheEntryOptions = await this.database.getAll("cacheEntryOptions");
164
- let cacheEntries = await this.database.getAll("cache");
165
- for (let i = 0; i < cacheEntryOptions.length; i++) {
166
- let cacheEntry = cacheEntries[i];
167
- await this.remove(cacheEntry.key);
168
- }
264
+ this.database.clear("cache");
265
+ this.database.clear("cacheEntryOptions");
169
266
  return this;
170
267
  }
171
268
  async getOptions(key) {
@@ -173,12 +270,14 @@ class IndexedDbStorageProvider {
173
270
  return this.database.getByKey("cacheEntryOptions", key);
174
271
  }
175
272
  async add(obj, key, options) {
273
+ this.storage.has(key) ? this.storage.get(key).value = obj : this.storage.set(key, { promise: Promise.resolve(obj), value: obj, options: options });
176
274
  await this.database.openDatabase();
177
275
  await this.database.add("cache", obj, key);
178
276
  await this.database.add("cacheEntryOptions", options, key);
179
277
  return this;
180
278
  }
181
279
  async remove(key) {
280
+ this.storage.delete(key);
182
281
  await this.database.openDatabase();
183
282
  await this.database.remove("cache", key);
184
283
  await this.database.remove("cacheEntryOptions", key);
@@ -188,62 +287,119 @@ class IndexedDbStorageProvider {
188
287
  await this.database.openDatabase();
189
288
  return this.database.getByKey("cache", key);
190
289
  }
290
+ async getOrCreate(key, fallBack, options) {
291
+ let value = await this.get(key);
292
+ if (value != null) {
293
+ return value;
294
+ }
295
+ if (this.storage.has(key)) {
296
+ let entry = this.storage.get(key);
297
+ if (entry?.value !== undefined) {
298
+ return entry.value;
299
+ }
300
+ return entry?.promise;
301
+ }
302
+ const promise = (async () => {
303
+ const value = await fallBack();
304
+ await this.add(value, key, options);
305
+ return value;
306
+ })();
307
+ this.storage.set(key, { promise: promise, value: undefined, options: options });
308
+ return promise;
309
+ }
191
310
  async compact() {
192
311
  await this.database.openDatabase();
193
- let cacheEntryOptions = await this.database.getAll("cacheEntryOptions");
194
- let cacheEntries = await this.database.getAll("cache");
312
+ let cacheKeys = await this.database.getKeys("cache");
195
313
  let now = new Date().getTime();
196
- for (let i = 0; i < cacheEntryOptions.length; i++) {
197
- let cacheEntryOption = cacheEntryOptions[i];
198
- let cacheEntry = cacheEntries[i];
199
- if (cacheEntryOption.expirationTime == 0) {
314
+ for (let i = 0; i < cacheKeys.length; i++) {
315
+ let key = cacheKeys[i];
316
+ let cacheEntryOption = await this.database.getByKey("cacheEntryOptions", key);
317
+ if (cacheEntryOption.expirationTime == 0 || cacheEntryOption.expirationTime >= now) {
200
318
  continue;
201
319
  }
202
- if (cacheEntryOption.expirationTime < now) {
203
- await this.remove(cacheEntry.key);
204
- }
320
+ this.storage.delete(key);
321
+ await this.database.remove("cache", key);
322
+ await this.database.remove("cacheEntryOptions", key);
205
323
  }
206
324
  return this;
207
325
  }
208
326
  }
209
- class Cache {
327
+
328
+ class CacheProvider {
210
329
  constructor() { }
211
- static configure(storageProvider = new IndexedDbStorageProvider()) {
212
- this.storageProvider ??= globalThis.StorageProvider || storageProvider || new IndexedDbStorageProvider();
213
- globalThis.StorageProvider = this.storageProvider;
330
+ static configure(name = "Default", storageProvider = new IndexedDbStorageProvider()) {
331
+ Logger.debug("Configuring cache with storage provider: ", { "name": name, "storageProvider": storageProvider });
332
+ this.storageProviders ??= globalThis.StorageProviders ?? {};
333
+ if (this.storageProviders[name] != null) {
334
+ Logger.debug("Cache already configured with storage provider: ", { "name": name });
335
+ return this.storageProviders;
336
+ }
337
+ this.storageProviders[name] = new Cache(storageProvider ?? new IndexedDbStorageProvider());
338
+ globalThis.StorageProviders = this.storageProviders;
339
+ return this.storageProviders;
340
+ }
341
+ static getProvider(name = "Default") {
342
+ let Providers = this.configure(name);
343
+ if (Providers == undefined) {
344
+ return new Cache(new IndexedDbStorageProvider());
345
+ }
346
+ return Providers[name] ?? new Cache(new IndexedDbStorageProvider());
214
347
  }
215
- static async set(key, value, entryOptions = { expirationTime: 0, slidingExpirationTime: 0, sliding: false }) {
216
- Logger.debug("Setting object in cache: ", { "key": key, "value": value, "entryOptions": entryOptions });
217
- this.configure();
218
- await this.storageProvider.add(value, key, entryOptions);
348
+ }
349
+
350
+ class InMemoryStorageProvider {
351
+ constructor() {
352
+ this.storage = new Map();
219
353
  }
220
- static async get(key) {
221
- Logger.debug("Getting object from cache: " + key);
222
- this.configure();
223
- await this.storageProvider.compact();
224
- let returnValue = await this.storageProvider.get(key);
225
- if (returnValue == null) {
226
- return returnValue;
354
+ add(obj, key, options) {
355
+ this.storage.set(key, { promise: Promise.resolve(obj), value: obj, options: options });
356
+ return Promise.resolve(this);
357
+ }
358
+ remove(key) {
359
+ this.storage.delete(key);
360
+ return Promise.resolve(this);
361
+ }
362
+ get(key) {
363
+ if (!this.storage.has(key)) {
364
+ return Promise.resolve(undefined);
227
365
  }
228
- let entryOptions = await this.storageProvider.getOptions(key);
229
- if (entryOptions.sliding) {
230
- await this.set(key, returnValue, {
231
- expirationTime: new Date().getTime() + entryOptions.slidingExpirationTime,
232
- slidingExpirationTime: entryOptions.slidingExpirationTime,
233
- sliding: true
234
- });
366
+ const entry = this.storage.get(key);
367
+ if (entry == undefined) {
368
+ return Promise.resolve(undefined);
235
369
  }
236
- return returnValue;
370
+ if (entry.value != undefined) {
371
+ return Promise.resolve(entry.value);
372
+ }
373
+ return entry.promise;
237
374
  }
238
- static async remove(key) {
239
- Logger.debug("Removing object from cache: " + key);
240
- this.configure();
241
- await this.storageProvider.remove(key);
375
+ async getOrCreate(key, fallBack, options) {
376
+ if (this.storage.has(key)) {
377
+ return this.get(key);
378
+ }
379
+ const promise = (async () => {
380
+ const value = await fallBack();
381
+ this.storage.get(key).value = value;
382
+ return value;
383
+ })();
384
+ this.storage.set(key, { promise: promise, value: undefined, options: options });
385
+ return promise;
386
+ }
387
+ getOptions(key) {
388
+ return Promise.resolve(this.storage.get(key).options);
389
+ }
390
+ compact() {
391
+ const now = new Date().getTime();
392
+ for (const [key, entry] of this.storage) {
393
+ if (entry.options.expirationTime == 0 || entry.options.expirationTime >= now) {
394
+ continue;
395
+ }
396
+ this.remove(key);
397
+ }
398
+ return Promise.resolve(this);
242
399
  }
243
- static async clear() {
244
- Logger.debug("Clearing cache");
245
- this.configure();
246
- await this.storageProvider.clear();
400
+ clear() {
401
+ this.storage.clear();
402
+ return Promise.resolve(this);
247
403
  }
248
404
  }
249
405
 
@@ -252,6 +408,11 @@ class CancellationToken {
252
408
  this.canceled = false;
253
409
  }
254
410
  }
411
+ var CacheNames;
412
+ (function (CacheNames) {
413
+ CacheNames["Default"] = "Default";
414
+ CacheNames["InMemory"] = "InMemory";
415
+ })(CacheNames || (CacheNames = {}));
255
416
  class Request {
256
417
  constructor(options) {
257
418
  this.options = {
@@ -265,12 +426,15 @@ class Request {
265
426
  error: (reason) => { Logger.error("Request error from " + this.options.url + ":", reason); },
266
427
  retry: (attempt) => { Logger.debug("Request retry on " + this.options.url + ":", { "attempt": attempt }); },
267
428
  storageMode: StorageMode.NetworkFirst,
429
+ cache: CacheNames.Default,
268
430
  cacheKey: "",
269
431
  timeout: 60000,
270
432
  retryAttempts: 3,
271
433
  retryDelay: 1000
272
434
  };
273
435
  this.abortController = null;
436
+ CacheProvider.configure(CacheNames.Default, new IndexedDbStorageProvider());
437
+ CacheProvider.configure(CacheNames.InMemory, new InMemoryStorageProvider());
274
438
  this.options = { ...this.options, ...options };
275
439
  }
276
440
  static get(url, data) {
@@ -345,6 +509,11 @@ class Request {
345
509
  this.options.storageMode = storageMode;
346
510
  return this;
347
511
  }
512
+ withCache(cacheName, cache = new IndexedDbStorageProvider()) {
513
+ CacheProvider.configure(cacheName, cache);
514
+ this.options.cache = cacheName;
515
+ return this;
516
+ }
348
517
  withCacheKey(cacheKey) {
349
518
  this.options.cacheKey = cacheKey;
350
519
  return this;
@@ -370,9 +539,10 @@ class Request {
370
539
  return this;
371
540
  }
372
541
  async send() {
373
- const { authenticationProvider, method, url, data, headers, credentials, serializer, parser, success, error, storageMode, cacheKey, timeout, retryAttempts, retryDelay, retry, cancellationToken } = this.options;
542
+ const { authenticationProvider, method, url, data, headers, credentials, serializer, parser, success, error, storageMode, cache, cacheKey, timeout, retryAttempts, retryDelay, retry, cancellationToken } = this.options;
374
543
  const abortController = new AbortController();
375
544
  this.abortController = abortController;
545
+ let cacheUsing = CacheProvider.getProvider(cache);
376
546
  let attempts = 0;
377
547
  let lastError = null;
378
548
  let successMethod = success || ((response) => { Logger.debug("Request response from " + url + ":", response); });
@@ -381,18 +551,15 @@ class Request {
381
551
  let parserMethod = parser || ((response) => response.json());
382
552
  let retryMethod = retry || ((attempt) => { Logger.debug("Request retry on " + url + ":", { "attempt": attempt }); });
383
553
  const sendRequest = async () => {
384
- if (storageMode === StorageMode.StorageFirst || storageMode === StorageMode.StorageAndUpdate) {
385
- const cachedValue = await Cache.get(cacheKey || "");
554
+ if (storageMode === StorageMode.StorageAndUpdate) {
555
+ const cachedValue = await cacheUsing.get(cacheKey || "");
386
556
  if (cachedValue !== undefined) {
387
557
  successMethod(cachedValue);
388
- if (storageMode === StorageMode.StorageFirst) {
389
- return cachedValue;
390
- }
391
558
  }
392
559
  }
393
560
  if (!navigator.onLine) {
394
561
  if (storageMode === StorageMode.NetworkFirst) {
395
- const cachedValue = await Cache.get(cacheKey || "");
562
+ const cachedValue = await cacheUsing.get(cacheKey || "");
396
563
  if (cachedValue !== undefined) {
397
564
  successMethod(cachedValue);
398
565
  return cachedValue;
@@ -422,7 +589,7 @@ class Request {
422
589
  const parsedResponse = await parserMethod(response);
423
590
  successMethod(parsedResponse);
424
591
  if (storageMode !== StorageMode.NetworkOnly) {
425
- await Cache.set(cacheKey || "", parsedResponse);
592
+ await cacheUsing.set(cacheKey || "", parsedResponse);
426
593
  }
427
594
  return parsedResponse;
428
595
  }
@@ -436,6 +603,9 @@ class Request {
436
603
  }
437
604
  if (attempts < (retryAttempts || 0)) {
438
605
  ++attempts;
606
+ if (storageMode !== StorageMode.NetworkOnly) {
607
+ cacheUsing.remove(cacheKey || "");
608
+ }
439
609
  await new Promise(resolve => setTimeout(resolve, retryDelay));
440
610
  retryMethod(attempts);
441
611
  return sendRequest();
@@ -443,6 +613,9 @@ class Request {
443
613
  errorMethod(lastError);
444
614
  return Promise.reject(lastError);
445
615
  };
616
+ if (storageMode === StorageMode.StorageFirst) {
617
+ return cacheUsing.getOrCreate(cacheKey || "", sendRequest);
618
+ }
446
619
  return sendRequest();
447
620
  }
448
621
  async handleTimeout(timeout) {
@@ -463,5 +636,5 @@ var StorageMode;
463
636
  StorageMode[StorageMode["StorageAndUpdate"] = 3] = "StorageAndUpdate";
464
637
  })(StorageMode || (StorageMode = {}));
465
638
 
466
- export { Cache, CancellationToken, IndexedDbStorageProvider, Request, StorageMode };
639
+ export { Cache, CacheNames, CancellationToken, InMemoryStorageProvider, IndexedDbStorageProvider, Request, StorageMode };
467
640
  //# sourceMappingURL=Request.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Request.esm.js","sources":["../src/Database.ts","../src/Cache.ts","../src/Request.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Request.esm.js","sources":["../src/Cache.ts","../src/DatabaseConnection.ts","../src/IndexedDbStorageProvider.ts","../src/CacheProvider.ts","../src/InMemoryStorageProvider.ts","../src/Request.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}