@xyo-network/bridge 2.38.0-rc.9 → 2.38.1
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/XyoBridge.d.ts +3 -6
- package/dist/cjs/XyoBridge.d.ts.map +1 -1
- package/dist/cjs/XyoBridge.js +20 -14
- package/dist/cjs/XyoBridge.js.map +1 -1
- package/dist/cjs/XyoHttpBridge.d.ts +4 -4
- package/dist/cjs/XyoHttpBridge.d.ts.map +1 -1
- package/dist/cjs/XyoHttpBridge.js +27 -14
- package/dist/cjs/XyoHttpBridge.js.map +1 -1
- package/dist/docs.json +2146 -1431
- package/dist/esm/XyoBridge.d.ts +3 -6
- package/dist/esm/XyoBridge.d.ts.map +1 -1
- package/dist/esm/XyoBridge.js +21 -15
- package/dist/esm/XyoBridge.js.map +1 -1
- package/dist/esm/XyoHttpBridge.d.ts +4 -4
- package/dist/esm/XyoHttpBridge.d.ts.map +1 -1
- package/dist/esm/XyoHttpBridge.js +26 -15
- package/dist/esm/XyoHttpBridge.js.map +1 -1
- package/package.json +5 -7
- package/src/XyoBridge.ts +22 -18
- package/src/XyoHttpBridge.spec.ts +4 -3
- package/src/XyoHttpBridge.ts +39 -20
package/dist/esm/XyoBridge.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
1
|
+
import { ModuleQueryResult, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload';
|
|
4
3
|
import { Promisable } from '@xyo-network/promise';
|
|
5
4
|
import { BridgeModule } from './Bridge';
|
|
@@ -8,9 +7,7 @@ export declare abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBri
|
|
|
8
7
|
queries(): string[];
|
|
9
8
|
abstract connect(): Promisable<boolean>;
|
|
10
9
|
abstract disconnect(): Promisable<boolean>;
|
|
11
|
-
abstract forward(query: XyoQuery): Promise<
|
|
12
|
-
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<
|
|
13
|
-
schema: string;
|
|
14
|
-
}>>;
|
|
10
|
+
abstract forward(query: XyoQuery): Promise<ModuleQueryResult>;
|
|
11
|
+
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=XyoBridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"XyoBridge.d.ts","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA6C,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,8BAAsB,SAAS,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,YAAY;IAC1H,OAAO;IAIhB,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;IACvC,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;IAE1C,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAE9C,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA8B3I"}
|
package/dist/esm/XyoBridge.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
3
|
-
import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
|
|
3
|
+
import { QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule } from '@xyo-network/module';
|
|
4
4
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
|
|
5
5
|
export class XyoBridge extends XyoModule {
|
|
6
6
|
queries() {
|
|
@@ -11,22 +11,28 @@ export class XyoBridge extends XyoModule {
|
|
|
11
11
|
const typedQuery = wrapper.query.payload;
|
|
12
12
|
assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
|
|
13
13
|
const queryAccount = new XyoAccount();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
case XyoBridgeDisconnectQuerySchema: {
|
|
20
|
-
await this.disconnect();
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
default:
|
|
24
|
-
if (super.queries().includes(typedQuery.schema)) {
|
|
25
|
-
return super.query(query, payloads);
|
|
14
|
+
try {
|
|
15
|
+
switch (typedQuery.schema) {
|
|
16
|
+
case XyoBridgeConnectQuerySchema: {
|
|
17
|
+
await this.connect();
|
|
18
|
+
break;
|
|
26
19
|
}
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
case XyoBridgeDisconnectQuerySchema: {
|
|
21
|
+
await this.disconnect();
|
|
22
|
+
break;
|
|
29
23
|
}
|
|
24
|
+
default:
|
|
25
|
+
if (super.queries().includes(typedQuery.schema)) {
|
|
26
|
+
return super.query(query, payloads);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return this.forward(typedQuery);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (ex) {
|
|
34
|
+
const error = ex;
|
|
35
|
+
return this.bindResult([new XyoErrorBuilder([wrapper.hash], error.message).build()], queryAccount);
|
|
30
36
|
}
|
|
31
37
|
return this.bindResult([], queryAccount);
|
|
32
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBridge.js","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoBridge.js","sourceRoot":"","sources":["../../src/XyoBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAqB,wBAAwB,EAAE,eAAe,EAAE,SAAS,EAAkC,MAAM,qBAAqB,CAAA;AAM7I,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAkB,MAAM,WAAW,CAAA;AAEvG,MAAM,OAAgB,SAA6D,SAAQ,SAAkB;IAClG,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;IAOQ,KAAK,CAAC,KAAK,CAAwD,KAAQ,EAAE,QAAuB;QAC3G,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAiB,KAAK,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACxC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAE9D,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QAErC,IAAI;YACF,QAAQ,UAAU,CAAC,MAAM,EAAE;gBACzB,KAAK,2BAA2B,CAAC,CAAC;oBAChC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;oBACpB,MAAK;iBACN;gBACD,KAAK,8BAA8B,CAAC,CAAC;oBACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;oBACvB,MAAK;iBACN;gBACD;oBACE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;wBAC/C,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;qBACpC;yBAAM;wBACL,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;qBAChC;aACJ;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;SACnG;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;IAC1C,CAAC;CACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness';
|
|
2
1
|
import { ModuleQueryResult, XyoModule, XyoModuleParams, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module';
|
|
3
|
-
import { XyoPayload
|
|
2
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
4
3
|
import { Promisable } from '@xyo-network/promise';
|
|
5
4
|
import { Axios, AxiosRequestHeaders } from 'axios';
|
|
6
5
|
import { AxiosJsonRequestConfig } from './AxiosJson';
|
|
@@ -17,14 +16,15 @@ export interface XyoHttpBridgeParams<TConfig extends XyoHttpBridgeConfig = XyoHt
|
|
|
17
16
|
axios: Axios;
|
|
18
17
|
}
|
|
19
18
|
export declare class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeConfig> extends XyoModule<TConfig> implements BridgeModule {
|
|
19
|
+
static create(params: XyoHttpBridgeParams): Promise<XyoHttpBridge>;
|
|
20
20
|
private axios;
|
|
21
|
-
constructor(
|
|
21
|
+
private constructor();
|
|
22
22
|
get nodeUri(): string;
|
|
23
23
|
get targetAddress(): string | undefined;
|
|
24
24
|
get targetAddressString(): string;
|
|
25
25
|
connect(): Promisable<boolean>;
|
|
26
26
|
disconnect(): Promisable<boolean>;
|
|
27
|
-
protected forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<
|
|
27
|
+
protected forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
28
28
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
29
29
|
}
|
|
30
30
|
//# sourceMappingURL=XyoHttpBridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoHttpBridge.d.ts","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAGjB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAc,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAE9D,OAAO,EAAa,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG1C,oBAAY,yBAAyB,GAAG,gCAAgC,CAAA;AACxE,eAAO,MAAM,yBAAyB,EAAE,yBAA4D,CAAA;AAEpG,oBAAY,mBAAmB,GAAG,eAAe,CAAC;IAChD,MAAM,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B,CAAC,CAAA;AAEF,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC9H,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,aAAa,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,YAAY;WAChH,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOjF,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO;IAKP,IAAW,OAAO,WAEjB;IAED,IAAW,aAAa,uBAEvB;IAED,IAAW,mBAAmB,WAE7B;IAED,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;IAI9B,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;cAIjB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAa9E,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA6B3I"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
3
|
-
import { QueryBoundWitnessWrapper, XyoModule } from '@xyo-network/module';
|
|
3
|
+
import { QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule, } from '@xyo-network/module';
|
|
4
4
|
import { AxiosJson } from './AxiosJson';
|
|
5
5
|
import { XyoBridgeConnectQuerySchema, XyoBridgeDisconnectQuerySchema } from './Queries';
|
|
6
6
|
export const XyoHttpBridgeConfigSchema = 'network.xyo.bridge.http.config';
|
|
7
7
|
export class XyoHttpBridge extends XyoModule {
|
|
8
|
+
static async create(params) {
|
|
9
|
+
const module = new XyoHttpBridge(params);
|
|
10
|
+
await module.start();
|
|
11
|
+
return module;
|
|
12
|
+
}
|
|
8
13
|
axios;
|
|
9
14
|
constructor(params) {
|
|
10
15
|
super(params);
|
|
@@ -44,22 +49,28 @@ export class XyoHttpBridge extends XyoModule {
|
|
|
44
49
|
assertEx(this.queryable(typedQuery.schema, wrapper.addresses));
|
|
45
50
|
const queryAccount = new XyoAccount();
|
|
46
51
|
const resultPayloads = [];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
case XyoBridgeDisconnectQuerySchema: {
|
|
53
|
-
await this.disconnect();
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
default:
|
|
57
|
-
if (super.queries().find((schema) => schema === typedQuery.schema)) {
|
|
58
|
-
return super.query(query, payloads);
|
|
52
|
+
try {
|
|
53
|
+
switch (typedQuery.schema) {
|
|
54
|
+
case XyoBridgeConnectQuerySchema: {
|
|
55
|
+
await this.connect();
|
|
56
|
+
break;
|
|
59
57
|
}
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
case XyoBridgeDisconnectQuerySchema: {
|
|
59
|
+
await this.disconnect();
|
|
60
|
+
break;
|
|
62
61
|
}
|
|
62
|
+
default:
|
|
63
|
+
if (super.queries().find((schema) => schema === typedQuery.schema)) {
|
|
64
|
+
return super.query(query, payloads);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return this.forward(query, payloads);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (ex) {
|
|
72
|
+
const error = ex;
|
|
73
|
+
resultPayloads.push(new XyoErrorBuilder([wrapper.hash], error.message).build());
|
|
63
74
|
}
|
|
64
75
|
return this.bindResult(resultPayloads, queryAccount);
|
|
65
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoHttpBridge.js","sourceRoot":"","sources":["../../src/XyoHttpBridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,11 +11,10 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.9",
|
|
14
|
-
"@xyo-network/account": "^2.38.
|
|
15
|
-
"@xyo-network/
|
|
16
|
-
"@xyo-network/
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/promise": "^2.38.0-rc.9",
|
|
14
|
+
"@xyo-network/account": "^2.38.1",
|
|
15
|
+
"@xyo-network/module": "^2.38.1",
|
|
16
|
+
"@xyo-network/payload": "^2.38.1",
|
|
17
|
+
"@xyo-network/promise": "^2.38.1",
|
|
19
18
|
"pako": "^2.0.4",
|
|
20
19
|
"tslib": "^2.4.0"
|
|
21
20
|
},
|
|
@@ -55,6 +54,5 @@
|
|
|
55
54
|
},
|
|
56
55
|
"sideEffects": false,
|
|
57
56
|
"types": "dist/esm/index.d.ts",
|
|
58
|
-
"version": "2.38.
|
|
59
|
-
"stableVersion": "2.37.6"
|
|
57
|
+
"version": "2.38.1"
|
|
60
58
|
}
|
package/src/XyoBridge.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account'
|
|
3
|
-
import {
|
|
4
|
-
import { QueryBoundWitnessWrapper, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
|
|
3
|
+
import { ModuleQueryResult, QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule, XyoQuery, XyoQueryBoundWitness } from '@xyo-network/module'
|
|
5
4
|
import { XyoPayload } from '@xyo-network/payload'
|
|
6
5
|
import { Promisable } from '@xyo-network/promise'
|
|
7
6
|
|
|
@@ -17,30 +16,35 @@ export abstract class XyoBridge<TConfig extends XyoBridgeConfig = XyoBridgeConfi
|
|
|
17
16
|
abstract connect(): Promisable<boolean>
|
|
18
17
|
abstract disconnect(): Promisable<boolean>
|
|
19
18
|
|
|
20
|
-
abstract forward(query: XyoQuery): Promise<
|
|
19
|
+
abstract forward(query: XyoQuery): Promise<ModuleQueryResult>
|
|
21
20
|
|
|
22
|
-
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]) {
|
|
21
|
+
override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
|
|
23
22
|
const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoBridgeQuery>(query)
|
|
24
23
|
const typedQuery = wrapper.query.payload
|
|
25
24
|
assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
|
|
26
25
|
|
|
27
26
|
const queryAccount = new XyoAccount()
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
case XyoBridgeDisconnectQuerySchema: {
|
|
35
|
-
await this.disconnect()
|
|
36
|
-
break
|
|
37
|
-
}
|
|
38
|
-
default:
|
|
39
|
-
if (super.queries().includes(typedQuery.schema)) {
|
|
40
|
-
return super.query(query, payloads)
|
|
41
|
-
} else {
|
|
42
|
-
return this.forward(typedQuery)
|
|
28
|
+
try {
|
|
29
|
+
switch (typedQuery.schema) {
|
|
30
|
+
case XyoBridgeConnectQuerySchema: {
|
|
31
|
+
await this.connect()
|
|
32
|
+
break
|
|
43
33
|
}
|
|
34
|
+
case XyoBridgeDisconnectQuerySchema: {
|
|
35
|
+
await this.disconnect()
|
|
36
|
+
break
|
|
37
|
+
}
|
|
38
|
+
default:
|
|
39
|
+
if (super.queries().includes(typedQuery.schema)) {
|
|
40
|
+
return super.query(query, payloads)
|
|
41
|
+
} else {
|
|
42
|
+
return this.forward(typedQuery)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
} catch (ex) {
|
|
46
|
+
const error = ex as Error
|
|
47
|
+
return this.bindResult([new XyoErrorBuilder([wrapper.hash], error.message).build()], queryAccount)
|
|
44
48
|
}
|
|
45
49
|
return this.bindResult([], queryAccount)
|
|
46
50
|
}
|
|
@@ -3,15 +3,16 @@ import { uuid } from '@xyo-network/core'
|
|
|
3
3
|
import { PayloadWrapper } from '@xyo-network/payload'
|
|
4
4
|
import { Axios } from 'axios'
|
|
5
5
|
|
|
6
|
-
import { XyoHttpBridge,
|
|
6
|
+
import { XyoHttpBridge, XyoHttpBridgeConfigSchema } from './XyoHttpBridge'
|
|
7
7
|
|
|
8
8
|
test('XyoHttpBridge', async () => {
|
|
9
9
|
const nodeUri = `${process.env.API_DOMAIN}` ?? 'https://beta.api.archivist.xyo.network'
|
|
10
10
|
const targetAddress = 'temp'
|
|
11
|
+
|
|
11
12
|
const bridge = await XyoHttpBridge.create({
|
|
12
13
|
axios: new Axios(),
|
|
13
|
-
config: { nodeUri, schema: XyoHttpBridgeConfigSchema, targetAddress }
|
|
14
|
-
}
|
|
14
|
+
config: { nodeUri, schema: XyoHttpBridgeConfigSchema, targetAddress },
|
|
15
|
+
})
|
|
15
16
|
const wrapper = new XyoArchivistWrapper(bridge)
|
|
16
17
|
const debugPayload = {
|
|
17
18
|
nonce: uuid(),
|
package/src/XyoHttpBridge.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import {
|
|
4
|
+
ModuleQueryResult,
|
|
5
|
+
QueryBoundWitnessWrapper,
|
|
6
|
+
XyoErrorBuilder,
|
|
7
|
+
XyoModule,
|
|
8
|
+
XyoModuleParams,
|
|
9
|
+
XyoQuery,
|
|
10
|
+
XyoQueryBoundWitness,
|
|
11
|
+
} from '@xyo-network/module'
|
|
12
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
6
13
|
import { Promisable } from '@xyo-network/promise'
|
|
7
14
|
import { Axios, AxiosError, AxiosRequestHeaders } from 'axios'
|
|
8
15
|
|
|
@@ -25,9 +32,16 @@ export interface XyoHttpBridgeParams<TConfig extends XyoHttpBridgeConfig = XyoHt
|
|
|
25
32
|
}
|
|
26
33
|
|
|
27
34
|
export class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeConfig> extends XyoModule<TConfig> implements BridgeModule {
|
|
35
|
+
static override async create(params: XyoHttpBridgeParams): Promise<XyoHttpBridge>
|
|
36
|
+
static override async create(params: XyoModuleParams): Promise<XyoHttpBridge> {
|
|
37
|
+
const module = new XyoHttpBridge(params as XyoHttpBridgeParams)
|
|
38
|
+
await module.start()
|
|
39
|
+
return module
|
|
40
|
+
}
|
|
41
|
+
|
|
28
42
|
private axios: AxiosJson
|
|
29
43
|
|
|
30
|
-
constructor(params: XyoHttpBridgeParams<TConfig>) {
|
|
44
|
+
private constructor(params: XyoHttpBridgeParams<TConfig>) {
|
|
31
45
|
super(params)
|
|
32
46
|
this.axios = new AxiosJson(this.config?.axios)
|
|
33
47
|
}
|
|
@@ -52,10 +66,10 @@ export class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeCo
|
|
|
52
66
|
return true
|
|
53
67
|
}
|
|
54
68
|
|
|
55
|
-
protected async forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<
|
|
69
|
+
protected async forward(query: XyoQuery, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
|
|
56
70
|
try {
|
|
57
71
|
const boundQuery = this.bindQuery(query, payloads)
|
|
58
|
-
const result = await this.axios.post<
|
|
72
|
+
const result = await this.axios.post<ModuleQueryResult>(`${this.nodeUri}/${this.address}`, [boundQuery, ...[query]])
|
|
59
73
|
return result.data
|
|
60
74
|
} catch (ex) {
|
|
61
75
|
const error = ex as AxiosError
|
|
@@ -71,21 +85,26 @@ export class XyoHttpBridge<TConfig extends XyoHttpBridgeConfig = XyoHttpBridgeCo
|
|
|
71
85
|
assertEx(this.queryable(typedQuery.schema, wrapper.addresses))
|
|
72
86
|
const queryAccount = new XyoAccount()
|
|
73
87
|
const resultPayloads: (XyoPayload | null)[] = []
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
default:
|
|
84
|
-
if (super.queries().find((schema) => schema === typedQuery.schema)) {
|
|
85
|
-
return super.query(query, payloads)
|
|
86
|
-
} else {
|
|
87
|
-
return this.forward(query, payloads)
|
|
88
|
+
try {
|
|
89
|
+
switch (typedQuery.schema) {
|
|
90
|
+
case XyoBridgeConnectQuerySchema: {
|
|
91
|
+
await this.connect()
|
|
92
|
+
break
|
|
93
|
+
}
|
|
94
|
+
case XyoBridgeDisconnectQuerySchema: {
|
|
95
|
+
await this.disconnect()
|
|
96
|
+
break
|
|
88
97
|
}
|
|
98
|
+
default:
|
|
99
|
+
if (super.queries().find((schema) => schema === typedQuery.schema)) {
|
|
100
|
+
return super.query(query, payloads)
|
|
101
|
+
} else {
|
|
102
|
+
return this.forward(query, payloads)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
} catch (ex) {
|
|
106
|
+
const error = ex as Error
|
|
107
|
+
resultPayloads.push(new XyoErrorBuilder([wrapper.hash], error.message).build())
|
|
89
108
|
}
|
|
90
109
|
return this.bindResult(resultPayloads, queryAccount)
|
|
91
110
|
}
|