@xyo-network/module-abstract 2.64.8 → 2.64.10
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/AbstractIndirectModule.js +411 -0
- package/dist/cjs/AbstractIndirectModule.js.map +1 -0
- package/dist/cjs/AbstractModule.js +24 -371
- package/dist/cjs/AbstractModule.js.map +1 -1
- package/dist/cjs/QueryValidator/SupportedQueryValidator.js.map +1 -1
- package/dist/cjs/Resolver/CompositeModuleResolver.js +2 -3
- package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/cjs/Resolver/ResolverEventEmitter.js.map +1 -1
- package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/cjs/lib/duplicateModules.js.map +1 -1
- package/dist/docs.json +4173 -3806
- package/dist/esm/AbstractIndirectModule.js +373 -0
- package/dist/esm/AbstractIndirectModule.js.map +1 -0
- package/dist/esm/AbstractModule.js +16 -350
- package/dist/esm/AbstractModule.js.map +1 -1
- package/dist/esm/QueryValidator/SupportedQueryValidator.js.map +1 -1
- package/dist/esm/Resolver/CompositeModuleResolver.js +2 -3
- package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -1
- package/dist/esm/Resolver/ResolverEventEmitter.js.map +1 -1
- package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
- package/dist/esm/lib/duplicateModules.js.map +1 -1
- package/dist/types/AbstractIndirectModule.d.ts +66 -0
- package/dist/types/AbstractIndirectModule.d.ts.map +1 -0
- package/dist/types/AbstractModule.d.ts +7 -58
- package/dist/types/AbstractModule.d.ts.map +1 -1
- package/dist/types/QueryValidator/SupportedQueryValidator.d.ts +4 -4
- package/dist/types/QueryValidator/SupportedQueryValidator.d.ts.map +1 -1
- package/dist/types/Resolver/CompositeModuleResolver.d.ts +5 -5
- package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/types/Resolver/ResolverEventEmitter.d.ts +2 -2
- package/dist/types/Resolver/ResolverEventEmitter.d.ts.map +1 -1
- package/dist/types/Resolver/SimpleModuleResolver.d.ts +5 -5
- package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/types/lib/duplicateModules.d.ts +2 -2
- package/dist/types/lib/duplicateModules.d.ts.map +1 -1
- package/package.json +24 -24
- package/src/AbstractIndirectModule.ts +497 -0
- package/src/AbstractModule.ts +20 -460
- package/src/QueryValidator/SupportedQueryValidator.ts +3 -3
- package/src/Resolver/CompositeModuleResolver.ts +9 -10
- package/src/Resolver/ResolverEventEmitter.ts +5 -5
- package/src/Resolver/SimpleModuleResolver.ts +11 -11
- package/src/lib/duplicateModules.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AddressModuleFilter,
|
|
3
|
-
|
|
3
|
+
IndirectModule,
|
|
4
4
|
ModuleFilter,
|
|
5
5
|
ModuleRepository,
|
|
6
6
|
ModuleResolver,
|
|
@@ -14,15 +14,15 @@ import flatten from 'lodash/flatten'
|
|
|
14
14
|
//This class is now package private (not exported from index.ts)
|
|
15
15
|
export class SimpleModuleResolver implements ModuleRepository {
|
|
16
16
|
private addressToName: Record<string, string> = {}
|
|
17
|
-
private modules: Record<string,
|
|
17
|
+
private modules: Record<string, IndirectModule> = {}
|
|
18
18
|
|
|
19
19
|
get isModuleResolver() {
|
|
20
20
|
return true
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
add(module:
|
|
24
|
-
add(module:
|
|
25
|
-
add(module:
|
|
23
|
+
add(module: IndirectModule): this
|
|
24
|
+
add(module: IndirectModule[]): this
|
|
25
|
+
add(module: IndirectModule | IndirectModule[]): this {
|
|
26
26
|
if (Array.isArray(module)) {
|
|
27
27
|
module.forEach((module) => this.addSingleModule(module))
|
|
28
28
|
} else {
|
|
@@ -48,7 +48,7 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
48
48
|
throw 'Removing resolvers not supported'
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
resolve<T extends
|
|
51
|
+
resolve<T extends IndirectModule = IndirectModule>(filter?: ModuleFilter): Promisable<T[]> {
|
|
52
52
|
const filteredByName: T[] = this.resolveByName<T>(Object.values(this.modules) as T[], (filter as NameModuleFilter)?.name)
|
|
53
53
|
|
|
54
54
|
const filteredByAddress: T[] = (filter as AddressModuleFilter)?.address
|
|
@@ -62,7 +62,7 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
62
62
|
return filteredByQuery
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
resolveOne<T extends
|
|
65
|
+
resolveOne<T extends IndirectModule = IndirectModule>(filter: string): Promisable<T | undefined> {
|
|
66
66
|
const allModules = Object.values(this.modules) as T[]
|
|
67
67
|
for (const resolutionMethod of [this.resolveByAddress, this.resolveByName]) {
|
|
68
68
|
const filtered: T[] = resolutionMethod(allModules, [filter])
|
|
@@ -71,7 +71,7 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
71
71
|
return undefined
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
private addSingleModule(module?:
|
|
74
|
+
private addSingleModule(module?: IndirectModule) {
|
|
75
75
|
if (module) {
|
|
76
76
|
this.modules[module.address] = module
|
|
77
77
|
}
|
|
@@ -89,7 +89,7 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
private resolveByAddress<T extends
|
|
92
|
+
private resolveByAddress<T extends IndirectModule = IndirectModule>(modules: T[], address?: string[]): T[] {
|
|
93
93
|
return address
|
|
94
94
|
? compact(
|
|
95
95
|
flatten(
|
|
@@ -101,14 +101,14 @@ export class SimpleModuleResolver implements ModuleRepository {
|
|
|
101
101
|
: modules
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
private resolveByName<T extends
|
|
104
|
+
private resolveByName<T extends IndirectModule = IndirectModule>(modules: T[], name?: string[]): T[] {
|
|
105
105
|
if (name) {
|
|
106
106
|
return compact(name.map((name) => modules.filter((module) => module.config.name === name)).flat())
|
|
107
107
|
}
|
|
108
108
|
return modules
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
private resolveByQuery<T extends
|
|
111
|
+
private resolveByQuery<T extends IndirectModule = IndirectModule>(modules: T[], query?: string[][]): T[] {
|
|
112
112
|
return query
|
|
113
113
|
? compact(
|
|
114
114
|
modules.filter((module) =>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IndirectModule } from '@xyo-network/module-model'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Used to filter duplicates from an array of modules
|
|
@@ -9,6 +9,6 @@ import { Module } from '@xyo-network/module-model'
|
|
|
9
9
|
* @returns True if the Module's address is the first occurrence of
|
|
10
10
|
* that address in the array, false otherwise
|
|
11
11
|
*/
|
|
12
|
-
export const duplicateModules = (value:
|
|
12
|
+
export const duplicateModules = (value: IndirectModule, index: number, array: IndirectModule[]): value is IndirectModule => {
|
|
13
13
|
return array.findIndex((v) => v.address === value.address) === index
|
|
14
14
|
}
|