@xyo-network/module-abstract 2.57.4 → 2.57.6
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/cjs/AbstractModule.js +57 -37
- package/dist/cjs/AbstractModule.js.map +1 -1
- package/dist/cjs/ModuleFactory.js +6 -1
- package/dist/cjs/ModuleFactory.js.map +1 -1
- package/dist/cjs/Resolver/CompositeModuleResolver.js +11 -0
- package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/cjs/Resolver/SimpleModuleResolver.js +9 -0
- package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/docs.json +60357 -27253
- package/dist/esm/AbstractModule.js +46 -33
- package/dist/esm/AbstractModule.js.map +1 -1
- package/dist/esm/ModuleFactory.js +4 -1
- package/dist/esm/ModuleFactory.js.map +1 -1
- package/dist/esm/Resolver/CompositeModuleResolver.js +9 -0
- package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/esm/Resolver/SimpleModuleResolver.js +9 -0
- package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/types/AbstractModule.d.ts +106 -4
- package/dist/types/AbstractModule.d.ts.map +1 -1
- package/dist/types/ModuleFactory.d.ts.map +1 -1
- package/dist/types/Resolver/CompositeModuleResolver.d.ts +1 -0
- package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/types/Resolver/SimpleModuleResolver.d.ts +1 -0
- package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/types/lib/duplicateModules.d.ts +18 -16
- package/dist/types/lib/duplicateModules.d.ts.map +1 -1
- package/docs/assets/highlight.css +22 -0
- package/docs/assets/main.js +58 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1367 -0
- package/docs/classes/AbstractModule.html +940 -0
- package/docs/classes/BaseEmitter.html +378 -0
- package/docs/classes/CompositeModuleResolver.html +319 -0
- package/docs/classes/ModuleConfigQueryValidator.html +198 -0
- package/docs/classes/ModuleErrorBuilder.html +212 -0
- package/docs/classes/ModuleFactory.html +221 -0
- package/docs/classes/QueryBoundWitnessBuilder.html +348 -0
- package/docs/classes/QueryBoundWitnessValidator.html +371 -0
- package/docs/classes/QueryBoundWitnessWrapper.html +690 -0
- package/docs/classes/SimpleModuleResolver.html +347 -0
- package/docs/classes/SupportedQueryValidator.html +121 -0
- package/docs/functions/duplicateModules.html +89 -0
- package/docs/functions/isQuerySupportedByModule.html +83 -0
- package/docs/functions/mixinResolverEventEmitter.html +79 -0
- package/docs/functions/serializable.html +76 -0
- package/docs/functions/serializableField.html +74 -0
- package/docs/index.html +76 -0
- package/docs/interfaces/CreatableModuleDictionary.html +71 -0
- package/docs/interfaces/ModuleResolvedEventArgs.html +96 -0
- package/docs/interfaces/QueryValidator.html +99 -0
- package/docs/interfaces/ResolverEventEmitter.html +110 -0
- package/docs/modules.html +102 -0
- package/docs/types/ModuleError.html +65 -0
- package/docs/types/ModuleErrorSchema.html +66 -0
- package/docs/types/Queryable.html +85 -0
- package/docs/types/SortedPipedAddressesString.html +65 -0
- package/docs/variables/ModuleErrorSchema-1.html +66 -0
- package/package.json +24 -23
- package/src/AbstractModule.ts +55 -39
- package/src/ModuleFactory.ts +4 -1
- package/src/Resolver/CompositeModuleResolver.ts +9 -0
- package/src/Resolver/SimpleModuleResolver.ts +9 -0
package/src/ModuleFactory.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Logger } from '@xyo-network/core'
|
|
2
2
|
import { CreatableModule, CreatableModuleFactory, Module } from '@xyo-network/module-model'
|
|
3
|
+
import merge from 'lodash/merge'
|
|
3
4
|
|
|
4
5
|
export interface CreatableModuleDictionary {
|
|
5
6
|
[key: string]: CreatableModuleFactory
|
|
@@ -26,7 +27,9 @@ export class ModuleFactory<TModule extends Module> implements CreatableModuleFac
|
|
|
26
27
|
|
|
27
28
|
create<T extends Module>(this: CreatableModuleFactory<T>, params?: TModule['params'] | undefined): Promise<T> {
|
|
28
29
|
const factory = this as ModuleFactory<T>
|
|
29
|
-
|
|
30
|
+
const schema: CreatableModuleFactory<TModule>['configSchema'] = factory.creatableModule.configSchema
|
|
31
|
+
const mergedParams: TModule['params'] = merge(factory.defaultParams ?? {}, params, { config: { schema } })
|
|
32
|
+
return factory.creatableModule.create<T>(mergedParams)
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
factory<T extends Module>(this: CreatableModule<T>, _params?: T['params'] | undefined): CreatableModuleFactory<T> {
|
|
@@ -61,6 +61,15 @@ export class CompositeModuleResolver extends Base implements ModuleRepository, M
|
|
|
61
61
|
return result as T[]
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
async resolveOne<T extends Module = Module>(filter: string): Promise<T | undefined> {
|
|
65
|
+
for (let i = 0; i < this.resolvers.length; i++) {
|
|
66
|
+
const resolver = this.resolvers[i]
|
|
67
|
+
const result = await resolver.resolveOne<T>(filter)
|
|
68
|
+
if (result) return result
|
|
69
|
+
}
|
|
70
|
+
return undefined
|
|
71
|
+
}
|
|
72
|
+
|
|
64
73
|
private addSingleModule(module?: Module) {
|
|
65
74
|
if (module) {
|
|
66
75
|
this.localResolver.add(module)
|
|
@@ -62,6 +62,15 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
62
62
|
return filteredByQuery
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
resolveOne<T extends Module = Module>(filter: string): Promisable<T | undefined> {
|
|
66
|
+
const allModules = Object.values(this.modules) as T[]
|
|
67
|
+
for (const resolutionMethod of [this.resolveByAddress, this.resolveByName]) {
|
|
68
|
+
const filtered: T[] = resolutionMethod(allModules, [filter])
|
|
69
|
+
if (filtered.length === 1) return filtered[0]
|
|
70
|
+
}
|
|
71
|
+
return undefined
|
|
72
|
+
}
|
|
73
|
+
|
|
65
74
|
private addSingleModule(module?: Module) {
|
|
66
75
|
if (module) {
|
|
67
76
|
this.modules[module.address] = module
|