@memberjunction/global 0.9.100 → 0.9.102

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.
@@ -17,12 +17,22 @@ class ClassFactory {
17
17
  }
18
18
  Register(baseClass, subClass, key = null, priority = 0) {
19
19
  if (baseClass && subClass) {
20
- let reg = new ClassRegistration();
21
- reg.BaseClass = baseClass;
22
- reg.SubClass = subClass;
23
- reg.Key = key;
24
- reg.Priority = priority;
25
- this._registrations.push(reg);
20
+ // get all of hte existing registrations for this baseClass and key
21
+ const registrations = this.GetAllRegistrations(baseClass, key);
22
+ // validate to make sure that the comabintion of base class and key for the provided priority # is not already registered, if it is, then throw an exception
23
+ const existing = registrations.filter(r => r.Priority === priority);
24
+ if (existing && existing.length > 0) {
25
+ throw new Error(`ClassFactory.Register: Cannot register class ${subClass.name} for base class ${baseClass.name} and key ${key} because a registration (${existing[0].SubClass?.name}) already exists for that combination with priority ${priority}`);
26
+ }
27
+ else {
28
+ // this combination of baseclass/key/priority is NOT already registered.
29
+ let reg = new ClassRegistration();
30
+ reg.BaseClass = baseClass;
31
+ reg.SubClass = subClass;
32
+ reg.Key = key;
33
+ reg.Priority = priority;
34
+ this._registrations.push(reg);
35
+ }
26
36
  }
27
37
  }
28
38
  CreateInstance(baseClass, key = null, ...params) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClassFactory.js","sourceRoot":"","sources":["../src/ClassFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClassFactory.js","sourceRoot":"","sources":["../src/ClassFactory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/global",
3
- "version": "0.9.100",
3
+ "version": "0.9.102",
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",