@xyo-network/bridge-module-resolver 2.90.23 → 2.91.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 (35) hide show
  1. package/dist/browser/ModuleResolver.d.cts +5 -4
  2. package/dist/browser/ModuleResolver.d.cts.map +1 -1
  3. package/dist/browser/ModuleResolver.d.mts +5 -4
  4. package/dist/browser/ModuleResolver.d.mts.map +1 -1
  5. package/dist/browser/ModuleResolver.d.ts +5 -4
  6. package/dist/browser/ModuleResolver.d.ts.map +1 -1
  7. package/dist/browser/ProxyModule.d.cts +7 -6
  8. package/dist/browser/ProxyModule.d.cts.map +1 -1
  9. package/dist/browser/ProxyModule.d.mts +7 -6
  10. package/dist/browser/ProxyModule.d.mts.map +1 -1
  11. package/dist/browser/ProxyModule.d.ts +7 -6
  12. package/dist/browser/ProxyModule.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +1 -1
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +1 -1
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/node/ModuleResolver.d.cts +5 -4
  18. package/dist/node/ModuleResolver.d.cts.map +1 -1
  19. package/dist/node/ModuleResolver.d.mts +5 -4
  20. package/dist/node/ModuleResolver.d.mts.map +1 -1
  21. package/dist/node/ModuleResolver.d.ts +5 -4
  22. package/dist/node/ModuleResolver.d.ts.map +1 -1
  23. package/dist/node/ProxyModule.d.cts +7 -6
  24. package/dist/node/ProxyModule.d.cts.map +1 -1
  25. package/dist/node/ProxyModule.d.mts +7 -6
  26. package/dist/node/ProxyModule.d.mts.map +1 -1
  27. package/dist/node/ProxyModule.d.ts +7 -6
  28. package/dist/node/ProxyModule.d.ts.map +1 -1
  29. package/dist/node/index.cjs +1 -1
  30. package/dist/node/index.cjs.map +1 -1
  31. package/dist/node/index.js +1 -1
  32. package/dist/node/index.js.map +1 -1
  33. package/package.json +28 -27
  34. package/src/ModuleResolver.ts +19 -9
  35. package/src/ProxyModule.ts +6 -5
@@ -1,4 +1,5 @@
1
1
  import { handleError } from '@xylabs/error'
2
+ import { Address } from '@xylabs/hex'
2
3
  import { compact } from '@xylabs/lodash'
3
4
  import { AccountInstance } from '@xyo-network/account-model'
4
5
  import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
