@xyo-network/bridge-module-resolver 2.51.9 → 2.51.10
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/cjs/ModuleResolver.js +1 -1
- package/dist/cjs/ModuleResolver.js.map +1 -1
- package/dist/cjs/ProxyModule.js +11 -19
- package/dist/cjs/ProxyModule.js.map +1 -1
- package/dist/docs.json +42025 -10158
- package/dist/esm/ModuleResolver.js +2 -2
- package/dist/esm/ModuleResolver.js.map +1 -1
- package/dist/esm/ProxyModule.js +11 -19
- package/dist/esm/ProxyModule.js.map +1 -1
- package/dist/types/ModuleResolver.d.ts +2 -2
- package/dist/types/ModuleResolver.d.ts.map +1 -1
- package/dist/types/ProxyModule.d.ts +53 -7
- package/dist/types/ProxyModule.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/ModuleResolver.ts +4 -4
- package/src/ProxyModule.ts +27 -17
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
2
2
|
import { CompositeModuleResolver } from '@xyo-network/module';
|
|
3
3
|
import compact from 'lodash/compact';
|
|
4
|
-
import { ProxyModule } from './ProxyModule';
|
|
4
|
+
import { ProxyModule, ProxyModuleConfigSchema } from './ProxyModule';
|
|
5
5
|
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
6
6
|
bridge;
|
|
7
7
|
remoteAddresses;
|
|
@@ -61,7 +61,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
61
61
|
this.resolvedModules[targetAddress] =
|
|
62
62
|
this.resolvedModules[targetAddress] ??
|
|
63
63
|
(async (address) => {
|
|
64
|
-
const mod = new ProxyModule(this.bridge,
|
|
64
|
+
const mod = new ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModuleConfigSchema } });
|
|
65
65
|
try {
|
|
66
66
|
//discover it to set the config in the bridge
|
|
67
67
|
await this.bridge.targetDiscover(address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/ProxyModule.js
CHANGED
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
_address;
|
|
2
|
+
import { BaseEmitter, CompositeModuleResolver, } from '@xyo-network/module';
|
|
3
|
+
export const ProxyModuleConfigSchema = 'network.xyo.module.proxy.config';
|
|
4
|
+
export class ProxyModule extends BaseEmitter {
|
|
6
5
|
upResolver = new CompositeModuleResolver();
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.bridge = bridge;
|
|
10
|
-
this._address = _address;
|
|
6
|
+
constructor(params) {
|
|
7
|
+
super(params);
|
|
11
8
|
}
|
|
12
9
|
get address() {
|
|
13
|
-
return this.
|
|
10
|
+
return this.params.address;
|
|
11
|
+
}
|
|
12
|
+
get bridge() {
|
|
13
|
+
return this.params.bridge;
|
|
14
14
|
}
|
|
15
15
|
get config() {
|
|
16
16
|
return this.bridge.targetConfig(this.address);
|
|
17
17
|
}
|
|
18
18
|
get downResolver() {
|
|
19
|
-
return this.bridge.targetDownResolver;
|
|
19
|
+
return this.bridge.targetDownResolver(this.address);
|
|
20
20
|
}
|
|
21
21
|
get queries() {
|
|
22
22
|
return this.bridge.targetQueries(this.address);
|
|
23
23
|
}
|
|
24
|
-
on(event, listener) {
|
|
25
|
-
switch (event) {
|
|
26
|
-
case ModuleQueriedEvent:
|
|
27
|
-
this.moduleQueriedEventListeners?.push(listener);
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
return this;
|
|
31
|
-
}
|
|
32
24
|
async query(query, payloads) {
|
|
33
25
|
const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed');
|
|
34
26
|
const args = { module: this, payloads, query, result };
|
|
35
|
-
this.
|
|
27
|
+
await this.emit('moduleQuery', args);
|
|
36
28
|
return result;
|
|
37
29
|
}
|
|
38
30
|
async queryable(query, payloads, queryConfig) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EACL,WAAW,EACX,uBAAuB,GAQxB,MAAM,qBAAqB,CAAA;AAI5B,MAAM,CAAC,MAAM,uBAAuB,GAA4B,iCAAiC,CAAA;AAajG,MAAM,OAAO,WAAY,SAAQ,WAA8B;IACpD,UAAU,GAAG,IAAI,uBAAuB,EAAE,CAAA;IAEnD,YAAY,MAAyB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,KAAK,CAAwD,KAAQ,EAAE,QAAuB;QAClG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAC,CAAA;QAC5G,MAAM,IAAI,GAA2B,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;QAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA2B,EAAE,QAAuB,EAAE,WAA0B;QAC9F,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACtF,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,OAAO,CAAC,MAAqB;QACjC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9D,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BridgeModule } from '@xyo-network/bridge-model';
|
|
2
2
|
import { CompositeModuleResolver } from '@xyo-network/module';
|
|
3
|
-
import { Module, ModuleFilter } from '@xyo-network/module-model';
|
|
4
|
-
export declare class BridgeModuleResolver extends CompositeModuleResolver {
|
|
3
|
+
import { Module, ModuleFilter, ModuleResolver } from '@xyo-network/module-model';
|
|
4
|
+
export declare class BridgeModuleResolver extends CompositeModuleResolver implements ModuleResolver {
|
|
5
5
|
protected readonly bridge: BridgeModule;
|
|
6
6
|
private remoteAddresses?;
|
|
7
7
|
private resolvedModules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAuB,MAAM,EAAE,YAAY,EAAuC,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAuB,MAAM,EAAE,YAAY,EAAE,cAAc,EAAuC,MAAM,2BAA2B,CAAA;AAK1I,qBAAa,oBAAqB,SAAQ,uBAAwB,YAAW,cAAc;IAM7E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IALnD,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,eAAe,CAAsC;gBAI9B,MAAM,EAAE,YAAY;IAInD,IAAa,gBAAgB,IAAI,OAAO,CAEvC;IAEQ,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9B,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAW/E,kBAAkB;IAmBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAInC,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;YAIxE,gBAAgB;YA8BhB,aAAa;YAIb,cAAc;YAUd,oBAAoB;YAiBpB,6BAA6B;YAI7B,0BAA0B;YAI1B,2BAA2B;CAG1C"}
|
|
@@ -1,17 +1,63 @@
|
|
|
1
1
|
import { BridgeModule } from '@xyo-network/bridge-model';
|
|
2
|
-
import {
|
|
2
|
+
import { BaseEmitter, CompositeModuleResolver, Module, ModuleConfig, ModuleFilter, ModuleParams, ModuleQueryResult, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
3
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export type ProxyModuleConfigSchema = 'network.xyo.module.proxy.config';
|
|
5
|
+
export declare const ProxyModuleConfigSchema: ProxyModuleConfigSchema;
|
|
6
|
+
export type TProxyModuleConfig = ModuleConfig<{
|
|
7
|
+
schema: ProxyModuleConfigSchema;
|
|
8
|
+
}>;
|
|
9
|
+
export type ProxyModuleParams = ModuleParams<TProxyModuleConfig, undefined, {
|
|
10
|
+
address: string;
|
|
11
|
+
bridge: BridgeModule;
|
|
12
|
+
}>;
|
|
13
|
+
export declare class ProxyModule extends BaseEmitter<ProxyModuleParams> implements Module {
|
|
7
14
|
readonly upResolver: CompositeModuleResolver;
|
|
8
|
-
|
|
9
|
-
constructor(bridge: BridgeModule, _address: string);
|
|
15
|
+
constructor(params: ProxyModuleParams);
|
|
10
16
|
get address(): string;
|
|
17
|
+
get bridge(): BridgeModule<import("@xyo-network/bridge-model").BridgeParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
18
|
+
name?: string | undefined;
|
|
19
|
+
schema: string;
|
|
20
|
+
security?: {
|
|
21
|
+
allowAnonymous?: boolean | undefined;
|
|
22
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
23
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
storeQueries?: boolean | undefined;
|
|
26
|
+
} & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
27
|
+
name?: string | undefined;
|
|
28
|
+
schema: "network.xyo.module.config";
|
|
29
|
+
security?: {
|
|
30
|
+
allowAnonymous?: boolean | undefined;
|
|
31
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
32
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
33
|
+
} | undefined;
|
|
34
|
+
storeQueries?: boolean | undefined;
|
|
35
|
+
} & Omit<undefined, "schema">, "schema"> & {
|
|
36
|
+
schema: string;
|
|
37
|
+
}, "schema">>, Module<ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
38
|
+
name?: string | undefined;
|
|
39
|
+
schema: string;
|
|
40
|
+
security?: {
|
|
41
|
+
allowAnonymous?: boolean | undefined;
|
|
42
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
43
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
44
|
+
} | undefined;
|
|
45
|
+
storeQueries?: boolean | undefined;
|
|
46
|
+
} & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
47
|
+
name?: string | undefined;
|
|
48
|
+
schema: "network.xyo.module.config";
|
|
49
|
+
security?: {
|
|
50
|
+
allowAnonymous?: boolean | undefined;
|
|
51
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
52
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
53
|
+
} | undefined;
|
|
54
|
+
storeQueries?: boolean | undefined;
|
|
55
|
+
} & Omit<undefined, "schema">, "schema"> & {
|
|
56
|
+
schema: string;
|
|
57
|
+
}, "schema">, undefined, undefined>>>;
|
|
11
58
|
get config(): ModuleConfig;
|
|
12
59
|
get downResolver(): import("@xyo-network/module").ModuleResolver;
|
|
13
60
|
get queries(): string[];
|
|
14
|
-
on(event: ModuleQueriedEvent, listener: (args: ModuleQueriedEventArgs) => void): this;
|
|
15
61
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
16
62
|
queryable(query: XyoQueryBoundWitness, payloads?: XyoPayload[], queryConfig?: ModuleConfig): Promise<boolean>;
|
|
17
63
|
resolve(filter?: ModuleFilter): Promise<Module[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyModule.d.ts","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EACL,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"ProxyModule.d.ts","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,uBAAuB,GAAG,iCAAiC,CAAA;AACvE,eAAO,MAAM,uBAAuB,EAAE,uBAA2D,CAAA;AAEjG,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;IAAE,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAC1C,kBAAkB,EAClB,SAAS,EACT;IACE,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,YAAY,CAAA;CACrB,CACF,CAAA;AAED,qBAAa,WAAY,SAAQ,WAAW,CAAC,iBAAiB,CAAE,YAAW,MAAM;IAC/E,QAAQ,CAAC,UAAU,0BAAgC;gBAEvC,MAAM,EAAE,iBAAiB;IAIrC,IAAI,OAAO,WAEV;IAED,IAAI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAET;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,YAAY,iDAEf;IAED,IAAI,OAAO,aAEV;IAEK,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO3H,SAAS,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7G,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGxD"}
|
package/package.json
CHANGED
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.7.4",
|
|
14
|
-
"@xyo-network/address-payload-plugin": "^2.51.
|
|
15
|
-
"@xyo-network/bridge-model": "^2.51.
|
|
16
|
-
"@xyo-network/module": "^2.51.
|
|
17
|
-
"@xyo-network/module-model": "^2.51.
|
|
18
|
-
"@xyo-network/payload-model": "^2.51.
|
|
14
|
+
"@xyo-network/address-payload-plugin": "^2.51.10",
|
|
15
|
+
"@xyo-network/bridge-model": "^2.51.10",
|
|
16
|
+
"@xyo-network/module": "^2.51.10",
|
|
17
|
+
"@xyo-network/module-model": "^2.51.10",
|
|
18
|
+
"@xyo-network/payload-model": "^2.51.10",
|
|
19
19
|
"lodash": "^4.17.21"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
},
|
|
57
57
|
"sideEffects": false,
|
|
58
58
|
"types": "dist/types/index.d.ts",
|
|
59
|
-
"version": "2.51.
|
|
59
|
+
"version": "2.51.10"
|
|
60
60
|
}
|
package/src/ModuleResolver.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'
|
|
2
2
|
import { BridgeModule } from '@xyo-network/bridge-model'
|
|
3
3
|
import { CompositeModuleResolver } from '@xyo-network/module'
|
|
4
|
-
import { AddressModuleFilter, Module, ModuleFilter, NameModuleFilter, QueryModuleFilter } from '@xyo-network/module-model'
|
|
4
|
+
import { AddressModuleFilter, Module, ModuleFilter, ModuleResolver, NameModuleFilter, QueryModuleFilter } from '@xyo-network/module-model'
|
|
5
5
|
import compact from 'lodash/compact'
|
|
6
6
|
|
|
7
|
-
import { ProxyModule } from './ProxyModule'
|
|
7
|
+
import { ProxyModule, ProxyModuleConfigSchema, ProxyModuleParams } from './ProxyModule'
|
|
8
8
|
|
|
9
|
-
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
9
|
+
export class BridgeModuleResolver extends CompositeModuleResolver implements ModuleResolver {
|
|
10
10
|
private remoteAddresses?: Promise<string[]>
|
|
11
11
|
private resolvedModules: Record<string, Promise<Module>> = {}
|
|
12
12
|
|
|
@@ -79,7 +79,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
79
79
|
this.resolvedModules[targetAddress] =
|
|
80
80
|
this.resolvedModules[targetAddress] ??
|
|
81
81
|
(async (address: string) => {
|
|
82
|
-
const mod = new ProxyModule(this.bridge,
|
|
82
|
+
const mod = new ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModuleConfigSchema } } as ProxyModuleParams)
|
|
83
83
|
|
|
84
84
|
try {
|
|
85
85
|
//discover it to set the config in the bridge
|
package/src/ProxyModule.ts
CHANGED
|
@@ -1,26 +1,45 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { BridgeModule } from '@xyo-network/bridge-model'
|
|
3
3
|
import {
|
|
4
|
+
BaseEmitter,
|
|
4
5
|
CompositeModuleResolver,
|
|
5
|
-
EventListener,
|
|
6
6
|
Module,
|
|
7
7
|
ModuleConfig,
|
|
8
8
|
ModuleFilter,
|
|
9
|
-
|
|
9
|
+
ModuleParams,
|
|
10
10
|
ModuleQueriedEventArgs,
|
|
11
11
|
ModuleQueryResult,
|
|
12
12
|
XyoQueryBoundWitness,
|
|
13
13
|
} from '@xyo-network/module'
|
|
14
14
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
15
15
|
|
|
16
|
-
export
|
|
16
|
+
export type ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'
|
|
17
|
+
export const ProxyModuleConfigSchema: ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'
|
|
18
|
+
|
|
19
|
+
export type TProxyModuleConfig = ModuleConfig<{ schema: ProxyModuleConfigSchema }>
|
|
20
|
+
|
|
21
|
+
export type ProxyModuleParams = ModuleParams<
|
|
22
|
+
TProxyModuleConfig,
|
|
23
|
+
undefined,
|
|
24
|
+
{
|
|
25
|
+
address: string
|
|
26
|
+
bridge: BridgeModule
|
|
27
|
+
}
|
|
28
|
+
>
|
|
29
|
+
|
|
30
|
+
export class ProxyModule extends BaseEmitter<ProxyModuleParams> implements Module {
|
|
17
31
|
readonly upResolver = new CompositeModuleResolver()
|
|
18
|
-
protected readonly moduleQueriedEventListeners: EventListener<ModuleQueriedEventArgs>[] = []
|
|
19
32
|
|
|
20
|
-
constructor(
|
|
33
|
+
constructor(params: ProxyModuleParams) {
|
|
34
|
+
super(params)
|
|
35
|
+
}
|
|
21
36
|
|
|
22
37
|
get address() {
|
|
23
|
-
return this.
|
|
38
|
+
return this.params.address
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get bridge() {
|
|
42
|
+
return this.params.bridge
|
|
24
43
|
}
|
|
25
44
|
|
|
26
45
|
get config(): ModuleConfig {
|
|
@@ -28,26 +47,17 @@ export class ProxyModule implements Module {
|
|
|
28
47
|
}
|
|
29
48
|
|
|
30
49
|
get downResolver() {
|
|
31
|
-
return this.bridge.targetDownResolver
|
|
50
|
+
return this.bridge.targetDownResolver(this.address)
|
|
32
51
|
}
|
|
33
52
|
|
|
34
53
|
get queries() {
|
|
35
54
|
return this.bridge.targetQueries(this.address)
|
|
36
55
|
}
|
|
37
56
|
|
|
38
|
-
on(event: ModuleQueriedEvent, listener: (args: ModuleQueriedEventArgs) => void): this {
|
|
39
|
-
switch (event) {
|
|
40
|
-
case ModuleQueriedEvent:
|
|
41
|
-
this.moduleQueriedEventListeners?.push(listener as EventListener<ModuleQueriedEventArgs>)
|
|
42
|
-
break
|
|
43
|
-
}
|
|
44
|
-
return this
|
|
45
|
-
}
|
|
46
|
-
|
|
47
57
|
async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
|
|
48
58
|
const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed')
|
|
49
59
|
const args: ModuleQueriedEventArgs = { module: this, payloads, query, result }
|
|
50
|
-
this.
|
|
60
|
+
await this.emit('moduleQuery', args)
|
|
51
61
|
return result
|
|
52
62
|
}
|
|
53
63
|
|