@xyo-network/react-node 2.41.18 → 2.41.19
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/contexts/useAddNamedModules.d.ts.map +1 -1
- package/dist/cjs/contexts/useAddNamedModules.js +61 -37
- package/dist/cjs/contexts/useAddNamedModules.js.map +1 -1
- package/dist/cjs/contexts/useNodeQueryDiviner.d.ts.map +1 -1
- package/dist/cjs/contexts/useNodeQueryDiviner.js +4 -1
- package/dist/cjs/contexts/useNodeQueryDiviner.js.map +1 -1
- package/dist/docs.json +39 -39
- package/dist/esm/contexts/useAddNamedModules.d.ts.map +1 -1
- package/dist/esm/contexts/useAddNamedModules.js +58 -38
- package/dist/esm/contexts/useAddNamedModules.js.map +1 -1
- package/dist/esm/contexts/useNodeQueryDiviner.d.ts.map +1 -1
- package/dist/esm/contexts/useNodeQueryDiviner.js +4 -1
- package/dist/esm/contexts/useNodeQueryDiviner.js.map +1 -1
- package/package.json +19 -19
- package/src/contexts/useAddNamedModules.tsx +62 -37
- package/src/contexts/useNodeQueryDiviner.tsx +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddNamedModules.d.ts","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAWvC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"useAddNamedModules.d.ts","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAWvC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAyCxC,eAAO,MAAM,kBAAkB,gBAAiB,UAAU,cAAc,SAAS,6BA4ChF,CAAA"}
|
|
@@ -10,56 +10,80 @@ const module_1 = require("@xyo-network/module");
|
|
|
10
10
|
const node_1 = require("@xyo-network/node");
|
|
11
11
|
const react_1 = require("react");
|
|
12
12
|
const useNode_1 = require("./useNode");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
wrapper
|
|
13
|
+
class NodeUtils {
|
|
14
|
+
static addToNode(remoteModule, name, memoryNode) {
|
|
15
|
+
const wrapper = ModuleUtils.addWrapper(remoteModule);
|
|
16
|
+
memoryNode.register(wrapper !== null && wrapper !== void 0 ? wrapper : remoteModule);
|
|
17
|
+
memoryNode.attach(remoteModule.address, name);
|
|
18
|
+
console.log('attached:', name);
|
|
17
19
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
static newNodeInstance(node) {
|
|
21
|
+
// using .assign instead of spread because we need to keep the prototype chain intact for root node / module methods
|
|
22
|
+
return Object.assign(Object.create(Object.getPrototypeOf(node)), node);
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
static resolveNode(node, reset) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
let localNode = node;
|
|
27
|
+
if (reset) {
|
|
28
|
+
localNode = yield node_1.MemoryNode.create();
|
|
29
|
+
}
|
|
30
|
+
return localNode;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
class ModuleUtils {
|
|
35
|
+
static addWrapper(remoteModule) {
|
|
36
|
+
let wrapper;
|
|
37
|
+
if (remoteModule.config.schema.includes('divine')) {
|
|
38
|
+
wrapper = new diviner_wrapper_1.DivinerWrapper(remoteModule);
|
|
39
|
+
}
|
|
40
|
+
else if (remoteModule.config.schema.includes('archivist')) {
|
|
41
|
+
wrapper = new archivist_1.ArchivistWrapper(remoteModule);
|
|
42
|
+
}
|
|
43
|
+
return wrapper;
|
|
44
|
+
}
|
|
45
|
+
static constructRemoteModule(apiConfig, description) {
|
|
46
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
return yield http_proxy_module_1.HttpProxyModule.create({
|
|
48
|
+
apiConfig,
|
|
49
|
+
config: { schema: module_1.AbstractModuleConfigSchema },
|
|
50
|
+
name: description,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
33
53
|
}
|
|
34
|
-
|
|
35
|
-
});
|
|
54
|
+
}
|
|
36
55
|
const useAddNamedModules = (moduleList, apiConfig, reset = false) => {
|
|
37
56
|
const [node, setNode] = (0, useNode_1.useNode)();
|
|
38
57
|
const [complete, setComplete] = (0, react_1.useState)(false);
|
|
58
|
+
const updateNode = (0, react_1.useCallback)((node) => {
|
|
59
|
+
const newNode = NodeUtils.newNodeInstance(node);
|
|
60
|
+
setNode === null || setNode === void 0 ? void 0 : setNode(newNode);
|
|
61
|
+
}, [setNode]);
|
|
62
|
+
const handleNewModule = (apiConfig, localNode, description) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
+
try {
|
|
64
|
+
const remoteModule = yield ModuleUtils.constructRemoteModule(apiConfig, description);
|
|
65
|
+
NodeUtils.addToNode(remoteModule, description !== null && description !== void 0 ? description : 'unknown', localNode);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error(error);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
(0, react_1.useEffect)(() => {
|
|
72
|
+
// whenever the api config changes, assume we need to rebuild the memory node
|
|
73
|
+
setComplete(false);
|
|
74
|
+
}, [apiConfig]);
|
|
39
75
|
(0, react_shared_1.useAsyncEffect)(
|
|
40
76
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
77
|
() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
42
78
|
if (moduleList && apiConfig && node && !complete) {
|
|
43
|
-
const localNode = yield resolveNode(node, reset);
|
|
79
|
+
const localNode = yield NodeUtils.resolveNode(node, reset);
|
|
44
80
|
yield Promise.allSettled(Object.entries(moduleList).map(([_key, { description }]) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
-
|
|
46
|
-
const remoteModule = yield http_proxy_module_1.HttpProxyModule.create({
|
|
47
|
-
apiConfig,
|
|
48
|
-
config: { schema: module_1.AbstractModuleConfigSchema },
|
|
49
|
-
name: description,
|
|
50
|
-
});
|
|
51
|
-
addToNode(remoteModule, description !== null && description !== void 0 ? description : 'unknown', localNode);
|
|
52
|
-
// using .assign instead of spread because we need to keep the prototype chain intact for root node / module methods
|
|
53
|
-
const newNode = Object.assign(Object.create(Object.getPrototypeOf(node)), node);
|
|
54
|
-
setNode === null || setNode === void 0 ? void 0 : setNode(newNode);
|
|
55
|
-
setComplete(true);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
console.log(error);
|
|
59
|
-
}
|
|
81
|
+
yield handleNewModule(apiConfig, localNode, description);
|
|
60
82
|
})));
|
|
83
|
+
setComplete(true);
|
|
84
|
+
updateNode(node);
|
|
61
85
|
}
|
|
62
|
-
}), [apiConfig, complete, moduleList, node, reset, setNode]);
|
|
86
|
+
}), [apiConfig, complete, moduleList, node, reset, setNode, updateNode]);
|
|
63
87
|
return complete;
|
|
64
88
|
};
|
|
65
89
|
exports.useAddNamedModules = useAddNamedModules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddNamedModules.js","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":";;;;AACA,uDAAqD;AACrD,sDAAyD;AACzD,kEAA6D;AAC7D,sEAAgE;AAChE,gDAAuF;AACvF,4CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"useAddNamedModules.js","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"useNodeQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAMpE,eAAO,MAAM,mBAAmB,sBAAuB,MAAM,UAAU,UAAU,KAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2B9H,CAAA"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useNodeQueryDiviner = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_shared_1 = require("@xylabs/react-shared");
|
|
6
|
+
const diviner_wrapper_1 = require("@xyo-network/diviner-wrapper");
|
|
7
|
+
const react_shared_2 = require("@xyo-network/react-shared");
|
|
6
8
|
const react_1 = require("react");
|
|
7
9
|
const useNode_1 = require("./useNode");
|
|
8
10
|
const useNodeQueryDiviner = (moduleIdentifier, query) => {
|
|
@@ -15,7 +17,8 @@ const useNodeQueryDiviner = (moduleIdentifier, query) => {
|
|
|
15
17
|
var _a;
|
|
16
18
|
if (moduleIdentifier && query) {
|
|
17
19
|
try {
|
|
18
|
-
const
|
|
20
|
+
const divinerWrapper = (_a = (yield (node === null || node === void 0 ? void 0 : node.tryResolveWrapped(diviner_wrapper_1.DivinerWrapper, { name: [moduleIdentifier] })))) === null || _a === void 0 ? void 0 : _a[0];
|
|
21
|
+
const diviner = (0, react_shared_2.assertDefinedEx)(divinerWrapper, `Unable to find moduleIdentifier: ${moduleIdentifier}`);
|
|
19
22
|
const result = yield (diviner === null || diviner === void 0 ? void 0 : diviner.divine([query]));
|
|
20
23
|
setResult(result);
|
|
21
24
|
setError(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeQueryDiviner.js","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqD;
|
|
1
|
+
{"version":3,"file":"useNodeQueryDiviner.js","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqD;AACrD,kEAA6D;AAG7D,4DAA2D;AAC3D,iCAAgC;AAEhC,uCAAmC;AAE5B,MAAM,mBAAmB,GAAG,CAAC,gBAAyB,EAAE,KAAkB,EAAgD,EAAE;IACjI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAAe,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAS,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAO,GAAc,CAAA;IAEpC,IAAA,6BAAc;IACZ,uDAAuD;IACvD,GAAS,EAAE;;QACT,IAAI,gBAAgB,IAAI,KAAK,EAAE;YAC7B,IAAI;gBACF,MAAM,cAAc,GAAG,MAAA,CAAC,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,gCAAc,EAAE,EAAE,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA,CAAC,0CAAG,CAAC,CAAC,CAAA;gBACzG,MAAM,OAAO,GAAG,IAAA,8BAAe,EAAC,cAAc,EAAE,oCAAoC,gBAAgB,EAAE,CAAC,CAAA;gBAEvG,MAAM,MAAM,GAAG,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA;gBAC7C,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpB,QAAQ,CAAC,CAAU,CAAC,CAAA;aACrB;SACF;IACH,CAAC,CAAA,EACD,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAChC,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA;AA3BY,QAAA,mBAAmB,uBA2B/B"}
|
package/dist/docs.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"fileName": "packages/sdk/packages/node/src/contexts/State.ts",
|
|
27
27
|
"line": 5,
|
|
28
28
|
"character": 2,
|
|
29
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
29
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/State.ts#L5"
|
|
30
30
|
}
|
|
31
31
|
],
|
|
32
32
|
"type": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"fileName": "packages/sdk/packages/node/src/contexts/State.ts",
|
|
94
94
|
"line": 6,
|
|
95
95
|
"character": 2,
|
|
96
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
96
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/State.ts#L6"
|
|
97
97
|
}
|
|
98
98
|
],
|
|
99
99
|
"type": {
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"fileName": "packages/sdk/packages/node/src/contexts/State.ts",
|
|
171
171
|
"line": 4,
|
|
172
172
|
"character": 17,
|
|
173
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
173
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/State.ts#L4"
|
|
174
174
|
}
|
|
175
175
|
]
|
|
176
176
|
},
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
"fileName": "packages/sdk/packages/node/src/components/NodeDrawer.tsx",
|
|
186
186
|
"line": 11,
|
|
187
187
|
"character": 17,
|
|
188
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
188
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/components/NodeDrawer.tsx#L11"
|
|
189
189
|
}
|
|
190
190
|
],
|
|
191
191
|
"extendedTypes": [
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/Provider.tsx",
|
|
236
236
|
"line": 7,
|
|
237
237
|
"character": 2,
|
|
238
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
238
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/Provider.tsx#L7"
|
|
239
239
|
}
|
|
240
240
|
],
|
|
241
241
|
"type": {
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/Provider.tsx",
|
|
258
258
|
"line": 6,
|
|
259
259
|
"character": 17,
|
|
260
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
260
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/Provider.tsx#L6"
|
|
261
261
|
}
|
|
262
262
|
],
|
|
263
263
|
"extendedTypes": [
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/State.ts",
|
|
290
290
|
"line": 5,
|
|
291
291
|
"character": 2,
|
|
292
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
292
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/State.ts#L5"
|
|
293
293
|
}
|
|
294
294
|
],
|
|
295
295
|
"type": {
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/State.ts",
|
|
333
333
|
"line": 6,
|
|
334
334
|
"character": 2,
|
|
335
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
335
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/State.ts#L6"
|
|
336
336
|
}
|
|
337
337
|
],
|
|
338
338
|
"type": {
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/State.ts",
|
|
373
373
|
"line": 4,
|
|
374
374
|
"character": 17,
|
|
375
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
375
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/State.ts#L4"
|
|
376
376
|
}
|
|
377
377
|
],
|
|
378
378
|
"extendedTypes": [
|
|
@@ -402,7 +402,7 @@
|
|
|
402
402
|
"fileName": "packages/sdk/packages/node/src/contexts/Provider.tsx",
|
|
403
403
|
"line": 9,
|
|
404
404
|
"character": 2,
|
|
405
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
405
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Provider.tsx#L9"
|
|
406
406
|
}
|
|
407
407
|
],
|
|
408
408
|
"type": {
|
|
@@ -469,7 +469,7 @@
|
|
|
469
469
|
"fileName": "packages/sdk/packages/node/src/contexts/Provider.tsx",
|
|
470
470
|
"line": 8,
|
|
471
471
|
"character": 2,
|
|
472
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
472
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Provider.tsx#L8"
|
|
473
473
|
}
|
|
474
474
|
],
|
|
475
475
|
"type": {
|
|
@@ -492,7 +492,7 @@
|
|
|
492
492
|
"fileName": "packages/sdk/packages/node/src/contexts/Provider.tsx",
|
|
493
493
|
"line": 7,
|
|
494
494
|
"character": 17,
|
|
495
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
495
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Provider.tsx#L7"
|
|
496
496
|
}
|
|
497
497
|
]
|
|
498
498
|
},
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
"fileName": "packages/sdk/packages/node/src/contexts/MemoryProvider.tsx",
|
|
508
508
|
"line": 9,
|
|
509
509
|
"character": 12,
|
|
510
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
510
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/MemoryProvider.tsx#L9"
|
|
511
511
|
}
|
|
512
512
|
],
|
|
513
513
|
"type": {
|
|
@@ -538,7 +538,7 @@
|
|
|
538
538
|
"fileName": "packages/sdk/packages/node/src/contexts/MemoryProvider.tsx",
|
|
539
539
|
"line": 10,
|
|
540
540
|
"character": 2,
|
|
541
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
541
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/MemoryProvider.tsx#L10"
|
|
542
542
|
}
|
|
543
543
|
],
|
|
544
544
|
"type": {
|
|
@@ -560,7 +560,7 @@
|
|
|
560
560
|
"fileName": "packages/sdk/packages/node/src/contexts/MemoryProvider.tsx",
|
|
561
561
|
"line": 9,
|
|
562
562
|
"character": 51,
|
|
563
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
563
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/MemoryProvider.tsx#L9"
|
|
564
564
|
}
|
|
565
565
|
]
|
|
566
566
|
}
|
|
@@ -612,7 +612,7 @@
|
|
|
612
612
|
"fileName": "packages/sdk/packages/node/src/contexts/Provider.tsx",
|
|
613
613
|
"line": 13,
|
|
614
614
|
"character": 12,
|
|
615
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
615
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Provider.tsx#L13"
|
|
616
616
|
}
|
|
617
617
|
],
|
|
618
618
|
"type": {
|
|
@@ -634,7 +634,7 @@
|
|
|
634
634
|
"fileName": "packages/sdk/packages/node/src/contexts/Context.ts",
|
|
635
635
|
"line": 5,
|
|
636
636
|
"character": 13,
|
|
637
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
637
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Context.ts#L5"
|
|
638
638
|
}
|
|
639
639
|
],
|
|
640
640
|
"type": {
|
|
@@ -674,7 +674,7 @@
|
|
|
674
674
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/Context.ts",
|
|
675
675
|
"line": 5,
|
|
676
676
|
"character": 13,
|
|
677
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
677
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/Context.ts#L5"
|
|
678
678
|
}
|
|
679
679
|
],
|
|
680
680
|
"type": {
|
|
@@ -712,7 +712,7 @@
|
|
|
712
712
|
"fileName": "packages/sdk/packages/node/src/contexts/MemoryProvider.tsx",
|
|
713
713
|
"line": 14,
|
|
714
714
|
"character": 13,
|
|
715
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
715
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/MemoryProvider.tsx#L14"
|
|
716
716
|
}
|
|
717
717
|
],
|
|
718
718
|
"signatures": [
|
|
@@ -788,7 +788,7 @@
|
|
|
788
788
|
"fileName": "packages/sdk/packages/node/src/components/Node.tsx",
|
|
789
789
|
"line": 7,
|
|
790
790
|
"character": 13,
|
|
791
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
791
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/components/Node.tsx#L7"
|
|
792
792
|
}
|
|
793
793
|
],
|
|
794
794
|
"signatures": [
|
|
@@ -865,7 +865,7 @@
|
|
|
865
865
|
"fileName": "packages/sdk/packages/node/src/components/NodeDrawer.tsx",
|
|
866
866
|
"line": 13,
|
|
867
867
|
"character": 13,
|
|
868
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
868
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/components/NodeDrawer.tsx#L13"
|
|
869
869
|
}
|
|
870
870
|
],
|
|
871
871
|
"signatures": [
|
|
@@ -941,7 +941,7 @@
|
|
|
941
941
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/Provider.tsx",
|
|
942
942
|
"line": 10,
|
|
943
943
|
"character": 13,
|
|
944
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
944
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/Provider.tsx#L10"
|
|
945
945
|
}
|
|
946
946
|
],
|
|
947
947
|
"signatures": [
|
|
@@ -1017,7 +1017,7 @@
|
|
|
1017
1017
|
"fileName": "packages/sdk/packages/node/src/contexts/Provider.tsx",
|
|
1018
1018
|
"line": 15,
|
|
1019
1019
|
"character": 13,
|
|
1020
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1020
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Provider.tsx#L15"
|
|
1021
1021
|
}
|
|
1022
1022
|
],
|
|
1023
1023
|
"signatures": [
|
|
@@ -1101,7 +1101,7 @@
|
|
|
1101
1101
|
"fileName": "packages/sdk/packages/node/src/contexts/Provider.tsx",
|
|
1102
1102
|
"line": 26,
|
|
1103
1103
|
"character": 13,
|
|
1104
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1104
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/Provider.tsx#L26"
|
|
1105
1105
|
}
|
|
1106
1106
|
],
|
|
1107
1107
|
"signatures": [
|
|
@@ -1197,9 +1197,9 @@
|
|
|
1197
1197
|
"sources": [
|
|
1198
1198
|
{
|
|
1199
1199
|
"fileName": "packages/sdk/packages/node/src/contexts/useAddNamedModules.tsx",
|
|
1200
|
-
"line":
|
|
1200
|
+
"line": 53,
|
|
1201
1201
|
"character": 13,
|
|
1202
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1202
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useAddNamedModules.tsx#L53"
|
|
1203
1203
|
}
|
|
1204
1204
|
],
|
|
1205
1205
|
"signatures": [
|
|
@@ -1269,7 +1269,7 @@
|
|
|
1269
1269
|
"fileName": "packages/sdk/packages/node/src/contexts/useArchivistModule.ts",
|
|
1270
1270
|
"line": 6,
|
|
1271
1271
|
"character": 13,
|
|
1272
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1272
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useArchivistModule.ts#L6"
|
|
1273
1273
|
}
|
|
1274
1274
|
],
|
|
1275
1275
|
"signatures": [
|
|
@@ -1325,7 +1325,7 @@
|
|
|
1325
1325
|
"fileName": "packages/sdk/packages/node/src/contexts/useArchivistModules.ts",
|
|
1326
1326
|
"line": 5,
|
|
1327
1327
|
"character": 13,
|
|
1328
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1328
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useArchivistModules.ts#L5"
|
|
1329
1329
|
}
|
|
1330
1330
|
],
|
|
1331
1331
|
"signatures": [
|
|
@@ -1367,7 +1367,7 @@
|
|
|
1367
1367
|
"fileName": "packages/sdk/packages/node/src/contexts/useDivinerModule.ts",
|
|
1368
1368
|
"line": 6,
|
|
1369
1369
|
"character": 13,
|
|
1370
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1370
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useDivinerModule.ts#L6"
|
|
1371
1371
|
}
|
|
1372
1372
|
],
|
|
1373
1373
|
"signatures": [
|
|
@@ -1423,7 +1423,7 @@
|
|
|
1423
1423
|
"fileName": "packages/sdk/packages/node/src/contexts/useDivinerModules.ts",
|
|
1424
1424
|
"line": 6,
|
|
1425
1425
|
"character": 13,
|
|
1426
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1426
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useDivinerModules.ts#L6"
|
|
1427
1427
|
}
|
|
1428
1428
|
],
|
|
1429
1429
|
"signatures": [
|
|
@@ -1465,7 +1465,7 @@
|
|
|
1465
1465
|
"fileName": "packages/sdk/packages/node/src/contexts/useModuleAddresses.ts",
|
|
1466
1466
|
"line": 6,
|
|
1467
1467
|
"character": 13,
|
|
1468
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1468
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useModuleAddresses.ts#L6"
|
|
1469
1469
|
}
|
|
1470
1470
|
],
|
|
1471
1471
|
"signatures": [
|
|
@@ -1520,7 +1520,7 @@
|
|
|
1520
1520
|
"fileName": "packages/sdk/packages/node/src/contexts/useModules.ts",
|
|
1521
1521
|
"line": 8,
|
|
1522
1522
|
"character": 13,
|
|
1523
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1523
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useModules.ts#L8"
|
|
1524
1524
|
}
|
|
1525
1525
|
],
|
|
1526
1526
|
"signatures": [
|
|
@@ -1615,7 +1615,7 @@
|
|
|
1615
1615
|
"fileName": "packages/sdk/packages/node/src/contexts/useNode.ts",
|
|
1616
1616
|
"line": 7,
|
|
1617
1617
|
"character": 13,
|
|
1618
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1618
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useNode.ts#L7"
|
|
1619
1619
|
}
|
|
1620
1620
|
],
|
|
1621
1621
|
"signatures": [
|
|
@@ -1897,7 +1897,7 @@
|
|
|
1897
1897
|
"fileName": "packages/sdk/packages/node/src/contexts/NodeDrawerContext/use.tsx",
|
|
1898
1898
|
"line": 5,
|
|
1899
1899
|
"character": 13,
|
|
1900
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1900
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/NodeDrawerContext/use.tsx#L5"
|
|
1901
1901
|
}
|
|
1902
1902
|
],
|
|
1903
1903
|
"signatures": [
|
|
@@ -1959,9 +1959,9 @@
|
|
|
1959
1959
|
"sources": [
|
|
1960
1960
|
{
|
|
1961
1961
|
"fileName": "packages/sdk/packages/node/src/contexts/useNodeQueryDiviner.tsx",
|
|
1962
|
-
"line":
|
|
1962
|
+
"line": 10,
|
|
1963
1963
|
"character": 13,
|
|
1964
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1964
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useNodeQueryDiviner.tsx#L10"
|
|
1965
1965
|
}
|
|
1966
1966
|
],
|
|
1967
1967
|
"signatures": [
|
|
@@ -2114,7 +2114,7 @@
|
|
|
2114
2114
|
"fileName": "packages/sdk/packages/node/src/contexts/useWitnessModule.ts",
|
|
2115
2115
|
"line": 6,
|
|
2116
2116
|
"character": 13,
|
|
2117
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2117
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useWitnessModule.ts#L6"
|
|
2118
2118
|
}
|
|
2119
2119
|
],
|
|
2120
2120
|
"signatures": [
|
|
@@ -2170,7 +2170,7 @@
|
|
|
2170
2170
|
"fileName": "packages/sdk/packages/node/src/contexts/useWitnessModules.ts",
|
|
2171
2171
|
"line": 5,
|
|
2172
2172
|
"character": 13,
|
|
2173
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2173
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/contexts/useWitnessModules.ts#L5"
|
|
2174
2174
|
}
|
|
2175
2175
|
],
|
|
2176
2176
|
"signatures": [
|
|
@@ -2256,7 +2256,7 @@
|
|
|
2256
2256
|
"fileName": "packages/sdk/packages/node/src/index.ts",
|
|
2257
2257
|
"line": 1,
|
|
2258
2258
|
"character": 0,
|
|
2259
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2259
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/918778110/packages/sdk/packages/node/src/index.ts#L1"
|
|
2260
2260
|
}
|
|
2261
2261
|
]
|
|
2262
2262
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddNamedModules.d.ts","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAWvC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"useAddNamedModules.d.ts","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAWvC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAyCxC,eAAO,MAAM,kBAAkB,gBAAiB,UAAU,cAAc,SAAS,6BA4ChF,CAAA"}
|
|
@@ -4,58 +4,78 @@ import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
|
|
|
4
4
|
import { HttpProxyModule } from '@xyo-network/http-proxy-module';
|
|
5
5
|
import { AbstractModuleConfigSchema } from '@xyo-network/module';
|
|
6
6
|
import { MemoryNode } from '@xyo-network/node';
|
|
7
|
-
import { useState } from 'react';
|
|
7
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
8
8
|
import { useNode } from './useNode';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
wrapper
|
|
9
|
+
class NodeUtils {
|
|
10
|
+
static addToNode(remoteModule, name, memoryNode) {
|
|
11
|
+
const wrapper = ModuleUtils.addWrapper(remoteModule);
|
|
12
|
+
memoryNode.register(wrapper ?? remoteModule);
|
|
13
|
+
memoryNode.attach(remoteModule.address, name);
|
|
14
|
+
console.log('attached:', name);
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
static newNodeInstance(node) {
|
|
17
|
+
// using .assign instead of spread because we need to keep the prototype chain intact for root node / module methods
|
|
18
|
+
return Object.assign(Object.create(Object.getPrototypeOf(node)), node);
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
console.log('attached:', name);
|
|
24
|
-
};
|
|
25
|
-
const resolveNode = async (node, reset) => {
|
|
26
|
-
let localNode = node;
|
|
27
|
-
if (reset) {
|
|
28
|
-
localNode = await MemoryNode.create();
|
|
20
|
+
static async resolveNode(node, reset) {
|
|
21
|
+
let localNode = node;
|
|
22
|
+
if (reset) {
|
|
23
|
+
localNode = await MemoryNode.create();
|
|
24
|
+
}
|
|
25
|
+
return localNode;
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
}
|
|
28
|
+
class ModuleUtils {
|
|
29
|
+
static addWrapper(remoteModule) {
|
|
30
|
+
let wrapper;
|
|
31
|
+
if (remoteModule.config.schema.includes('divine')) {
|
|
32
|
+
wrapper = new DivinerWrapper(remoteModule);
|
|
33
|
+
}
|
|
34
|
+
else if (remoteModule.config.schema.includes('archivist')) {
|
|
35
|
+
wrapper = new ArchivistWrapper(remoteModule);
|
|
36
|
+
}
|
|
37
|
+
return wrapper;
|
|
38
|
+
}
|
|
39
|
+
static async constructRemoteModule(apiConfig, description) {
|
|
40
|
+
return await HttpProxyModule.create({
|
|
41
|
+
apiConfig,
|
|
42
|
+
config: { schema: AbstractModuleConfigSchema },
|
|
43
|
+
name: description,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
32
47
|
export const useAddNamedModules = (moduleList, apiConfig, reset = false) => {
|
|
33
48
|
const [node, setNode] = useNode();
|
|
34
49
|
const [complete, setComplete] = useState(false);
|
|
50
|
+
const updateNode = useCallback((node) => {
|
|
51
|
+
const newNode = NodeUtils.newNodeInstance(node);
|
|
52
|
+
setNode?.(newNode);
|
|
53
|
+
}, [setNode]);
|
|
54
|
+
const handleNewModule = async (apiConfig, localNode, description) => {
|
|
55
|
+
try {
|
|
56
|
+
const remoteModule = await ModuleUtils.constructRemoteModule(apiConfig, description);
|
|
57
|
+
NodeUtils.addToNode(remoteModule, description ?? 'unknown', localNode);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(error);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
// whenever the api config changes, assume we need to rebuild the memory node
|
|
65
|
+
setComplete(false);
|
|
66
|
+
}, [apiConfig]);
|
|
35
67
|
useAsyncEffect(
|
|
36
68
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
69
|
async () => {
|
|
38
70
|
if (moduleList && apiConfig && node && !complete) {
|
|
39
|
-
const localNode = await resolveNode(node, reset);
|
|
71
|
+
const localNode = await NodeUtils.resolveNode(node, reset);
|
|
40
72
|
await Promise.allSettled(Object.entries(moduleList).map(async ([_key, { description }]) => {
|
|
41
|
-
|
|
42
|
-
const remoteModule = await HttpProxyModule.create({
|
|
43
|
-
apiConfig,
|
|
44
|
-
config: { schema: AbstractModuleConfigSchema },
|
|
45
|
-
name: description,
|
|
46
|
-
});
|
|
47
|
-
addToNode(remoteModule, description ?? 'unknown', localNode);
|
|
48
|
-
// using .assign instead of spread because we need to keep the prototype chain intact for root node / module methods
|
|
49
|
-
const newNode = Object.assign(Object.create(Object.getPrototypeOf(node)), node);
|
|
50
|
-
setNode?.(newNode);
|
|
51
|
-
setComplete(true);
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
console.log(error);
|
|
55
|
-
}
|
|
73
|
+
await handleNewModule(apiConfig, localNode, description);
|
|
56
74
|
}));
|
|
75
|
+
setComplete(true);
|
|
76
|
+
updateNode(node);
|
|
57
77
|
}
|
|
58
|
-
}, [apiConfig, complete, moduleList, node, reset, setNode]);
|
|
78
|
+
}, [apiConfig, complete, moduleList, node, reset, setNode, updateNode]);
|
|
59
79
|
return complete;
|
|
60
80
|
};
|
|
61
81
|
//# sourceMappingURL=useAddNamedModules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddNamedModules.js","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,0BAA0B,EAAyB,MAAM,qBAAqB,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useAddNamedModules.js","sourceRoot":"","sources":["../../../src/contexts/useAddNamedModules.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"useNodeQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAMpE,eAAO,MAAM,mBAAmB,sBAAuB,MAAM,UAAU,UAAU,KAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2B9H,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared';
|
|
2
|
+
import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
|
|
3
|
+
import { assertDefinedEx } from '@xyo-network/react-shared';
|
|
2
4
|
import { useState } from 'react';
|
|
3
5
|
import { useNode } from './useNode';
|
|
4
6
|
export const useNodeQueryDiviner = (moduleIdentifier, query) => {
|
|
@@ -10,7 +12,8 @@ export const useNodeQueryDiviner = (moduleIdentifier, query) => {
|
|
|
10
12
|
async () => {
|
|
11
13
|
if (moduleIdentifier && query) {
|
|
12
14
|
try {
|
|
13
|
-
const
|
|
15
|
+
const divinerWrapper = (await node?.tryResolveWrapped(DivinerWrapper, { name: [moduleIdentifier] }))?.[0];
|
|
16
|
+
const diviner = assertDefinedEx(divinerWrapper, `Unable to find moduleIdentifier: ${moduleIdentifier}`);
|
|
14
17
|
const result = await diviner?.divine([query]);
|
|
15
18
|
setResult(result);
|
|
16
19
|
setError(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeQueryDiviner.js","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"useNodeQueryDiviner.js","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,gBAAyB,EAAE,KAAkB,EAAgD,EAAE;IACjI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAe,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAc,CAAA;IAEpC,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,IAAI,gBAAgB,IAAI,KAAK,EAAE;YAC7B,IAAI;gBACF,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,EAAE,iBAAiB,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACzG,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,EAAE,oCAAoC,gBAAgB,EAAE,CAAC,CAAA;gBAEvG,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7C,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpB,QAAQ,CAAC,CAAU,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAChC,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,29 +11,29 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@mui/lab": "latest",
|
|
14
|
-
"@xylabs/api": "^2.6.
|
|
15
|
-
"@xylabs/react-flexbox": "^2.15.
|
|
16
|
-
"@xylabs/react-shared": "^2.15.
|
|
17
|
-
"@xyo-network/archivist": "^2.43.
|
|
18
|
-
"@xyo-network/diviner-model": "^2.43.
|
|
19
|
-
"@xyo-network/diviner-wrapper": "^2.43.
|
|
20
|
-
"@xyo-network/http-proxy-module": "^2.43.
|
|
21
|
-
"@xyo-network/module": "^2.43.
|
|
22
|
-
"@xyo-network/module-model": "^2.43.
|
|
23
|
-
"@xyo-network/node": "^2.43.
|
|
24
|
-
"@xyo-network/payload-builder": "^2.43.
|
|
25
|
-
"@xyo-network/payload-model": "^2.43.
|
|
26
|
-
"@xyo-network/react-shared": "^2.41.
|
|
27
|
-
"@xyo-network/witness": "^2.43.
|
|
14
|
+
"@xylabs/api": "^2.6.15",
|
|
15
|
+
"@xylabs/react-flexbox": "^2.15.8",
|
|
16
|
+
"@xylabs/react-shared": "^2.15.8",
|
|
17
|
+
"@xyo-network/archivist": "^2.43.5",
|
|
18
|
+
"@xyo-network/diviner-model": "^2.43.5",
|
|
19
|
+
"@xyo-network/diviner-wrapper": "^2.43.5",
|
|
20
|
+
"@xyo-network/http-proxy-module": "^2.43.5",
|
|
21
|
+
"@xyo-network/module": "^2.43.5",
|
|
22
|
+
"@xyo-network/module-model": "^2.43.5",
|
|
23
|
+
"@xyo-network/node": "^2.43.5",
|
|
24
|
+
"@xyo-network/payload-builder": "^2.43.5",
|
|
25
|
+
"@xyo-network/payload-model": "^2.43.5",
|
|
26
|
+
"@xyo-network/react-shared": "^2.41.19",
|
|
27
|
+
"@xyo-network/witness": "^2.43.5",
|
|
28
28
|
"lodash": "^4.17.21"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@xylabs/ts-scripts-yarn3": "2.
|
|
31
|
+
"@xylabs/ts-scripts-yarn3": "2.12.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@mui/icons-material": "
|
|
35
|
-
"@mui/material": "
|
|
36
|
-
"@mui/styles": "
|
|
34
|
+
"@mui/icons-material": "5.11.0",
|
|
35
|
+
"@mui/material": "5.11.2",
|
|
36
|
+
"@mui/styles": "5.11.2",
|
|
37
37
|
"react": "^18.2.0",
|
|
38
38
|
"react-dom": "^18.2.0",
|
|
39
39
|
"react-router-dom": "^6.3.0"
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
},
|
|
82
82
|
"sideEffects": false,
|
|
83
83
|
"types": "dist/esm/index.d.ts",
|
|
84
|
-
"version": "2.41.
|
|
84
|
+
"version": "2.41.19"
|
|
85
85
|
}
|
|
@@ -5,68 +5,93 @@ import { DivinerWrapper } from '@xyo-network/diviner-wrapper'
|
|
|
5
5
|
import { HttpProxyModule } from '@xyo-network/http-proxy-module'
|
|
6
6
|
import { AbstractModuleConfigSchema, Module, ModuleWrapper } from '@xyo-network/module'
|
|
7
7
|
import { MemoryNode } from '@xyo-network/node'
|
|
8
|
-
import { useState } from 'react'
|
|
8
|
+
import { useCallback, useEffect, useState } from 'react'
|
|
9
9
|
|
|
10
10
|
import { useNode } from './useNode'
|
|
11
11
|
|
|
12
12
|
type ModuleList = Record<string, symbol>
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
wrapper
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
class NodeUtils {
|
|
15
|
+
static addToNode(remoteModule: Module, name: string, memoryNode: MemoryNode) {
|
|
16
|
+
const wrapper = ModuleUtils.addWrapper(remoteModule)
|
|
17
|
+
memoryNode.register(wrapper ?? remoteModule)
|
|
18
|
+
memoryNode.attach(remoteModule.address, name)
|
|
19
|
+
console.log('attached:', name)
|
|
20
|
+
}
|
|
21
|
+
static newNodeInstance(node: MemoryNode) {
|
|
22
|
+
// using .assign instead of spread because we need to keep the prototype chain intact for root node / module methods
|
|
23
|
+
return Object.assign(Object.create(Object.getPrototypeOf(node)), node)
|
|
24
|
+
}
|
|
25
|
+
static async resolveNode(node: MemoryNode, reset?: boolean) {
|
|
26
|
+
let localNode = node
|
|
27
|
+
if (reset) {
|
|
28
|
+
localNode = await MemoryNode.create()
|
|
29
|
+
}
|
|
30
|
+
return localNode
|
|
20
31
|
}
|
|
21
|
-
return wrapper
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const addToNode = (remoteModule: Module, name: string, memoryNode: MemoryNode) => {
|
|
25
|
-
const wrapper = addWrapper(remoteModule)
|
|
26
|
-
memoryNode.register(wrapper ?? remoteModule)
|
|
27
|
-
memoryNode.attach(remoteModule.address, name)
|
|
28
|
-
console.log('attached:', name)
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
class ModuleUtils {
|
|
35
|
+
static addWrapper(remoteModule: Module) {
|
|
36
|
+
let wrapper: ModuleWrapper | undefined
|
|
37
|
+
if (remoteModule.config.schema.includes('divine')) {
|
|
38
|
+
wrapper = new DivinerWrapper(remoteModule)
|
|
39
|
+
} else if (remoteModule.config.schema.includes('archivist')) {
|
|
40
|
+
wrapper = new ArchivistWrapper(remoteModule)
|
|
41
|
+
}
|
|
42
|
+
return wrapper
|
|
43
|
+
}
|
|
44
|
+
static async constructRemoteModule(apiConfig: ApiConfig, description?: string) {
|
|
45
|
+
return await HttpProxyModule.create({
|
|
46
|
+
apiConfig,
|
|
47
|
+
config: { schema: AbstractModuleConfigSchema },
|
|
48
|
+
name: description,
|
|
49
|
+
})
|
|
35
50
|
}
|
|
36
|
-
return localNode
|
|
37
51
|
}
|
|
38
52
|
|
|
39
53
|
export const useAddNamedModules = (moduleList?: ModuleList, apiConfig?: ApiConfig, reset = false) => {
|
|
40
54
|
const [node, setNode] = useNode<MemoryNode>()
|
|
41
55
|
const [complete, setComplete] = useState(false)
|
|
42
56
|
|
|
57
|
+
const updateNode = useCallback(
|
|
58
|
+
(node: MemoryNode) => {
|
|
59
|
+
const newNode = NodeUtils.newNodeInstance(node)
|
|
60
|
+
setNode?.(newNode)
|
|
61
|
+
},
|
|
62
|
+
[setNode],
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
const handleNewModule = async (apiConfig: ApiConfig, localNode: MemoryNode, description?: string) => {
|
|
66
|
+
try {
|
|
67
|
+
const remoteModule = await ModuleUtils.constructRemoteModule(apiConfig, description)
|
|
68
|
+
NodeUtils.addToNode(remoteModule, description ?? 'unknown', localNode)
|
|
69
|
+
} catch (error) {
|
|
70
|
+
console.error(error)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
// whenever the api config changes, assume we need to rebuild the memory node
|
|
76
|
+
setComplete(false)
|
|
77
|
+
}, [apiConfig])
|
|
78
|
+
|
|
43
79
|
useAsyncEffect(
|
|
44
80
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
81
|
async () => {
|
|
46
82
|
if (moduleList && apiConfig && node && !complete) {
|
|
47
|
-
const localNode = await resolveNode(node, reset)
|
|
83
|
+
const localNode = await NodeUtils.resolveNode(node, reset)
|
|
48
84
|
await Promise.allSettled(
|
|
49
85
|
Object.entries(moduleList).map(async ([_key, { description }]) => {
|
|
50
|
-
|
|
51
|
-
const remoteModule = await HttpProxyModule.create({
|
|
52
|
-
apiConfig,
|
|
53
|
-
config: { schema: AbstractModuleConfigSchema },
|
|
54
|
-
name: description,
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
addToNode(remoteModule, description ?? 'unknown', localNode)
|
|
58
|
-
// using .assign instead of spread because we need to keep the prototype chain intact for root node / module methods
|
|
59
|
-
const newNode = Object.assign(Object.create(Object.getPrototypeOf(node)), node)
|
|
60
|
-
setNode?.(newNode)
|
|
61
|
-
setComplete(true)
|
|
62
|
-
} catch (error) {
|
|
63
|
-
console.log(error)
|
|
64
|
-
}
|
|
86
|
+
await handleNewModule(apiConfig, localNode, description)
|
|
65
87
|
}),
|
|
66
88
|
)
|
|
89
|
+
setComplete(true)
|
|
90
|
+
updateNode(node)
|
|
67
91
|
}
|
|
68
92
|
},
|
|
69
|
-
[apiConfig, complete, moduleList, node, reset, setNode],
|
|
93
|
+
[apiConfig, complete, moduleList, node, reset, setNode, updateNode],
|
|
70
94
|
)
|
|
95
|
+
|
|
71
96
|
return complete
|
|
72
97
|
}
|
|
@@ -2,6 +2,7 @@ import { useAsyncEffect } from '@xylabs/react-shared'
|
|
|
2
2
|
import { DivinerWrapper } from '@xyo-network/diviner-wrapper'
|
|
3
3
|
import { MemoryNode } from '@xyo-network/node'
|
|
4
4
|
import { XyoPayload, XyoPayloads } from '@xyo-network/payload-model'
|
|
5
|
+
import { assertDefinedEx } from '@xyo-network/react-shared'
|
|
5
6
|
import { useState } from 'react'
|
|
6
7
|
|
|
7
8
|
import { useNode } from './useNode'
|
|
@@ -16,7 +17,9 @@ export const useNodeQueryDiviner = (moduleIdentifier?: string, query?: XyoPayloa
|
|
|
16
17
|
async () => {
|
|
17
18
|
if (moduleIdentifier && query) {
|
|
18
19
|
try {
|
|
19
|
-
const
|
|
20
|
+
const divinerWrapper = (await node?.tryResolveWrapped(DivinerWrapper, { name: [moduleIdentifier] }))?.[0]
|
|
21
|
+
const diviner = assertDefinedEx(divinerWrapper, `Unable to find moduleIdentifier: ${moduleIdentifier}`)
|
|
22
|
+
|
|
20
23
|
const result = await diviner?.divine([query])
|
|
21
24
|
setResult(result)
|
|
22
25
|
setError(undefined)
|