@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.
Files changed (70) hide show
  1. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  2. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  3. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  4. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  5. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  6. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  7. package/dist/browser/PubSubBridge.d.cts +8 -2
  8. package/dist/browser/PubSubBridge.d.cts.map +1 -1
  9. package/dist/browser/PubSubBridge.d.mts +8 -2
  10. package/dist/browser/PubSubBridge.d.mts.map +1 -1
  11. package/dist/browser/PubSubBridge.d.ts +8 -2
  12. package/dist/browser/PubSubBridge.d.ts.map +1 -1
  13. package/dist/browser/PubSubBridgeModuleResolver.d.cts +13 -0
  14. package/dist/browser/PubSubBridgeModuleResolver.d.cts.map +1 -1
  15. package/dist/browser/PubSubBridgeModuleResolver.d.mts +13 -0
  16. package/dist/browser/PubSubBridgeModuleResolver.d.mts.map +1 -1
  17. package/dist/browser/PubSubBridgeModuleResolver.d.ts +13 -0
  18. package/dist/browser/PubSubBridgeModuleResolver.d.ts.map +1 -1
  19. package/dist/browser/index.cjs +106 -20
  20. package/dist/browser/index.cjs.map +1 -1
  21. package/dist/browser/index.js +102 -16
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  24. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  25. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  26. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  27. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  28. package/dist/neutral/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  29. package/dist/neutral/PubSubBridge.d.cts +8 -2
  30. package/dist/neutral/PubSubBridge.d.cts.map +1 -1
  31. package/dist/neutral/PubSubBridge.d.mts +8 -2
  32. package/dist/neutral/PubSubBridge.d.mts.map +1 -1
  33. package/dist/neutral/PubSubBridge.d.ts +8 -2
  34. package/dist/neutral/PubSubBridge.d.ts.map +1 -1
  35. package/dist/neutral/PubSubBridgeModuleResolver.d.cts +13 -0
  36. package/dist/neutral/PubSubBridgeModuleResolver.d.cts.map +1 -1
  37. package/dist/neutral/PubSubBridgeModuleResolver.d.mts +13 -0
  38. package/dist/neutral/PubSubBridgeModuleResolver.d.mts.map +1 -1
  39. package/dist/neutral/PubSubBridgeModuleResolver.d.ts +13 -0
  40. package/dist/neutral/PubSubBridgeModuleResolver.d.ts.map +1 -1
  41. package/dist/neutral/index.cjs +106 -20
  42. package/dist/neutral/index.cjs.map +1 -1
  43. package/dist/neutral/index.js +102 -16
  44. package/dist/neutral/index.js.map +1 -1
  45. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +8 -1
  46. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  47. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +8 -1
  48. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  49. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +8 -1
  50. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  51. package/dist/node/PubSubBridge.d.cts +8 -2
  52. package/dist/node/PubSubBridge.d.cts.map +1 -1
  53. package/dist/node/PubSubBridge.d.mts +8 -2
  54. package/dist/node/PubSubBridge.d.mts.map +1 -1
  55. package/dist/node/PubSubBridge.d.ts +8 -2
  56. package/dist/node/PubSubBridge.d.ts.map +1 -1
  57. package/dist/node/PubSubBridgeModuleResolver.d.cts +13 -0
  58. package/dist/node/PubSubBridgeModuleResolver.d.cts.map +1 -1
  59. package/dist/node/PubSubBridgeModuleResolver.d.mts +13 -0
  60. package/dist/node/PubSubBridgeModuleResolver.d.mts.map +1 -1
  61. package/dist/node/PubSubBridgeModuleResolver.d.ts +13 -0
  62. package/dist/node/PubSubBridgeModuleResolver.d.ts.map +1 -1
  63. package/dist/node/index.cjs +107 -20
  64. package/dist/node/index.cjs.map +1 -1
  65. package/dist/node/index.js +103 -16
  66. package/dist/node/index.js.map +1 -1
  67. package/package.json +20 -20
  68. package/src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts +50 -1
  69. package/src/PubSubBridge.ts +57 -3
  70. 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.params.bridge,
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.add(instance)
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
  }