@xyo-network/module-abstract 2.64.8 → 2.64.9

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 (43) hide show
  1. package/dist/cjs/AbstractIndirectModule.js +411 -0
  2. package/dist/cjs/AbstractIndirectModule.js.map +1 -0
  3. package/dist/cjs/AbstractModule.js +24 -371
  4. package/dist/cjs/AbstractModule.js.map +1 -1
  5. package/dist/cjs/QueryValidator/SupportedQueryValidator.js.map +1 -1
  6. package/dist/cjs/Resolver/CompositeModuleResolver.js +2 -3
  7. package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -1
  8. package/dist/cjs/Resolver/ResolverEventEmitter.js.map +1 -1
  9. package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
  10. package/dist/cjs/lib/duplicateModules.js.map +1 -1
  11. package/dist/docs.json +4173 -3806
  12. package/dist/esm/AbstractIndirectModule.js +373 -0
  13. package/dist/esm/AbstractIndirectModule.js.map +1 -0
  14. package/dist/esm/AbstractModule.js +16 -350
  15. package/dist/esm/AbstractModule.js.map +1 -1
  16. package/dist/esm/QueryValidator/SupportedQueryValidator.js.map +1 -1
  17. package/dist/esm/Resolver/CompositeModuleResolver.js +2 -3
  18. package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -1
  19. package/dist/esm/Resolver/ResolverEventEmitter.js.map +1 -1
  20. package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
  21. package/dist/esm/lib/duplicateModules.js.map +1 -1
  22. package/dist/types/AbstractIndirectModule.d.ts +66 -0
  23. package/dist/types/AbstractIndirectModule.d.ts.map +1 -0
  24. package/dist/types/AbstractModule.d.ts +7 -58
  25. package/dist/types/AbstractModule.d.ts.map +1 -1
  26. package/dist/types/QueryValidator/SupportedQueryValidator.d.ts +4 -4
  27. package/dist/types/QueryValidator/SupportedQueryValidator.d.ts.map +1 -1
  28. package/dist/types/Resolver/CompositeModuleResolver.d.ts +5 -5
  29. package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -1
  30. package/dist/types/Resolver/ResolverEventEmitter.d.ts +2 -2
  31. package/dist/types/Resolver/ResolverEventEmitter.d.ts.map +1 -1
  32. package/dist/types/Resolver/SimpleModuleResolver.d.ts +5 -5
  33. package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -1
  34. package/dist/types/lib/duplicateModules.d.ts +2 -2
  35. package/dist/types/lib/duplicateModules.d.ts.map +1 -1
  36. package/package.json +24 -24
  37. package/src/AbstractIndirectModule.ts +497 -0
  38. package/src/AbstractModule.ts +20 -460
  39. package/src/QueryValidator/SupportedQueryValidator.ts +3 -3
  40. package/src/Resolver/CompositeModuleResolver.ts +9 -10
  41. package/src/Resolver/ResolverEventEmitter.ts +5 -5
  42. package/src/Resolver/SimpleModuleResolver.ts +11 -11
  43. package/src/lib/duplicateModules.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AddressModuleFilter,
3
- Module,
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, Module> = {}
17
+ private modules: Record<string, IndirectModule> = {}
18
18
 
19
19
  get isModuleResolver() {
20
20
  return true
21
21
  }
22
22
 
23
- add(module: Module): this
24
- add(module: Module[]): this
25
- add(module: Module | Module[]): this {
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 Module = Module>(filter?: ModuleFilter): Promisable<T[]> {
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 Module = Module>(filter: string): Promisable<T | undefined> {
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?: 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 Module = Module>(modules: T[], address?: string[]): T[] {
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 Module = Module>(modules: T[], name?: string[]): T[] {
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 Module = Module>(modules: T[], query?: string[][]): T[] {
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 { Module } from '@xyo-network/module-model'
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: Module, index: number, array: Module[]): value is Module => {
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
  }