@xyo-network/module-model 2.97.2 → 2.98.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.
- package/dist/browser/CreatableModule/CreatableModuleRegistry.d.cts +5 -2
- package/dist/browser/CreatableModule/CreatableModuleRegistry.d.cts.map +1 -1
- package/dist/browser/CreatableModule/CreatableModuleRegistry.d.mts +5 -2
- package/dist/browser/CreatableModule/CreatableModuleRegistry.d.mts.map +1 -1
- package/dist/browser/CreatableModule/CreatableModuleRegistry.d.ts +5 -2
- package/dist/browser/CreatableModule/CreatableModuleRegistry.d.ts.map +1 -1
- package/dist/browser/CreatableModule/ModuleFactoryLocator.d.cts +6 -0
- package/dist/browser/CreatableModule/ModuleFactoryLocator.d.cts.map +1 -1
- package/dist/browser/CreatableModule/ModuleFactoryLocator.d.mts +6 -0
- package/dist/browser/CreatableModule/ModuleFactoryLocator.d.mts.map +1 -1
- package/dist/browser/CreatableModule/ModuleFactoryLocator.d.ts +6 -0
- package/dist/browser/CreatableModule/ModuleFactoryLocator.d.ts.map +1 -1
- package/dist/browser/CreatableModule/index.d.cts +0 -1
- package/dist/browser/CreatableModule/index.d.cts.map +1 -1
- package/dist/browser/CreatableModule/index.d.mts +0 -1
- package/dist/browser/CreatableModule/index.d.mts.map +1 -1
- package/dist/browser/CreatableModule/index.d.ts +0 -1
- package/dist/browser/CreatableModule/index.d.ts.map +1 -1
- package/dist/browser/index.cjs +56 -20
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +56 -20
- package/dist/browser/index.js.map +1 -1
- package/dist/node/CreatableModule/CreatableModuleRegistry.d.cts +5 -2
- package/dist/node/CreatableModule/CreatableModuleRegistry.d.cts.map +1 -1
- package/dist/node/CreatableModule/CreatableModuleRegistry.d.mts +5 -2
- package/dist/node/CreatableModule/CreatableModuleRegistry.d.mts.map +1 -1
- package/dist/node/CreatableModule/CreatableModuleRegistry.d.ts +5 -2
- package/dist/node/CreatableModule/CreatableModuleRegistry.d.ts.map +1 -1
- package/dist/node/CreatableModule/ModuleFactoryLocator.d.cts +6 -0
- package/dist/node/CreatableModule/ModuleFactoryLocator.d.cts.map +1 -1
- package/dist/node/CreatableModule/ModuleFactoryLocator.d.mts +6 -0
- package/dist/node/CreatableModule/ModuleFactoryLocator.d.mts.map +1 -1
- package/dist/node/CreatableModule/ModuleFactoryLocator.d.ts +6 -0
- package/dist/node/CreatableModule/ModuleFactoryLocator.d.ts.map +1 -1
- package/dist/node/CreatableModule/index.d.cts +0 -1
- package/dist/node/CreatableModule/index.d.cts.map +1 -1
- package/dist/node/CreatableModule/index.d.mts +0 -1
- package/dist/node/CreatableModule/index.d.mts.map +1 -1
- package/dist/node/CreatableModule/index.d.ts +0 -1
- package/dist/node/CreatableModule/index.d.ts.map +1 -1
- package/dist/node/index.cjs +59 -21
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +56 -20
- package/dist/node/index.js.map +1 -1
- package/package.json +15 -15
- package/src/CreatableModule/CreatableModuleRegistry.ts +30 -7
- package/src/CreatableModule/ModuleFactoryLocator.ts +37 -10
- package/src/CreatableModule/index.ts +0 -1
- package/dist/browser/CreatableModule/CreatableModuleDictionary.d.cts +0 -5
- package/dist/browser/CreatableModule/CreatableModuleDictionary.d.cts.map +0 -1
- package/dist/browser/CreatableModule/CreatableModuleDictionary.d.mts +0 -5
- package/dist/browser/CreatableModule/CreatableModuleDictionary.d.mts.map +0 -1
- package/dist/browser/CreatableModule/CreatableModuleDictionary.d.ts +0 -5
- package/dist/browser/CreatableModule/CreatableModuleDictionary.d.ts.map +0 -1
- package/dist/node/CreatableModule/CreatableModuleDictionary.d.cts +0 -5
- package/dist/node/CreatableModule/CreatableModuleDictionary.d.cts.map +0 -1
- package/dist/node/CreatableModule/CreatableModuleDictionary.d.mts +0 -5
- package/dist/node/CreatableModule/CreatableModuleDictionary.d.mts.map +0 -1
- package/dist/node/CreatableModule/CreatableModuleDictionary.d.ts +0 -5
- package/dist/node/CreatableModule/CreatableModuleDictionary.d.ts.map +0 -1
- package/src/CreatableModule/CreatableModuleDictionary.ts +0 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { Schema } from '@xyo-network/payload-model'
|
|
2
3
|
|
|
3
4
|
import { AttachableModuleInstance } from '../instance'
|
|
4
5
|
import { hasAllLabels, Labels } from '../Labels'
|
|
@@ -38,17 +39,9 @@ export class ModuleFactoryLocator {
|
|
|
38
39
|
* @param additional Additional module factories to register
|
|
39
40
|
*/
|
|
40
41
|
register<TModule extends AttachableModuleInstance>(mod: CreatableModuleFactory<TModule>, labels?: Labels): this {
|
|
42
|
+
this.registerOne(mod, mod.defaultConfigSchema, true, labels)
|
|
41
43
|
mod.configSchemas.map((schema) => {
|
|
42
|
-
|
|
43
|
-
const factory: LabeledCreatableModuleFactory<TModule> = {
|
|
44
|
-
// Destructure instance properties
|
|
45
|
-
...mod,
|
|
46
|
-
// Copy static methods
|
|
47
|
-
create: mod.create.bind(mod) as LabeledCreatableModuleFactory<TModule>['create'],
|
|
48
|
-
// Merge module & supplied labels
|
|
49
|
-
labels: Object.assign({}, (mod as LabeledCreatableModuleFactory).labels ?? {}, labels ?? {}),
|
|
50
|
-
}
|
|
51
|
-
this._registry[schema] = [...(existingFactories ?? []), factory]
|
|
44
|
+
this.registerOne(mod, schema, false, labels)
|
|
52
45
|
})
|
|
53
46
|
return this
|
|
54
47
|
}
|
|
@@ -67,6 +60,40 @@ export class ModuleFactoryLocator {
|
|
|
67
60
|
return this
|
|
68
61
|
}
|
|
69
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Registers a single module factory (with optional tags) with the locator & a specific schema
|
|
65
|
+
* @param additional Additional module factories to register
|
|
66
|
+
*/
|
|
67
|
+
registerOne<TModule extends AttachableModuleInstance>(
|
|
68
|
+
mod: CreatableModuleFactory<TModule>,
|
|
69
|
+
schema: Schema,
|
|
70
|
+
overwrite = false,
|
|
71
|
+
labels?: Labels,
|
|
72
|
+
): this {
|
|
73
|
+
//if we don't want to overwrite and the factory already exists, return
|
|
74
|
+
if (!overwrite) {
|
|
75
|
+
const existingFactories = this._registry[schema]
|
|
76
|
+
if (existingFactories) {
|
|
77
|
+
const existing = existingFactories.find((factory) => (factory as LabeledCreatableModuleFactory).labels === labels)
|
|
78
|
+
if (existing) {
|
|
79
|
+
return this
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const existingFactories = this._registry[schema]
|
|
85
|
+
const factory: LabeledCreatableModuleFactory<TModule> = {
|
|
86
|
+
// Destructure instance properties
|
|
87
|
+
...mod,
|
|
88
|
+
// Copy static methods
|
|
89
|
+
create: mod.create.bind(mod) as LabeledCreatableModuleFactory<TModule>['create'],
|
|
90
|
+
// Merge module & supplied labels
|
|
91
|
+
labels: Object.assign({}, (mod as LabeledCreatableModuleFactory).labels ?? {}, labels ?? {}),
|
|
92
|
+
}
|
|
93
|
+
this._registry[schema] = [...(existingFactories ?? []), factory]
|
|
94
|
+
return this
|
|
95
|
+
}
|
|
96
|
+
|
|
70
97
|
/**
|
|
71
98
|
* Tries to locate a module factory that matches the supplied schema and labels
|
|
72
99
|
* @param schema The config schema for the module
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatableModuleDictionary.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatableModuleDictionary.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatableModuleDictionary.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatableModuleDictionary.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatableModuleDictionary.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatableModuleDictionary.d.ts","sourceRoot":"","sources":["../../../src/CreatableModule/CreatableModuleDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CACtC"}
|