@xyo-network/module-factory-locator 2.98.5 → 2.99.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 (42) hide show
  1. package/dist/browser/ModuleFactoryLocator.d.cts +6 -10
  2. package/dist/browser/ModuleFactoryLocator.d.cts.map +1 -1
  3. package/dist/browser/ModuleFactoryLocator.d.mts +6 -10
  4. package/dist/browser/ModuleFactoryLocator.d.mts.map +1 -1
  5. package/dist/browser/ModuleFactoryLocator.d.ts +6 -10
  6. package/dist/browser/ModuleFactoryLocator.d.ts.map +1 -1
  7. package/dist/browser/index.cjs +22 -53
  8. package/dist/browser/index.cjs.map +1 -1
  9. package/dist/browser/index.d.cts +1 -0
  10. package/dist/browser/index.d.cts.map +1 -1
  11. package/dist/browser/index.d.mts +1 -0
  12. package/dist/browser/index.d.mts.map +1 -1
  13. package/dist/browser/index.d.ts +1 -0
  14. package/dist/browser/index.d.ts.map +1 -1
  15. package/dist/browser/index.js +24 -55
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/browser/standardCreatableFactories.d.cts.map +1 -1
  18. package/dist/browser/standardCreatableFactories.d.mts.map +1 -1
  19. package/dist/browser/standardCreatableFactories.d.ts.map +1 -1
  20. package/dist/node/ModuleFactoryLocator.d.cts +6 -10
  21. package/dist/node/ModuleFactoryLocator.d.cts.map +1 -1
  22. package/dist/node/ModuleFactoryLocator.d.mts +6 -10
  23. package/dist/node/ModuleFactoryLocator.d.mts.map +1 -1
  24. package/dist/node/ModuleFactoryLocator.d.ts +6 -10
  25. package/dist/node/ModuleFactoryLocator.d.ts.map +1 -1
  26. package/dist/node/index.cjs +25 -54
  27. package/dist/node/index.cjs.map +1 -1
  28. package/dist/node/index.d.cts +1 -0
  29. package/dist/node/index.d.cts.map +1 -1
  30. package/dist/node/index.d.mts +1 -0
  31. package/dist/node/index.d.mts.map +1 -1
  32. package/dist/node/index.d.ts +1 -0
  33. package/dist/node/index.d.ts.map +1 -1
  34. package/dist/node/index.js +24 -55
  35. package/dist/node/index.js.map +1 -1
  36. package/dist/node/standardCreatableFactories.d.cts.map +1 -1
  37. package/dist/node/standardCreatableFactories.d.mts.map +1 -1
  38. package/dist/node/standardCreatableFactories.d.ts.map +1 -1
  39. package/package.json +14 -17
  40. package/src/ModuleFactoryLocator.ts +9 -34
  41. package/src/index.ts +1 -0
  42. package/src/standardCreatableFactories.ts +12 -24
@@ -1,4 +1,4 @@
1
- import { AttachableModuleInstance, CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
1
+ import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
2
  import { Schema } from '@xyo-network/payload-model';
3
3
  /**
4
4
  * A class which encapsulates the Service Locator Pattern for Module Factories
@@ -19,19 +19,15 @@ export declare class ModuleFactoryLocator {
19
19
  locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
20
20
  /**
21
21
  * Registers a single module factory (with optional tags) with the locator
22
- * @param additional Additional module factories to register
22
+ * @param factory The factory to register
23
+ * @param labels The labels for the module factory
23
24
  */
24
- register(mod: CreatableModuleFactory, labels?: Labels): this;
25
+ register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
25
26
  /**
26
27
  * Registers multiple module factories with the locator
27
- * @param additional Additional module factories to register
28
- */
29
- registerMany(mods: CreatableModuleFactory[]): this;
30
- /**
31
- * Registers a single module factory (with optional tags) with the locator & a specific schema
32
- * @param additional Additional module factories to register
28
+ * @param factories The factories to register
33
29
  */
34
- registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, labels?: Labels, primary?: boolean): this;
30
+ registerMany(factories: CreatableModuleFactory[]): this;
35
31
  /**
36
32
  * Tries to locate a module factory that matches the supplied schema and labels
37
33
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EACP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5D;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOlD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,UAAQ,GACd,IAAI;IAcP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAK9G;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -1,4 +1,4 @@
1
- import { AttachableModuleInstance, CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
1
+ import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
2
  import { Schema } from '@xyo-network/payload-model';
3
3
  /**
4
4
  * A class which encapsulates the Service Locator Pattern for Module Factories
@@ -19,19 +19,15 @@ export declare class ModuleFactoryLocator {
19
19
  locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
20
20
  /**
21
21
  * Registers a single module factory (with optional tags) with the locator
22
- * @param additional Additional module factories to register
22
+ * @param factory The factory to register
23
+ * @param labels The labels for the module factory
23
24
  */
24
- register(mod: CreatableModuleFactory, labels?: Labels): this;
25
+ register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
25
26
  /**
26
27
  * Registers multiple module factories with the locator
27
- * @param additional Additional module factories to register
28
- */
29
- registerMany(mods: CreatableModuleFactory[]): this;
30
- /**
31
- * Registers a single module factory (with optional tags) with the locator & a specific schema
32
- * @param additional Additional module factories to register
28
+ * @param factories The factories to register
33
29
  */
34
- registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, labels?: Labels, primary?: boolean): this;
30
+ registerMany(factories: CreatableModuleFactory[]): this;
35
31
  /**
36
32
  * Tries to locate a module factory that matches the supplied schema and labels
37
33
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EACP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5D;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOlD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,UAAQ,GACd,IAAI;IAcP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAK9G;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -1,4 +1,4 @@
1
- import { AttachableModuleInstance, CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
1
+ import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
2
  import { Schema } from '@xyo-network/payload-model';
3
3
  /**
4
4
  * A class which encapsulates the Service Locator Pattern for Module Factories
@@ -19,19 +19,15 @@ export declare class ModuleFactoryLocator {
19
19
  locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
20
20
  /**
21
21
  * Registers a single module factory (with optional tags) with the locator
22
- * @param additional Additional module factories to register
22
+ * @param factory The factory to register
23
+ * @param labels The labels for the module factory
23
24
  */
