@xyo-network/bridge-pub-sub 2.101.2 → 2.101.4
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/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
- package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/browser/PubSubBridge.d.cts +8 -2
- package/dist/browser/PubSubBridge.d.cts.map +1 -1
- package/dist/browser/PubSubBridge.d.mts +8 -2
- package/dist/browser/PubSubBridge.d.mts.map +1 -1
- package/dist/browser/PubSubBridge.d.ts +8 -2
- package/dist/browser/PubSubBridge.d.ts.map +1 -1
- package/dist/browser/PubSubBridgeModuleResolver.d.cts +13 -0
- package/dist/browser/PubSubBridgeModuleResolver.d.cts.map +1 -1
- package/dist/browser/PubSubBridgeModuleResolver.d.mts +13 -0
- package/dist/browser/PubSubBridgeModuleResolver.d.mts.map +1 -1
- package/dist/browser/PubSubBridgeModuleResolver.d.ts +13 -0
- package/dist/browser/PubSubBridgeModuleResolver.d.ts.map +1 -1
- package/dist/browser/index.cjs +106 -20
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +102 -16
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
- package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/neutral/PubSubBridge.d.cts +8 -2
- package/dist/neutral/PubSubBridge.d.cts.map +1 -1
- package/dist/neutral/PubSubBridge.d.mts +8 -2
- package/dist/neutral/PubSubBridge.d.mts.map +1 -1
- package/dist/neutral/PubSubBridge.d.ts +8 -2
- package/dist/neutral/PubSubBridge.d.ts.map +1 -1
- package/dist/neutral/PubSubBridgeModuleResolver.d.cts +13 -0
- package/dist/neutral/PubSubBridgeModuleResolver.d.cts.map +1 -1
- package/dist/neutral/PubSubBridgeModuleResolver.d.mts +13 -0
- package/dist/neutral/PubSubBridgeModuleResolver.d.mts.map +1 -1
- package/dist/neutral/PubSubBridgeModuleResolver.d.ts +13 -0
- package/dist/neutral/PubSubBridgeModuleResolver.d.ts.map +1 -1
- package/dist/neutral/index.cjs +106 -20
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +102 -16
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
- package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/node/PubSubBridge.d.cts +8 -2
- package/dist/node/PubSubBridge.d.cts.map +1 -1
- package/dist/node/PubSubBridge.d.mts +8 -2
- package/dist/node/PubSubBridge.d.mts.map +1 -1
- package/dist/node/PubSubBridge.d.ts +8 -2
- package/dist/node/PubSubBridge.d.ts.map +1 -1
- package/dist/node/PubSubBridgeModuleResolver.d.cts +13 -0
- package/dist/node/PubSubBridgeModuleResolver.d.cts.map +1 -1
- package/dist/node/PubSubBridgeModuleResolver.d.mts +13 -0
- package/dist/node/PubSubBridgeModuleResolver.d.mts.map +1 -1
- package/dist/node/PubSubBridgeModuleResolver.d.ts +13 -0
- package/dist/node/PubSubBridgeModuleResolver.d.ts.map +1 -1
- package/dist/node/index.cjs +107 -20
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +103 -16
- package/dist/node/index.js.map +1 -1
- package/package.json +20 -20
- package/src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts +50 -1
- package/src/PubSubBridge.ts +57 -3
- package/src/PubSubBridgeModuleResolver.ts +10 -2
|
@@ -4,6 +4,7 @@ import { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWit
|
|
|
4
4
|
import { Account } from '@xyo-network/account'
|
|
5
5
|
import { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'
|
|
6
6
|
import { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'
|
|
7
|
+
import { LRUCache } from 'lru-cache'
|
|
7
8
|
|
|
8
9
|
import { AsyncQueryBusClient, AsyncQueryBusModuleProxy, AsyncQueryBusModuleProxyParams } from './AsyncQueryBus'
|
|
9
10
|
|
|
@@ -12,6 +13,8 @@ export interface PubSubBridgeModuleResolverParams extends BridgeModuleResolverPa
|
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export class PubSubBridgeModuleResolver extends AbstractBridgeModuleResolver<PubSubBridgeModuleResolverParams> {
|
|
16
|
+
protected _resolvedCache = new LRUCache<Address, ModuleInstance>({ max: 1000 })
|
|
17
|
+
|
|
15
18
|
override async resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T[]> {
|
|
16
19
|
const parentResult = await super.resolveHandler(id, options)
|
|
17
20
|
if (parentResult.length > 0) {
|
|
@@ -21,13 +24,18 @@ export class PubSubBridgeModuleResolver extends AbstractBridgeModuleResolver<Pub
|
|
|
21
24
|
const firstPart = idParts.shift()
|
|
22
25
|
assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)
|
|
23
26
|
const remainderParts = idParts.join(':')
|
|
27
|
+
const cachedMod = this._resolvedCache.get(firstPart as Address)
|
|
28
|
+
if (cachedMod) {
|
|
29
|
+
const result = idParts.length <= 0 ? cachedMod : cachedMod.resolve(remainderParts, { ...options, maxDepth: (options?.maxDepth ?? 5) - 1 })
|
|
30
|
+
return (result ? [result] : []) as T[]
|
|
31
|
+
}
|
|
24
32
|
const account = Account.randomSync()
|
|
25
33
|
const finalParams: AsyncQueryBusModuleProxyParams = {
|
|
26
34
|
account,
|
|
27
35
|
archiving: this.params.archiving,
|
|
28
36
|
busClient: this.params.busClient,
|
|
29
37
|
config: { schema: ModuleConfigSchema },
|
|
30
|
-
host: this
|
|
38
|
+
host: this,
|
|
31
39
|
moduleAddress: firstPart as Address,
|
|
32
40
|
onQuerySendFinished: this.params.onQuerySendFinished,
|
|
33
41
|
onQuerySendStarted: this.params.onQuerySendStarted,
|
|
@@ -49,7 +57,7 @@ export class PubSubBridgeModuleResolver extends AbstractBridgeModuleResolver<Pub
|
|
|
49
57
|
const instance = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)
|
|
50
58
|
proxy.upResolver.add(instance)
|
|
51
59
|
proxy.downResolver.add(instance)
|
|
52
|
-
this.
|
|
60
|
+
this._resolvedCache.set(instance.address, instance)
|
|
53
61
|
const result = remainderParts.length > 0 ? await proxy.resolve(remainderParts, options) : instance
|
|
54
62
|
return result ? [result] : []
|
|
55
63
|
}
|