@memberjunction/global 0.9.147 → 0.9.152

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.
@@ -15,10 +15,25 @@ export declare class ObjectCache {
15
15
  * Remove all entries from the object cache
16
16
  */
17
17
  Clear(): void;
18
+ /**
19
+ * Add a new object to the cache. If the key already exists, an exception is thrown
20
+ * @param key
21
+ * @param object
22
+ */
18
23
  Add<T>(key: string, object: T): void;
24
+ /**
25
+ * Replace an existing object in the cache with a new one. If the key does not exist, the new object is added
26
+ * @param key
27
+ * @param object
28
+ */
29
+ Replace<T>(key: string, object: T): void;
30
+ /**
31
+ * Remove an object from the cache based on the key
32
+ * @param key
33
+ */
19
34
  Remove(key: string): void;
20
35
  /**
21
- * Generic method that returns an object from the cache based on the key and only if it matches the type provided in the generic
36
+ * Returns an object from the cache based on the key and only if it matches the type provided in the generic
22
37
  * @param key
23
38
  * @returns
24
39
  */
@@ -25,27 +25,52 @@ class ObjectCache {
25
25
  Clear() {
26
26
  this._entries = []; // set to a blank
27
27
  }
28
+ /**
29
+ * Add a new object to the cache. If the key already exists, an exception is thrown
30
+ * @param key
31
+ * @param object
32
+ */
28
33
  Add(key, object) {
29
- const entry = new ObjectCacheEntry(key, object);
30
- this._entries.push(entry);
34
+ // make sure that if we have the key already we throw an exception
35
+ const idx = this._entries.findIndex((i) => i.key.trim().toLowerCase() === key.trim().toLowerCase());
36
+ if (idx >= 0) {
37
+ throw new Error(`An object with the key ${key} already exists in the cache. Remove it first before adding a new one.`);
38
+ }
39
+ else {
40
+ const entry = new ObjectCacheEntry(key, object);
41
+ this._entries.push(entry);
42
+ }
31
43
  }
44
+ /**
45
+ * Replace an existing object in the cache with a new one. If the key does not exist, the new object is added
46
+ * @param key
47
+ * @param object
48
+ */
49
+ Replace(key, object) {
50
+ this.Remove(key); // remove the existing one if it exists
51
+ this.Add(key, object); // add the new one
52
+ }
53
+ /**
54
+ * Remove an object from the cache based on the key
55
+ * @param key
56
+ */
32
57
  Remove(key) {
33
58
  // first, see if we get a match for the index
34
59
  const idx = this._entries.findIndex((i) => i.key.trim().toLowerCase() === key.trim().toLowerCase());
35
- if (idx && idx >= 0) {
60
+ if (idx >= 0) {
36
61
  // now remove it
37
62
  this._entries.splice(idx, 1);
38
63
  }
39
64
  }
40
65
  /**
41
- * Generic method that returns an object from the cache based on the key and only if it matches the type provided in the generic
66
+ * Returns an object from the cache based on the key and only if it matches the type provided in the generic
42
67
  * @param key
43
68
  * @returns
44
69
  */
45
70
  Find(key) {
46
71
  // first, see if we get a match for the index
47
72
  const idx = this._entries.findIndex((i) => i.key.trim().toLowerCase() === key.trim().toLowerCase());
48
- if (idx && idx >= 0) {
73
+ if (idx >= 0) {
49
74
  return this._entries[idx].object;
50
75
  }
51
76
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectCache.js","sourceRoot":"","sources":["../src/ObjectCache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,gBAAgB;IAIzB,YAAa,GAAW,EAAE,MAAS;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;CACJ;AARD,4CAQC;AAED;;GAEG;AACH,MAAa,WAAW;IAAxB;QACI,6DAA6D;QACrD,aAAQ,GAAuB,EAAE,CAAC,CAAC,kBAAkB;IAoCjE,CAAC;IAlCG;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,iBAAiB;IACzC,CAAC;IAEM,GAAG,CAAI,GAAW,EAAE,MAAS;QAChC,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,GAAW;QACrB,6CAA6C;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QACrH,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YAClB,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAI,GAAW;QACtB,6CAA6C;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QACrH,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAW,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAtCD,kCAsCC"}
1
+ {"version":3,"file":"ObjectCache.js","sourceRoot":"","sources":["../src/ObjectCache.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,gBAAgB;IAIzB,YAAa,GAAW,EAAE,MAAS;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;CACJ;AARD,4CAQC;AAED;;GAEG;AACH,MAAa,WAAW;IAAxB;QACI,6DAA6D;QACrD,aAAQ,GAAuB,EAAE,CAAC,CAAC,kBAAkB;IA8DjE,CAAC;IA5DG;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,iBAAiB;IACzC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAI,GAAW,EAAE,MAAS;QAChC,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QACrH,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,wEAAwE,CAAC,CAAC;QAC3H,CAAC;aACI,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAI,GAAW,EAAE,MAAS;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAuC;QACzD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB;IAC7C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAW;QACrB,6CAA6C;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QACrH,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACX,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAI,GAAW;QACtB,6CAA6C;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QACrH,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAW,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAhED,kCAgEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/global",
3
- "version": "0.9.147",
3
+ "version": "0.9.152",
4
4
  "description": "MemberJunction: Global Object - Needed for ALL other MJ components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",