24
- register(mod: CreatableModuleFactory, labels?: Labels): this;
25
+ register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
25
26
  /**
26
27
  * Registers multiple module factories with the locator
27
- * @param additional Additional module factories to register
28
- */
29
- registerMany(mods: CreatableModuleFactory[]): this;
30
- /**
31
- * Registers a single module factory (with optional tags) with the locator & a specific schema
32
- * @param additional Additional module factories to register
28
+ * @param factories The factories to register
33
29
  */
34
- registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, labels?: Labels, primary?: boolean): this;
30
+ registerMany(factories: CreatableModuleFactory[]): this;
35
31
  /**
36
32
  * Tries to locate a module factory that matches the supplied schema and labels
37
33
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EACP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5D;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOlD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,UAAQ,GACd,IAAI;IAcP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAK9G;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -21,7 +21,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  // src/index.ts
22
22
  var src_exports = {};
23
23
  __export(src_exports, {
24
- ModuleFactoryLocator: () => ModuleFactoryLocator
24
+ ModuleFactoryLocator: () => ModuleFactoryLocator,
25
+ standardCreatableFactories: () => standardCreatableFactories,
26
+ standardCreatableFactoriesList: () => standardCreatableFactoriesList
25
27
  });
26
28
  module.exports = __toCommonJS(src_exports);
27
29
 
@@ -31,39 +33,31 @@ var import_module_model2 = require("@xyo-network/module-model");
31
33
 
32
34
  // src/standardCreatableFactories.ts
33
35
  var import_archivist_memory = require("@xyo-network/archivist-memory");
34
- var import_archivist_model = require("@xyo-network/archivist-model");
35
36
  var import_archivist_view = require("@xyo-network/archivist-view");
36
- var import_bridge_model = require("@xyo-network/bridge-model");
37
+ var import_diviner_boundwitness_memory = require("@xyo-network/diviner-boundwitness-memory");
37
38
  var import_diviner_identity = require("@xyo-network/diviner-identity");
38
- var import_diviner_model = require("@xyo-network/diviner-model");
39
+ var import_diviner_payload_memory = require("@xyo-network/diviner-payload-memory");
39
40
  var import_http_bridge = require("@xyo-network/http-bridge");
40
41
  var import_module_model = require("@xyo-network/module-model");
41
42
  var import_node_memory = require("@xyo-network/node-memory");
42
- var import_node_model = require("@xyo-network/node-model");
43
43
  var import_node_view = require("@xyo-network/node-view");
44
44
  var import_sentinel_memory = require("@xyo-network/sentinel-memory");
45
- var import_sentinel_model = require("@xyo-network/sentinel-model");
46
45
  var import_witness_adhoc = require("@xyo-network/witness-adhoc");
47
- var import_witness_model = require("@xyo-network/witness-model");
48
46
  var standardCreatableFactoriesList = [
49
- import_archivist_memory.MemoryArchivist,
50
47
  import_http_bridge.HttpBridge,
51
- import_archivist_memory.MemoryArchivist,
52
- import_node_memory.MemoryNode,
53
- import_sentinel_memory.MemorySentinel,
54
48
  import_archivist_view.ViewArchivist,
55
49
  import_node_view.ViewNode,
56
- import_witness_adhoc.AdhocWitness
50
+ import_witness_adhoc.AdhocWitness,
51
+ import_diviner_payload_memory.MemoryPayloadDiviner,
52
+ import_diviner_boundwitness_memory.MemoryBoundWitnessDiviner,
53
+ import_diviner_identity.IdentityDiviner,
54
+ import_archivist_memory.MemoryArchivist,
55
+ import_archivist_memory.MemoryArchivist,
56
+ import_node_memory.MemoryNode,
57
+ import_sentinel_memory.MemorySentinel
57
58
  ];
58
59
  var standardCreatableFactories = /* @__PURE__ */ __name(() => {
59
- const registry = (0, import_module_model.registerCreatableModuleFactories)(standardCreatableFactoriesList);
60
- (0, import_module_model.registerPrimaryCreatableModuleFactory)(registry, import_node_memory.MemoryNode, import_node_model.NodeConfigSchema);
61
- (0, import_module_model.registerPrimaryCreatableModuleFactory)(registry, import_archivist_memory.MemoryArchivist, import_archivist_model.ArchivistConfigSchema);
62
- (0, import_module_model.registerPrimaryCreatableModuleFactory)(registry, import_sentinel_memory.MemorySentinel, import_sentinel_model.SentinelConfigSchema);
63
- (0, import_module_model.registerPrimaryCreatableModuleFactory)(registry, import_witness_adhoc.AdhocWitness, import_witness_model.WitnessConfigSchema);
64
- (0, import_module_model.registerPrimaryCreatableModuleFactory)(registry, import_diviner_identity.IdentityDiviner, import_diviner_model.DivinerConfigSchema);
65
- (0, import_module_model.registerPrimaryCreatableModuleFactory)(registry, import_http_bridge.HttpBridge, import_bridge_model.BridgeConfigSchema);
66
- return registry;
60
+ return (0, import_module_model.registerCreatableModuleFactories)(standardCreatableFactoriesList, {}, true);
67
61
  }, "standardCreatableFactories");
68
62
 
69
63
  // src/ModuleFactoryLocator.ts
@@ -92,49 +86,24 @@ var ModuleFactoryLocator = class {
92
86
  }
93
87
  /**
94
88
  * Registers a single module factory (with optional tags) with the locator
95
- * @param additional Additional module factories to register
89
+ * @param factory The factory to register
90
+ * @param labels The labels for the module factory
96
91
  */
