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