@@ -12,6 +13,7 @@ import {
12
13
  Module,
13
14
  ModuleFilter,
14
15
  ModuleFilterOptions,
16
+ ModuleIdentifier,
15
17
  ModuleInstance,
16
18
  ModuleResolverInstance,
17
19
  NameModuleFilter,
@@ -30,8 +32,8 @@ import { ProxyModule, ProxyModuleConfigSchema, ProxyModuleParams } from './Proxy
30
32
 
31
33
  export class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> extends CompositeModuleResolver implements ModuleResolverInstance {
32
34
  private primed: Promise<boolean> | undefined = undefined
33
- private remoteAddresses?: Promise<string[]>
34
- private resolvedModules: Record<string, Promise<ModuleInstance>> = {}
35
+ private remoteAddresses?: Promise<Address[]>
36
+ private resolvedModules: Record<Address, Promise<ModuleInstance>> = {}
35
37
 
36
38
  // TODO: Allow optional ctor param for supplying address for nested Nodes
37
39
  // protected readonly address?: string,
@@ -89,7 +91,7 @@ export class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> ext
89
91
  return this.primed
90
92
  }
91
93
 
92
- override remove(_address: string | string[]): this {
94
+ override remove(_address: Address | Address[]): this {
93
95
  throw new Error('Method not implemented.')
94
96
  }
95
97
 
@@ -100,9 +102,12 @@ export class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> ext
100
102
  }
101
103
 
102
104
  override async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>
103
- override async resolve<T extends ModuleInstance = ModuleInstance>(nameOrAddress: string, options?: ModuleFilterOptions<T>): Promise<T | undefined>
104
105
  override async resolve<T extends ModuleInstance = ModuleInstance>(
105
- nameOrAddressOrFilter?: ModuleFilter<T> | string,
106
+ nameOrAddress: ModuleIdentifier,
107
+ options?: ModuleFilterOptions<T>,
108
+ ): Promise<T | undefined>
109
+ override async resolve<T extends ModuleInstance = ModuleInstance>(
110
+ nameOrAddressOrFilter?: ModuleFilter<T> | ModuleIdentifier,
106
111
  options?: ModuleFilterOptions<T>,
107
112
  ): Promise<T | T[] | undefined> {
108
113
  const unfiltered = await (async () => {
@@ -113,7 +118,8 @@ export class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> ext
113
118
  if (mutatedOptions.maxDepth < 0) {
114
119
  return
115
120
  }
116
- const result: T | undefined = (await this.resolveByAddress<T>(nameOrAddressOrFilter)) ?? (await this.resolveByName<T>(nameOrAddressOrFilter))
121
+ const result: T | undefined =
122
+ (await this.resolveByAddress<T>(nameOrAddressOrFilter as Address)) ?? (await this.resolveByName<T>(nameOrAddressOrFilter))
117
123
  return result
118
124
  } else {
119
125
  if (mutatedOptions.maxDepth < 0) {
@@ -126,13 +132,17 @@ export class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> ext
126
132
 
127
133
  const identity = options?.identity
128
134
  if (identity) {
129
- return Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module)) : identity(unfiltered) ? unfiltered : undefined
135
+ return (
136
+ Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module))
137
+ : identity(unfiltered) ? unfiltered
138
+ : undefined
139
+ )
130
140
  } else {
131
141
  return unfiltered
132
142
  }
133
143
  }
134
144
 
135
- private async resolveByAddress<T extends ModuleInstance = ModuleInstance>(targetAddress: string): Promise<T | undefined> {
145
+ private async resolveByAddress<T extends ModuleInstance = ModuleInstance>(targetAddress: Address): Promise<T | undefined> {
136
146
  const remoteAddresses = await this.getRemoteAddresses()
137
147
 
138
148
  //check if it is even there
@@ -146,7 +156,7 @@ export class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> ext
146
156
 
147
157
  this.resolvedModules[targetAddress] =
148
158
  this.resolvedModules[targetAddress] ??
149
- (async (address: string) => {
159
+ (async (address: Address) => {
150
160
  //discover it to set the config in the bridge
151
161
  await this.bridge.targetDiscover(address)
152
162
 
@@ -1,4 +1,5 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
+ import { Address } from '@xylabs/hex'
2
3
  import { compact } from '@xylabs/lodash'
3
4
  import { Promisable } from '@xylabs/promise'
4
5
  import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
@@ -29,7 +30,7 @@ export type TProxyModuleConfig = ModuleConfig<{ schema: ProxyModuleConfigSchema
29
30
  export type ProxyModuleParams = ModuleParams<
30
31
  TProxyModuleConfig,
31
32
  {
32
- address: string
33
+ address: Address
33
34
  bridge: BridgeModule
34
35
  }
35
36
  >
@@ -44,7 +45,7 @@ export class ProxyModule extends BaseEmitter<ModuleParams, ModuleEventData> impl
44
45
  }
45
46
 
46
47
  get address() {
47
- return this.proxyParams.address.toLowerCase()
48
+ return this.proxyParams.address
48
49
  }
49
50
 
50
51
  get bridge() {
@@ -152,9 +153,9 @@ export class ProxyModule extends BaseEmitter<ModuleParams, ModuleEventData> impl
152
153
  options?: ModuleFilterOptions,
153
154
  ): Promise<ModuleInstance | ModuleInstance[] | undefined> {
154
155
  return await this.busy(async () => {
155
- return await (typeof nameOrAddressOrFilter === 'string'
156
- ? this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options)
157
- : this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options))
156
+ return await (typeof nameOrAddressOrFilter === 'string' ?
157
+ this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options)
158
+ : this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options))
158
159
  })
159
160
  }
160
161
  }