97
- register(mod, labels) {
98
- this.registerOne(mod, mod.defaultConfigSchema, labels, true);
99
- mod.configSchemas.map((schema) => {
100
- this.registerOne(mod, schema, labels, false);
101
- });
92
+ register(factory, labels, primary = false) {
93
+ (0, import_module_model2.registerCreatableModuleFactory)(this._registry, factory, labels, primary);
102
94
  return this;
103
95
  }
104
96
  /**
105
97
  * Registers multiple module factories with the locator
106
- * @param additional Additional module factories to register
98
+ * @param factories The factories to register
107
99
  */
108
- registerMany(mods) {
109
- for (const mod of mods) {
110
- this.register(mod);
100
+ registerMany(factories) {
101
+ for (const factory of factories) {
102
+ this.register(factory);
111
103
  }
112
104
  return this;
113
105
  }
114
106
  /**
115
- * Registers a single module factory (with optional tags) with the locator & a specific schema
116
- * @param additional Additional module factories to register
117
- */
118
- registerOne(mod, schema, labels, primary = false) {
119
- const existingFactories = this._registry[schema];
120
- const factory = {
121
- // Destructure instance properties
122
- ...mod,
123
- // Copy static methods
124
- create: mod.create.bind(mod),
125
- // Merge module & supplied labels
126
- labels: Object.assign({}, mod.labels ?? {}, labels ?? {})
127
- };
128
- this._registry[schema] = primary ? [
129
- factory,
130
- ...existingFactories ?? []
131
- ] : [
132
- ...existingFactories ?? [],
133
- factory
134
- ];
135
- return this;
136
- }
137
- /**
138
107
  * Tries to locate a module factory that matches the supplied schema and labels
139
108
  * @param schema The config schema for the module
140
109
  * @param labels The labels for the module factory
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["export * from './ModuleFactoryLocator'\n","import { assertEx } from '@xylabs/assert'\nimport {\n AttachableModuleInstance,\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param additional Additional module factories to register\n */\n register(mod: CreatableModuleFactory, labels?: Labels): this {\n this.registerOne(mod, mod.defaultConfigSchema, labels, true)\n mod.configSchemas.map((schema) => {\n this.registerOne(mod, schema, labels, false)\n })\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param additional Additional module factories to register\n */\n registerMany(mods: CreatableModuleFactory[]): this {\n for (const mod of mods) {\n this.register(mod)\n }\n return this\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator & a specific schema\n * @param additional Additional module factories to register\n */\n registerOne<TModule extends AttachableModuleInstance>(\n mod: CreatableModuleFactory<TModule>,\n schema: Schema,\n labels?: Labels,\n primary = false,\n ): this {\n const existingFactories = this._registry[schema]\n const factory: LabeledCreatableModuleFactory<TModule> = {\n // Destructure instance properties\n ...mod,\n // Copy static methods\n create: mod.create.bind(mod) as LabeledCreatableModuleFactory<TModule>['create'],\n // Merge module & supplied labels\n labels: Object.assign({}, (mod as LabeledCreatableModuleFactory).labels ?? {}, labels ?? {}),\n }\n this._registry[schema] = primary ? [factory, ...(existingFactories ?? [])] : [...(existingFactories ?? []), factory]\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels ?\n // Find the first factory that has labels and has all the labels provided\n this._registry[schema]?.filter(hasLabels).find((factory) => hasAllLabels(factory?.labels, labels))\n : // Otherwise, return the first factory\n this._registry[schema]?.[0]\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { BridgeConfigSchema } from '@xyo-network/bridge-model'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { HttpBridge } from '@xyo-network/http-bridge'\nimport {\n CreatableModuleFactory,\n LabeledCreatableModuleFactory,\n registerCreatableModuleFactories,\n registerPrimaryCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\nimport { WitnessConfigSchema } from '@xyo-network/witness-model'\n\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n MemoryArchivist,\n HttpBridge,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n]\n\nexport const standardCreatableFactories = () => {\n const registry = registerCreatableModuleFactories(standardCreatableFactoriesList)\n registerPrimaryCreatableModuleFactory(registry, MemoryNode, NodeConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, MemoryArchivist, ArchivistConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, MemorySentinel, SentinelConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, AdhocWitness, WitnessConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, IdentityDiviner, DivinerConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, HttpBridge, BridgeConfigSchema)\n return registry\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACAA,oBAAyB;AACzB,IAAAA,uBAQO;;;ACTP,8BAAgC;AAChC,6BAAsC;AACtC,4BAA8B;AAC9B,0BAAmC;AACnC,8BAAgC;AAChC,2BAAoC;AACpC,yBAA2B;AAC3B,0BAKO;AACP,yBAA2B;AAC3B,wBAAiC;AACjC,uBAAyB;AACzB,6BAA+B;AAC/B,4BAAqC;AACrC,2BAA6B;AAC7B,2BAAoC;AAE7B,IAAMC,iCAA6F;EACxGC;EACAC;EACAD;EACAE;EACAC;EACAC;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,QAAMC,eAAWC,sDAAiCV,8BAAAA;AAClDW,iEAAsCF,UAAUN,+BAAYS,kCAAAA;AAC5DD,iEAAsCF,UAAUR,yCAAiBY,4CAAAA;AACjEF,iEAAsCF,UAAUL,uCAAgBU,0CAAAA;AAChEH,iEAAsCF,UAAUF,mCAAcQ,wCAAAA;AAC9DJ,iEAAsCF,UAAUO,yCAAiBC,wCAAAA;AACjEN,iEAAsCF,UAAUP,+BAAYgB,sCAAAA;AAC5D,SAAOT;AACT,GAT0C;;;ADfnC,IAAMU,uBAAN,MAAMA;EAjBb,OAiBaA;;;;EACXC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;EAAoE;;;;EAKnG,IAAIE,WAA8C;AAChD,WAAO,KAAKF;EACd;;;;;;;EAQAG,OAAOC,QAAgBC,QAAyE;AAC9F,eAAOC,wBACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;;;;;EAMAK,SAASC,KAA6BN,QAAuB;AAC3D,SAAKO,YAAYD,KAAKA,IAAIE,qBAAqBR,QAAQ,IAAA;AACvDM,QAAIG,cAAcC,IAAI,CAACX,WAAAA;AACrB,WAAKQ,YAAYD,KAAKP,QAAQC,QAAQ,KAAA;IACxC,CAAA;AACA,WAAO;EACT;;;;;EAMAW,aAAaC,MAAsC;AACjD,eAAWN,OAAOM,MAAM;AACtB,WAAKP,SAASC,GAAAA;IAChB;AACA,WAAO;EACT;;;;;EAMAC,YACED,KACAP,QACAC,QACAa,UAAU,OACJ;AACN,UAAMC,oBAAoB,KAAKnB,UAAUI,MAAAA;AACzC,UAAMgB,UAAkD;;MAEtD,GAAGT;;MAEHU,QAAQV,IAAIU,OAAOC,KAAKX,GAAAA;;MAExBN,QAAQkB,OAAOC,OAAO,CAAC,GAAIb,IAAsCN,UAAU,CAAC,GAAGA,UAAU,CAAC,CAAA;IAC5F;AACA,SAAKL,UAAUI,MAAAA,IAAUc,UAAU;MAACE;SAAaD,qBAAqB,CAAA;QAAO;SAAKA,qBAAqB,CAAA;MAAKC;;AAC5G,WAAO;EACT;;;;;;;EAQAb,UAAUH,QAAgBC,QAAqF;AAE7G,WAAOA;;MAEH,KAAKL,UAAUI,MAAAA,GAASqB,OAAOC,8BAAAA,EAAWC,KAAK,CAACP,gBAAYQ,mCAAaR,SAASf,QAAQA,MAAAA,CAAAA;QAE1F,KAAKL,UAAUI,MAAAA,IAAU,CAAA;EAC/B;AACF;","names":["import_module_model","standardCreatableFactoriesList","MemoryArchivist","HttpBridge","MemoryNode","MemorySentinel","ViewArchivist","ViewNode","AdhocWitness","standardCreatableFactories","registry","registerCreatableModuleFactories","registerPrimaryCreatableModuleFactory","NodeConfigSchema","ArchivistConfigSchema","SentinelConfigSchema","WitnessConfigSchema","IdentityDiviner","DivinerConfigSchema","BridgeConfigSchema","ModuleFactoryLocator","constructor","_registry","standardCreatableFactories","registry","locate","schema","labels","assertEx","tryLocate","JSON","stringify","register","mod","registerOne","defaultConfigSchema","configSchemas","map","registerMany","mods","primary","existingFactories","factory","create","bind","Object","assign","filter","hasLabels","find","hasAllLabels"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["export * from './ModuleFactoryLocator'\nexport * from './standardCreatableFactories'\n","import { assertEx } from '@xylabs/assert'\nimport {\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n registerCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param factory The factory to register\n * @param labels The labels for the module factory\n */\n register(factory: CreatableModuleFactory, labels?: Labels, primary: boolean | Schema | Schema[] = false): this {\n registerCreatableModuleFactory(this._registry, factory, labels, primary)\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param factories The factories to register\n */\n registerMany(factories: CreatableModuleFactory[]): this {\n for (const factory of factories) {\n this.register(factory)\n }\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels ?\n // Find the first factory that has labels and has all the labels provided\n this._registry[schema]?.filter(hasLabels).find((factory) => hasAllLabels(factory?.labels, labels))\n : // Otherwise, return the first factory\n this._registry[schema]?.[0]\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { MemoryBoundWitnessDiviner } from '@xyo-network/diviner-boundwitness-memory'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { MemoryPayloadDiviner } from '@xyo-network/diviner-payload-memory'\nimport { HttpBridge } from '@xyo-network/http-bridge'\nimport { CreatableModuleFactory, LabeledCreatableModuleFactory, registerCreatableModuleFactories } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\n\n//order matters in this array. later items will register themselves as primary for schemas shared with earlier items\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n HttpBridge,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n MemoryPayloadDiviner,\n MemoryBoundWitnessDiviner,\n IdentityDiviner,\n MemoryArchivist,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n]\n\nexport const standardCreatableFactories = () => {\n return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;ACAA,oBAAyB;AACzB,IAAAA,uBAQO;;;ACTP,8BAAgC;AAChC,4BAA8B;AAC9B,yCAA0C;AAC1C,8BAAgC;AAChC,oCAAqC;AACrC,yBAA2B;AAC3B,0BAAwG;AACxG,yBAA2B;AAC3B,uBAAyB;AACzB,6BAA+B;AAC/B,2BAA6B;AAGtB,IAAMC,iCAA6F;EACxGC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAA;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,aAAOC,sDAAiCZ,gCAAgC,CAAC,GAAG,IAAA;AAC9E,GAF0C;;;ADVnC,IAAMa,uBAAN,MAAMA;EAjBb,OAiBaA;;;;EACXC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;EAAoE;;;;EAKnG,IAAIE,WAA8C;AAChD,WAAO,KAAKF;EACd;;;;;;;EAQAG,OAAOC,QAAgBC,QAAyE;AAC9F,eAAOC,wBACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;;;;;;EAOAK,SAASC,SAAiCN,QAAiBO,UAAuC,OAAa;AAC7GC,6DAA+B,KAAKb,WAAWW,SAASN,QAAQO,OAAAA;AAChE,WAAO;EACT;;;;;EAMAE,aAAaC,WAA2C;AACtD,eAAWJ,WAAWI,WAAW;AAC/B,WAAKL,SAASC,OAAAA;IAChB;AACA,WAAO;EACT;;;;;;;EAQAJ,UAAUH,QAAgBC,QAAqF;AAE7G,WAAOA;;MAEH,KAAKL,UAAUI,MAAAA,GAASY,OAAOC,8BAAAA,EAAWC,KAAK,CAACP,gBAAYQ,mCAAaR,SAASN,QAAQA,MAAAA,CAAAA;QAE1F,KAAKL,UAAUI,MAAAA,IAAU,CAAA;EAC/B;AACF;","names":["import_module_model","standardCreatableFactoriesList","HttpBridge","ViewArchivist","ViewNode","AdhocWitness","MemoryPayloadDiviner","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryArchivist","MemoryNode","MemorySentinel","standardCreatableFactories","registerCreatableModuleFactories","ModuleFactoryLocator","constructor","_registry","standardCreatableFactories","registry","locate","schema","labels","assertEx","tryLocate","JSON","stringify","register","factory","primary","registerCreatableModuleFactory","registerMany","factories","filter","hasLabels","find","hasAllLabels"]}
@@ -1,2 +1,3 @@
1
1
  export * from './ModuleFactoryLocator';
2
+ export * from './standardCreatableFactories';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export * from './ModuleFactoryLocator';
2
+ export * from './standardCreatableFactories';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export * from './ModuleFactoryLocator';
2
+ export * from './standardCreatableFactories';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
@@ -3,43 +3,35 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/ModuleFactoryLocator.ts
5
5
  import { assertEx } from "@xylabs/assert";
6
- import { hasAllLabels, hasLabels } from "@xyo-network/module-model";
6
+ import { hasAllLabels, hasLabels, registerCreatableModuleFactory } from "@xyo-network/module-model";
7
7
 
8
8
  // src/standardCreatableFactories.ts
9
9
  import { MemoryArchivist } from "@xyo-network/archivist-memory";
10
- import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
11
10
  import { ViewArchivist } from "@xyo-network/archivist-view";
12
- import { BridgeConfigSchema } from "@xyo-network/bridge-model";
11
+ import { MemoryBoundWitnessDiviner } from "@xyo-network/diviner-boundwitness-memory";
13
12
  import { IdentityDiviner } from "@xyo-network/diviner-identity";
14
- import { DivinerConfigSchema } from "@xyo-network/diviner-model";
13
+ import { MemoryPayloadDiviner } from "@xyo-network/diviner-payload-memory";
15
14
  import { HttpBridge } from "@xyo-network/http-bridge";
16
- import { registerCreatableModuleFactories, registerPrimaryCreatableModuleFactory } from "@xyo-network/module-model";
15
+ import { registerCreatableModuleFactories } from "@xyo-network/module-model";
17
16
  import { MemoryNode } from "@xyo-network/node-memory";
18
- import { NodeConfigSchema } from "@xyo-network/node-model";
19
17
  import { ViewNode } from "@xyo-network/node-view";
20
18
  import { MemorySentinel } from "@xyo-network/sentinel-memory";
21
- import { SentinelConfigSchema } from "@xyo-network/sentinel-model";
22
19
  import { AdhocWitness } from "@xyo-network/witness-adhoc";
23
- import { WitnessConfigSchema } from "@xyo-network/witness-model";
24
20
  var standardCreatableFactoriesList = [
25
- MemoryArchivist,
26
21
  HttpBridge,
27
- MemoryArchivist,
28
- MemoryNode,
29
- MemorySentinel,
30
22
  ViewArchivist,
31
23
  ViewNode,
32
- AdhocWitness
24
+ AdhocWitness,
25
+ MemoryPayloadDiviner,
26
+ MemoryBoundWitnessDiviner,
27
+ IdentityDiviner,
28
+ MemoryArchivist,
29
+ MemoryArchivist,
30
+ MemoryNode,
31
+ MemorySentinel
33
32
  ];
34
33
  var standardCreatableFactories = /* @__PURE__ */ __name(() => {
35
- const registry = registerCreatableModuleFactories(standardCreatableFactoriesList);
36
- registerPrimaryCreatableModuleFactory(registry, MemoryNode, NodeConfigSchema);
37
- registerPrimaryCreatableModuleFactory(registry, MemoryArchivist, ArchivistConfigSchema);
38
- registerPrimaryCreatableModuleFactory(registry, MemorySentinel, SentinelConfigSchema);
39
- registerPrimaryCreatableModuleFactory(registry, AdhocWitness, WitnessConfigSchema);
40
- registerPrimaryCreatableModuleFactory(registry, IdentityDiviner, DivinerConfigSchema);
41
- registerPrimaryCreatableModuleFactory(registry, HttpBridge, BridgeConfigSchema);
42
- return registry;
34
+ return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true);
43
35
  }, "standardCreatableFactories");
44
36
 
45
37
  // src/ModuleFactoryLocator.ts
@@ -68,49 +60,24 @@ var ModuleFactoryLocator = class {
68
60
  }
69
61
  /**
70
62
  * Registers a single module factory (with optional tags) with the locator
71
- * @param additional Additional module factories to register
63
+ * @param factory The factory to register
64
+ * @param labels The labels for the module factory
72
65
  */
73
- register(mod, labels) {
74
- this.registerOne(mod, mod.defaultConfigSchema, labels, true);
75
- mod.configSchemas.map((schema) => {
76
- this.registerOne(mod, schema, labels, false);
77
- });
66
+ register(factory, labels, primary = false) {
67
+ registerCreatableModuleFactory(this._registry, factory, labels, primary);
78
68
  return this;
79
69
  }
80
70
  /**
81
71
  * Registers multiple module factories with the locator
82
- * @param additional Additional module factories to register
72
+ * @param factories The factories to register
83
73
  */
84
- registerMany(mods) {
85
- for (const mod of mods) {
86
- this.register(mod);
74
+ registerMany(factories) {
75
+ for (const factory of factories) {
76
+ this.register(factory);
87
77
  }
88
78
  return this;
89
79
  }
90
80
  /**
91
- * Registers a single module factory (with optional tags) with the locator & a specific schema
92
- * @param additional Additional module factories to register
93
- */
94
- registerOne(mod, schema, labels, primary = false) {
95
- const existingFactories = this._registry[schema];
96
- const factory = {
97
- // Destructure instance properties
98
- ...mod,
99
- // Copy static methods
100
- create: mod.create.bind(mod),
101
- // Merge module & supplied labels
102
- labels: Object.assign({}, mod.labels ?? {}, labels ?? {})
103
- };
104
- this._registry[schema] = primary ? [
105
- factory,
106
- ...existingFactories ?? []
107
- ] : [
108
- ...existingFactories ?? [],
109
- factory
110
- ];
111
- return this;
112
- }
113
- /**
114
81
  * Tries to locate a module factory that matches the supplied schema and labels
115
82
  * @param schema The config schema for the module
116
83
  * @param labels The labels for the module factory
@@ -124,6 +91,8 @@ var ModuleFactoryLocator = class {
124
91
  }
125
92
  };
126
93
  export {
127
- ModuleFactoryLocator
94
+ ModuleFactoryLocator,
95
+ standardCreatableFactories,
96
+ standardCreatableFactoriesList
128
97
  };
129
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport {\n AttachableModuleInstance,\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param additional Additional module factories to register\n */\n register(mod: CreatableModuleFactory, labels?: Labels): this {\n this.registerOne(mod, mod.defaultConfigSchema, labels, true)\n mod.configSchemas.map((schema) => {\n this.registerOne(mod, schema, labels, false)\n })\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param additional Additional module factories to register\n */\n registerMany(mods: CreatableModuleFactory[]): this {\n for (const mod of mods) {\n this.register(mod)\n }\n return this\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator & a specific schema\n * @param additional Additional module factories to register\n */\n registerOne<TModule extends AttachableModuleInstance>(\n mod: CreatableModuleFactory<TModule>,\n schema: Schema,\n labels?: Labels,\n primary = false,\n ): this {\n const existingFactories = this._registry[schema]\n const factory: LabeledCreatableModuleFactory<TModule> = {\n // Destructure instance properties\n ...mod,\n // Copy static methods\n create: mod.create.bind(mod) as LabeledCreatableModuleFactory<TModule>['create'],\n // Merge module & supplied labels\n labels: Object.assign({}, (mod as LabeledCreatableModuleFactory).labels ?? {}, labels ?? {}),\n }\n this._registry[schema] = primary ? [factory, ...(existingFactories ?? [])] : [...(existingFactories ?? []), factory]\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels ?\n // Find the first factory that has labels and has all the labels provided\n this._registry[schema]?.filter(hasLabels).find((factory) => hasAllLabels(factory?.labels, labels))\n : // Otherwise, return the first factory\n this._registry[schema]?.[0]\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { BridgeConfigSchema } from '@xyo-network/bridge-model'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { HttpBridge } from '@xyo-network/http-bridge'\nimport {\n CreatableModuleFactory,\n LabeledCreatableModuleFactory,\n registerCreatableModuleFactories,\n registerPrimaryCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\nimport { WitnessConfigSchema } from '@xyo-network/witness-model'\n\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n MemoryArchivist,\n HttpBridge,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n]\n\nexport const standardCreatableFactories = () => {\n const registry = registerCreatableModuleFactories(standardCreatableFactoriesList)\n registerPrimaryCreatableModuleFactory(registry, MemoryNode, NodeConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, MemoryArchivist, ArchivistConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, MemorySentinel, SentinelConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, AdhocWitness, WitnessConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, IdentityDiviner, DivinerConfigSchema)\n registerPrimaryCreatableModuleFactory(registry, HttpBridge, BridgeConfigSchema)\n return registry\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAIEC,cACAC,iBAGK;;;ACTP,SAASC,uBAAuB;AAChC,SAASC,6BAA6B;AACtC,SAASC,qBAAqB;AAC9B,SAASC,0BAA0B;AACnC,SAASC,uBAAuB;AAChC,SAASC,2BAA2B;AACpC,SAASC,kBAAkB;AAC3B,SAGEC,kCACAC,6CACK;AACP,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB;AACjC,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAC/B,SAASC,4BAA4B;AACrC,SAASC,oBAAoB;AAC7B,SAASC,2BAA2B;AAE7B,IAAMC,iCAA6F;EACxGC;EACAC;EACAD;EACAE;EACAC;EACAC;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,QAAMC,WAAWC,iCAAiCV,8BAAAA;AAClDW,wCAAsCF,UAAUN,YAAYS,gBAAAA;AAC5DD,wCAAsCF,UAAUR,iBAAiBY,qBAAAA;AACjEF,wCAAsCF,UAAUL,gBAAgBU,oBAAAA;AAChEH,wCAAsCF,UAAUF,cAAcQ,mBAAAA;AAC9DJ,wCAAsCF,UAAUO,iBAAiBC,mBAAAA;AACjEN,wCAAsCF,UAAUP,YAAYgB,kBAAAA;AAC5D,SAAOT;AACT,GAT0C;;;ADfnC,IAAMU,uBAAN,MAAMA;EAjBb,OAiBaA;;;;EACXC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;EAAoE;;;;EAKnG,IAAIE,WAA8C;AAChD,WAAO,KAAKF;EACd;;;;;;;EAQAG,OAAOC,QAAgBC,QAAyE;AAC9F,WAAOC,SACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;;;;;EAMAK,SAASC,KAA6BN,QAAuB;AAC3D,SAAKO,YAAYD,KAAKA,IAAIE,qBAAqBR,QAAQ,IAAA;AACvDM,QAAIG,cAAcC,IAAI,CAACX,WAAAA;AACrB,WAAKQ,YAAYD,KAAKP,QAAQC,QAAQ,KAAA;IACxC,CAAA;AACA,WAAO;EACT;;;;;EAMAW,aAAaC,MAAsC;AACjD,eAAWN,OAAOM,MAAM;AACtB,WAAKP,SAASC,GAAAA;IAChB;AACA,WAAO;EACT;;;;;EAMAC,YACED,KACAP,QACAC,QACAa,UAAU,OACJ;AACN,UAAMC,oBAAoB,KAAKnB,UAAUI,MAAAA;AACzC,UAAMgB,UAAkD;;MAEtD,GAAGT;;MAEHU,QAAQV,IAAIU,OAAOC,KAAKX,GAAAA;;MAExBN,QAAQkB,OAAOC,OAAO,CAAC,GAAIb,IAAsCN,UAAU,CAAC,GAAGA,UAAU,CAAC,CAAA;IAC5F;AACA,SAAKL,UAAUI,MAAAA,IAAUc,UAAU;MAACE;SAAaD,qBAAqB,CAAA;QAAO;SAAKA,qBAAqB,CAAA;MAAKC;;AAC5G,WAAO;EACT;;;;;;;EAQAb,UAAUH,QAAgBC,QAAqF;AAE7G,WAAOA;;MAEH,KAAKL,UAAUI,MAAAA,GAASqB,OAAOC,SAAAA,EAAWC,KAAK,CAACP,YAAYQ,aAAaR,SAASf,QAAQA,MAAAA,CAAAA;QAE1F,KAAKL,UAAUI,MAAAA,IAAU,CAAA;EAC/B;AACF;","names":["assertEx","hasAllLabels","hasLabels","MemoryArchivist","ArchivistConfigSchema","ViewArchivist","BridgeConfigSchema","IdentityDiviner","DivinerConfigSchema","HttpBridge","registerCreatableModuleFactories","registerPrimaryCreatableModuleFactory","MemoryNode","NodeConfigSchema","ViewNode","MemorySentinel","SentinelConfigSchema","AdhocWitness","WitnessConfigSchema","standardCreatableFactoriesList","MemoryArchivist","HttpBridge","MemoryNode","MemorySentinel","ViewArchivist","ViewNode","AdhocWitness","standardCreatableFactories","registry","registerCreatableModuleFactories","registerPrimaryCreatableModuleFactory","NodeConfigSchema","ArchivistConfigSchema","SentinelConfigSchema","WitnessConfigSchema","IdentityDiviner","DivinerConfigSchema","BridgeConfigSchema","ModuleFactoryLocator","constructor","_registry","standardCreatableFactories","registry","locate","schema","labels","assertEx","tryLocate","JSON","stringify","register","mod","registerOne","defaultConfigSchema","configSchemas","map","registerMany","mods","primary","existingFactories","factory","create","bind","Object","assign","filter","hasLabels","find","hasAllLabels"]}
1
+ {"version":3,"sources":["../../src/ModuleFactoryLocator.ts","../../src/standardCreatableFactories.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport {\n CreatableModuleFactory,\n CreatableModuleRegistry,\n hasAllLabels,\n hasLabels,\n LabeledCreatableModuleFactory,\n Labels,\n registerCreatableModuleFactory,\n} from '@xyo-network/module-model'\nimport { Schema } from '@xyo-network/payload-model'\n\nimport { standardCreatableFactories } from './standardCreatableFactories'\n\n/**\n * A class which encapsulates the Service Locator Pattern for Module Factories\n */\nexport class ModuleFactoryLocator {\n constructor(protected readonly _registry: CreatableModuleRegistry = standardCreatableFactories()) {}\n\n /**\n * The current registry for the module factory\n */\n get registry(): Readonly<CreatableModuleRegistry> {\n return this._registry\n }\n\n /**\n * Locates a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or throws if one is not found\n */\n locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory {\n return assertEx(\n this.tryLocate(schema, labels),\n () => `No module factory for the supplied ${`config schema [${schema}]`}${labels ? ` & labels [${JSON.stringify(labels)}]` : ''} registered`,\n )\n }\n\n /**\n * Registers a single module factory (with optional tags) with the locator\n * @param factory The factory to register\n * @param labels The labels for the module factory\n */\n register(factory: CreatableModuleFactory, labels?: Labels, primary: boolean | Schema | Schema[] = false): this {\n registerCreatableModuleFactory(this._registry, factory, labels, primary)\n return this\n }\n\n /**\n * Registers multiple module factories with the locator\n * @param factories The factories to register\n */\n registerMany(factories: CreatableModuleFactory[]): this {\n for (const factory of factories) {\n this.register(factory)\n }\n return this\n }\n\n /**\n * Tries to locate a module factory that matches the supplied schema and labels\n * @param schema The config schema for the module\n * @param labels The labels for the module factory\n * @returns A module factory that matches the supplied schema and labels or undefined\n */\n tryLocate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory | undefined {\n // If labels were provided\n return labels ?\n // Find the first factory that has labels and has all the labels provided\n this._registry[schema]?.filter(hasLabels).find((factory) => hasAllLabels(factory?.labels, labels))\n : // Otherwise, return the first factory\n this._registry[schema]?.[0]\n }\n}\n","import { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { ViewArchivist } from '@xyo-network/archivist-view'\nimport { MemoryBoundWitnessDiviner } from '@xyo-network/diviner-boundwitness-memory'\nimport { IdentityDiviner } from '@xyo-network/diviner-identity'\nimport { MemoryPayloadDiviner } from '@xyo-network/diviner-payload-memory'\nimport { HttpBridge } from '@xyo-network/http-bridge'\nimport { CreatableModuleFactory, LabeledCreatableModuleFactory, registerCreatableModuleFactories } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { ViewNode } from '@xyo-network/node-view'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { AdhocWitness } from '@xyo-network/witness-adhoc'\n\n//order matters in this array. later items will register themselves as primary for schemas shared with earlier items\nexport const standardCreatableFactoriesList: (CreatableModuleFactory | LabeledCreatableModuleFactory)[] = [\n HttpBridge,\n ViewArchivist,\n ViewNode,\n AdhocWitness,\n MemoryPayloadDiviner,\n MemoryBoundWitnessDiviner,\n IdentityDiviner,\n MemoryArchivist,\n MemoryArchivist,\n MemoryNode,\n MemorySentinel,\n]\n\nexport const standardCreatableFactories = () => {\n return registerCreatableModuleFactories(standardCreatableFactoriesList, {}, true)\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAGEC,cACAC,WAGAC,sCACK;;;ACTP,SAASC,uBAAuB;AAChC,SAASC,qBAAqB;AAC9B,SAASC,iCAAiC;AAC1C,SAASC,uBAAuB;AAChC,SAASC,4BAA4B;AACrC,SAASC,kBAAkB;AAC3B,SAAgEC,wCAAwC;AACxG,SAASC,kBAAkB;AAC3B,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAC/B,SAASC,oBAAoB;AAGtB,IAAMC,iCAA6F;EACxGC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAA;EACAC;EACAC;;AAGK,IAAMC,6BAA6B,6BAAA;AACxC,SAAOC,iCAAiCZ,gCAAgC,CAAC,GAAG,IAAA;AAC9E,GAF0C;;;ADVnC,IAAMa,uBAAN,MAAMA;EAjBb,OAiBaA;;;;EACXC,YAA+BC,YAAqCC,2BAAAA,GAA8B;SAAnED,YAAAA;EAAoE;;;;EAKnG,IAAIE,WAA8C;AAChD,WAAO,KAAKF;EACd;;;;;;;EAQAG,OAAOC,QAAgBC,QAAyE;AAC9F,WAAOC,SACL,KAAKC,UAAUH,QAAQC,MAAAA,GACvB,MAAM,sCAAsC,kBAAkBD,MAAAA,GAAS,GAAGC,SAAS,cAAcG,KAAKC,UAAUJ,MAAAA,CAAAA,MAAa,EAAA,aAAe;EAEhJ;;;;;;EAOAK,SAASC,SAAiCN,QAAiBO,UAAuC,OAAa;AAC7GC,mCAA+B,KAAKb,WAAWW,SAASN,QAAQO,OAAAA;AAChE,WAAO;EACT;;;;;EAMAE,aAAaC,WAA2C;AACtD,eAAWJ,WAAWI,WAAW;AAC/B,WAAKL,SAASC,OAAAA;IAChB;AACA,WAAO;EACT;;;;;;;EAQAJ,UAAUH,QAAgBC,QAAqF;AAE7G,WAAOA;;MAEH,KAAKL,UAAUI,MAAAA,GAASY,OAAOC,SAAAA,EAAWC,KAAK,CAACP,YAAYQ,aAAaR,SAASN,QAAQA,MAAAA,CAAAA;QAE1F,KAAKL,UAAUI,MAAAA,IAAU,CAAA;EAC/B;AACF;","names":["assertEx","hasAllLabels","hasLabels","registerCreatableModuleFactory","MemoryArchivist","ViewArchivist","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryPayloadDiviner","HttpBridge","registerCreatableModuleFactories","MemoryNode","ViewNode","MemorySentinel","AdhocWitness","standardCreatableFactoriesList","HttpBridge","ViewArchivist","ViewNode","AdhocWitness","MemoryPayloadDiviner","MemoryBoundWitnessDiviner","IdentityDiviner","MemoryArchivist","MemoryNode","MemorySentinel","standardCreatableFactories","registerCreatableModuleFactories","ModuleFactoryLocator","constructor","_registry","standardCreatableFactories","registry","locate","schema","labels","assertEx","tryLocate","JSON","stringify","register","factory","primary","registerCreatableModuleFactory","registerMany","factories","filter","hasLabels","find","hasAllLabels"]}
@@ -1 +1 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAG9B,MAAM,2BAA2B,CAAA;AASlC,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EASpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAStC,CAAA"}
1
+ {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAG9B,MAAM,2BAA2B,CAAA;AASlC,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EASpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAStC,CAAA"}
1
+ {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAG9B,MAAM,2BAA2B,CAAA;AASlC,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EASpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAStC,CAAA"}
1
+ {"version":3,"file":"standardCreatableFactories.d.ts","sourceRoot":"","sources":["../../src/standardCreatableFactories.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAoC,MAAM,2BAA2B,CAAA;AAOnI,eAAO,MAAM,8BAA8B,EAAE,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,EAYpG,CAAA;AAED,eAAO,MAAM,0BAA0B,mEAEtC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { AttachableModuleInstance, CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
1
+ import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
2
  import { Schema } from '@xyo-network/payload-model';
3
3
  /**
4
4
  * A class which encapsulates the Service Locator Pattern for Module Factories
@@ -19,19 +19,15 @@ export declare class ModuleFactoryLocator {
19
19
  locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
20
20
  /**
21
21
  * Registers a single module factory (with optional tags) with the locator
22
- * @param additional Additional module factories to register
22
+ * @param factory The factory to register
23
+ * @param labels The labels for the module factory
23
24
  */
24
- register(mod: CreatableModuleFactory, labels?: Labels): this;
25
+ register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
25
26
  /**
26
27
  * Registers multiple module factories with the locator
27
- * @param additional Additional module factories to register
28
- */
29
- registerMany(mods: CreatableModuleFactory[]): this;
30
- /**
31
- * Registers a single module factory (with optional tags) with the locator & a specific schema
32
- * @param additional Additional module factories to register
28
+ * @param factories The factories to register
33
29
  */
34
- registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, labels?: Labels, primary?: boolean): this;
30
+ registerMany(factories: CreatableModuleFactory[]): this;
35
31
  /**
36
32
  * Tries to locate a module factory that matches the supplied schema and labels
37
33
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EACP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5D;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOlD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,UAAQ,GACd,IAAI;IAcP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAK9G;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
@@ -1,4 +1,4 @@
1
- import { AttachableModuleInstance, CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
1
+ import { CreatableModuleFactory, CreatableModuleRegistry, LabeledCreatableModuleFactory, Labels } from '@xyo-network/module-model';
2
2
  import { Schema } from '@xyo-network/payload-model';
3
3
  /**
4
4
  * A class which encapsulates the Service Locator Pattern for Module Factories
@@ -19,19 +19,15 @@ export declare class ModuleFactoryLocator {
19
19
  locate(schema: string, labels?: Labels): CreatableModuleFactory | LabeledCreatableModuleFactory;
20
20
  /**
21
21
  * Registers a single module factory (with optional tags) with the locator
22
- * @param additional Additional module factories to register
22
+ * @param factory The factory to register
23
+ * @param labels The labels for the module factory
23
24
  */
24
- register(mod: CreatableModuleFactory, labels?: Labels): this;
25
+ register(factory: CreatableModuleFactory, labels?: Labels, primary?: boolean | Schema | Schema[]): this;
25
26
  /**
26
27
  * Registers multiple module factories with the locator
27
- * @param additional Additional module factories to register
28
- */
29
- registerMany(mods: CreatableModuleFactory[]): this;
30
- /**
31
- * Registers a single module factory (with optional tags) with the locator & a specific schema
32
- * @param additional Additional module factories to register
28
+ * @param factories The factories to register
33
29
  */
34
- registerOne<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, schema: Schema, labels?: Labels, primary?: boolean): this;
30
+ registerMany(factories: CreatableModuleFactory[]): this;
35
31
  /**
36
32
  * Tries to locate a module factory that matches the supplied schema and labels
37
33
  * @param schema The config schema for the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EACP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5D;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOlD;;;OAGG;IACH,WAAW,CAAC,OAAO,SAAS,wBAAwB,EAClD,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,UAAQ,GACd,IAAI;IAcP;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}
1
+ {"version":3,"file":"ModuleFactoryLocator.d.ts","sourceRoot":"","sources":["../../src/ModuleFactoryLocator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,6BAA6B,EAC7B,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD;;GAEG;AACH,qBAAa,oBAAoB;IACnB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,uBAAuB;gBAAlC,SAAS,GAAE,uBAAsD;IAEhG;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAEhD;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B;IAO/F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAU,GAAG,IAAI;IAK9G;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAOvD;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,SAAS;CAQ/G"}