@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.
- package/dist/browser/ModuleResolver.d.cts +5 -4
- package/dist/browser/ModuleResolver.d.cts.map +1 -1
- package/dist/browser/ModuleResolver.d.mts +5 -4
- package/dist/browser/ModuleResolver.d.mts.map +1 -1
- package/dist/browser/ModuleResolver.d.ts +5 -4
- package/dist/browser/ModuleResolver.d.ts.map +1 -1
- package/dist/browser/ProxyModule.d.cts +7 -6
- package/dist/browser/ProxyModule.d.cts.map +1 -1
- package/dist/browser/ProxyModule.d.mts +7 -6
- package/dist/browser/ProxyModule.d.mts.map +1 -1
- package/dist/browser/ProxyModule.d.ts +7 -6
- package/dist/browser/ProxyModule.d.ts.map +1 -1
- package/dist/browser/index.cjs +1 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/node/ModuleResolver.d.cts +5 -4
- package/dist/node/ModuleResolver.d.cts.map +1 -1
- package/dist/node/ModuleResolver.d.mts +5 -4
- package/dist/node/ModuleResolver.d.mts.map +1 -1
- package/dist/node/ModuleResolver.d.ts +5 -4
- package/dist/node/ModuleResolver.d.ts.map +1 -1
- package/dist/node/ProxyModule.d.cts +7 -6
- package/dist/node/ProxyModule.d.cts.map +1 -1
- package/dist/node/ProxyModule.d.mts +7 -6
- package/dist/node/ProxyModule.d.mts.map +1 -1
- package/dist/node/ProxyModule.d.ts +7 -6
- package/dist/node/ProxyModule.d.ts.map +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +28 -27
- package/src/ModuleResolver.ts +19 -9
- package/src/ProxyModule.ts +6 -5
package/src/ModuleResolver.ts
CHANGED
|
@@ -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<
|
|
34
|
-
private resolvedModules: Record<
|
|
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:
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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:
|
|
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:
|
|
159
|
+
(async (address: Address) => {
|
|
150
160
|
//discover it to set the config in the bridge
|
|
151
161
|
await this.bridge.targetDiscover(address)
|
|
152
162
|
|
package/src/ProxyModule.ts
CHANGED
|
@@ -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:
|
|
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
|
|
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
|
-
|
|
157
|
-
|
|
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
|
}
|