@xyo-network/react-node 2.57.4 → 2.57.5
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/hooks/useModuleFromNode.js +12 -8
- package/dist/cjs/hooks/useModuleFromNode.js.map +1 -1
- package/dist/cjs/hooks/useNodeFromNode.js +4 -2
- package/dist/cjs/hooks/useNodeFromNode.js.map +1 -1
- package/dist/docs.json +14 -22
- package/dist/esm/hooks/useModuleFromNode.js +13 -9
- package/dist/esm/hooks/useModuleFromNode.js.map +1 -1
- package/dist/esm/hooks/useNodeFromNode.js +4 -2
- package/dist/esm/hooks/useNodeFromNode.js.map +1 -1
- package/dist/types/hooks/useModuleFromNode.d.ts +1 -1
- package/dist/types/hooks/useModuleFromNode.d.ts.map +1 -1
- package/dist/types/hooks/useNodeFromNode.d.ts +1 -1
- package/dist/types/hooks/useNodeFromNode.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/hooks/useModuleFromNode.tsx +15 -11
- package/src/hooks/useNodeFromNode.tsx +5 -3
|
@@ -29,8 +29,10 @@ const useModuleFromNode = (nameOrAddress, config) => {
|
|
|
29
29
|
setError(undefined);
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
const error = Error(`Attached module failed identity check [${eventModule.config.name}:${eventModule.address}]`);
|
|
33
|
+
console.error(error.message);
|
|
34
|
+
setModule(undefined);
|
|
35
|
+
setError(error);
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
else {
|
|
@@ -44,22 +46,24 @@ const useModuleFromNode = (nameOrAddress, config) => {
|
|
|
44
46
|
console.log('detachHandler: ', eventModule.address);
|
|
45
47
|
if (eventModule.address === address) {
|
|
46
48
|
logger === null || logger === void 0 ? void 0 : logger.debug(`detachHandler-clearing [${address}]`);
|
|
47
|
-
setModule(
|
|
49
|
+
setModule(undefined);
|
|
48
50
|
setError(undefined);
|
|
49
51
|
}
|
|
50
52
|
};
|
|
51
53
|
const module = nameOrAddress ? yield node.resolve(nameOrAddress, resolverConfig) : undefined;
|
|
52
54
|
if (mounted()) {
|
|
55
|
+
const instance = (0, module_model_1.asModuleInstance)(module);
|
|
53
56
|
if (module) {
|
|
54
|
-
if (!
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
if (!instance) {
|
|
58
|
+
const error = Error(`Attached module failed identity check [${module.config.name}:${module.address}]`);
|
|
59
|
+
setModule(undefined);
|
|
60
|
+
setError(error);
|
|
57
61
|
}
|
|
58
62
|
else {
|
|
59
63
|
eventUnsubscribe.push(node.on('moduleAttached', attachHandler));
|
|
60
64
|
eventUnsubscribe.push(node.on('moduleDetached', detachHandler));
|
|
61
65
|
logger === null || logger === void 0 ? void 0 : logger.debug(`resolved [${nameOrAddress}]`);
|
|
62
|
-
setModule(
|
|
66
|
+
setModule(instance !== null && instance !== void 0 ? instance : null);
|
|
63
67
|
setError(undefined);
|
|
64
68
|
}
|
|
65
69
|
}
|
|
@@ -71,7 +75,7 @@ const useModuleFromNode = (nameOrAddress, config) => {
|
|
|
71
75
|
}
|
|
72
76
|
else {
|
|
73
77
|
if (mounted()) {
|
|
74
|
-
setModule(node);
|
|
78
|
+
setModule(node ? node : undefined);
|
|
75
79
|
setError(undefined);
|
|
76
80
|
}
|
|
77
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":";;;;AAAA,mEAA2D;AAG3D,
|
|
1
|
+
{"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,11 @@ const node_model_1 = require("@xyo-network/node-model");
|
|
|
5
5
|
const useModuleFromNode_1 = require("./useModuleFromNode");
|
|
6
6
|
const useNodeFromNode = (nameOrAddress, config) => {
|
|
7
7
|
const [module, error] = (0, useModuleFromNode_1.useModuleFromNode)(nameOrAddress, config);
|
|
8
|
-
const instance =
|
|
8
|
+
const instance = (0, node_model_1.asNodeInstance)(module);
|
|
9
9
|
if (module && !instance) {
|
|
10
|
-
|
|
10
|
+
const error = Error(`Resolved module is not a NodeInstance [${module.config.name}:${module.address}]`);
|
|
11
|
+
console.error(error.message);
|
|
12
|
+
return [undefined, error];
|
|
11
13
|
}
|
|
12
14
|
return [instance, error];
|
|
13
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":";;;AAAA,wDAAsE;AAEtE,2DAA6E;AAEtE,MAAM,eAAe,GAAG,CAAC,aAAsB,EAAE,MAA6B,
|
|
1
|
+
{"version":3,"file":"useNodeFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":";;;AAAA,wDAAsE;AAEtE,2DAA6E;AAEtE,MAAM,eAAe,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAiD,EAAE;IACtI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,qCAAiB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAA;IACvC,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,0CAA0C,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QACtG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KAC1B;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA;AATY,QAAA,eAAe,mBAS3B"}
|
package/dist/docs.json
CHANGED
|
@@ -601,7 +601,7 @@
|
|
|
601
601
|
"fileName": "packages/modules/packages/node/src/components/NodeDrawer.tsx",
|
|
602
602
|
"line": 10,
|
|
603
603
|
"character": 17,
|
|
604
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
604
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/components/NodeDrawer.tsx#L10"
|
|
605
605
|
}
|
|
606
606
|
],
|
|
607
607
|
"extendedTypes": [
|
|
@@ -1349,7 +1349,7 @@
|
|
|
1349
1349
|
"fileName": "packages/modules/packages/node/src/hooks/useModuleFromNode.tsx",
|
|
1350
1350
|
"line": 10,
|
|
1351
1351
|
"character": 12,
|
|
1352
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1352
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModuleFromNode.tsx#L10"
|
|
1353
1353
|
}
|
|
1354
1354
|
],
|
|
1355
1355
|
"type": {
|
|
@@ -1386,7 +1386,7 @@
|
|
|
1386
1386
|
"fileName": "packages/modules/packages/node/src/hooks/useModuleFromNode.tsx",
|
|
1387
1387
|
"line": 11,
|
|
1388
1388
|
"character": 2,
|
|
1389
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1389
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModuleFromNode.tsx#L11"
|
|
1390
1390
|
}
|
|
1391
1391
|
],
|
|
1392
1392
|
"type": {
|
|
@@ -1413,7 +1413,7 @@
|
|
|
1413
1413
|
"fileName": "packages/modules/packages/node/src/hooks/useModuleFromNode.tsx",
|
|
1414
1414
|
"line": 10,
|
|
1415
1415
|
"character": 57,
|
|
1416
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1416
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModuleFromNode.tsx#L10"
|
|
1417
1417
|
}
|
|
1418
1418
|
]
|
|
1419
1419
|
}
|
|
@@ -1681,7 +1681,7 @@
|
|
|
1681
1681
|
"fileName": "packages/modules/packages/node/src/components/Node.tsx",
|
|
1682
1682
|
"line": 7,
|
|
1683
1683
|
"character": 13,
|
|
1684
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1684
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/components/Node.tsx#L7"
|
|
1685
1685
|
}
|
|
1686
1686
|
],
|
|
1687
1687
|
"signatures": [
|
|
@@ -1772,7 +1772,7 @@
|
|
|
1772
1772
|
"fileName": "packages/modules/packages/node/src/components/NodeDrawer.tsx",
|
|
1773
1773
|
"line": 12,
|
|
1774
1774
|
"character": 13,
|
|
1775
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
1775
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/components/NodeDrawer.tsx#L12"
|
|
1776
1776
|
}
|
|
1777
1777
|
],
|
|
1778
1778
|
"signatures": [
|
|
@@ -2045,7 +2045,7 @@
|
|
|
2045
2045
|
"fileName": "packages/modules/packages/node/src/hooks/useModuleFromNode.tsx",
|
|
2046
2046
|
"line": 14,
|
|
2047
2047
|
"character": 13,
|
|
2048
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2048
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModuleFromNode.tsx#L14"
|
|
2049
2049
|
}
|
|
2050
2050
|
],
|
|
2051
2051
|
"signatures": [
|
|
@@ -2060,7 +2060,7 @@
|
|
|
2060
2060
|
"fileName": "packages/modules/packages/node/src/hooks/useModuleFromNode.tsx",
|
|
2061
2061
|
"line": 14,
|
|
2062
2062
|
"character": 33,
|
|
2063
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2063
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModuleFromNode.tsx#L14"
|
|
2064
2064
|
}
|
|
2065
2065
|
],
|
|
2066
2066
|
"parameters": [
|
|
@@ -2103,10 +2103,6 @@
|
|
|
2103
2103
|
"type": "intrinsic",
|
|
2104
2104
|
"name": "undefined"
|
|
2105
2105
|
},
|
|
2106
|
-
{
|
|
2107
|
-
"type": "literal",
|
|
2108
|
-
"value": null
|
|
2109
|
-
},
|
|
2110
2106
|
{
|
|
2111
2107
|
"type": "reference",
|
|
2112
2108
|
"target": {
|
|
@@ -2443,7 +2439,7 @@
|
|
|
2443
2439
|
"fileName": "packages/modules/packages/node/src/hooks/useModulesFromNode.ts",
|
|
2444
2440
|
"line": 11,
|
|
2445
2441
|
"character": 13,
|
|
2446
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2442
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModulesFromNode.ts#L11"
|
|
2447
2443
|
}
|
|
2448
2444
|
],
|
|
2449
2445
|
"signatures": [
|
|
@@ -2458,7 +2454,7 @@
|
|
|
2458
2454
|
"fileName": "packages/modules/packages/node/src/hooks/useModulesFromNode.ts",
|
|
2459
2455
|
"line": 11,
|
|
2460
2456
|
"character": 34,
|
|
2461
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
2457
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useModulesFromNode.ts#L11"
|
|
2462
2458
|
}
|
|
2463
2459
|
],
|
|
2464
2460
|
"parameters": [
|
|
@@ -3071,7 +3067,7 @@
|
|
|
3071
3067
|
"fileName": "packages/modules/packages/node/src/hooks/useNodeFromNode.tsx",
|
|
3072
3068
|
"line": 5,
|
|
3073
3069
|
"character": 13,
|
|
3074
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
3070
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useNodeFromNode.tsx#L5"
|
|
3075
3071
|
}
|
|
3076
3072
|
],
|
|
3077
3073
|
"signatures": [
|
|
@@ -3086,7 +3082,7 @@
|
|
|
3086
3082
|
"fileName": "packages/modules/packages/node/src/hooks/useNodeFromNode.tsx",
|
|
3087
3083
|
"line": 5,
|
|
3088
3084
|
"character": 31,
|
|
3089
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
3085
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/useNodeFromNode.tsx#L5"
|
|
3090
3086
|
}
|
|
3091
3087
|
],
|
|
3092
3088
|
"parameters": [
|
|
@@ -3129,10 +3125,6 @@
|
|
|
3129
3125
|
"type": "intrinsic",
|
|
3130
3126
|
"name": "undefined"
|
|
3131
3127
|
},
|
|
3132
|
-
{
|
|
3133
|
-
"type": "literal",
|
|
3134
|
-
"value": null
|
|
3135
|
-
},
|
|
3136
3128
|
{
|
|
3137
3129
|
"type": "reference",
|
|
3138
3130
|
"target": {
|
|
@@ -3426,7 +3418,7 @@
|
|
|
3426
3418
|
"fileName": "packages/modules/packages/node/src/hooks/provided/useProvidedNode.tsx",
|
|
3427
3419
|
"line": 5,
|
|
3428
3420
|
"character": 13,
|
|
3429
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
3421
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/provided/useProvidedNode.tsx#L5"
|
|
3430
3422
|
}
|
|
3431
3423
|
],
|
|
3432
3424
|
"signatures": [
|
|
@@ -3441,7 +3433,7 @@
|
|
|
3441
3433
|
"fileName": "packages/modules/packages/node/src/hooks/provided/useProvidedNode.tsx",
|
|
3442
3434
|
"line": 5,
|
|
3443
3435
|
"character": 31,
|
|
3444
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
|
3436
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/736d3607dd4d/packages/modules/packages/node/src/hooks/provided/useProvidedNode.tsx#L5"
|
|
3445
3437
|
}
|
|
3446
3438
|
],
|
|
3447
3439
|
"type": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-async-effect';
|
|
2
|
-
import { isModuleInstance } from '@xyo-network/module-model';
|
|
2
|
+
import { asModuleInstance, isModuleInstance } from '@xyo-network/module-model';
|
|
3
3
|
import { useMemo, useState } from 'react';
|
|
4
4
|
import { useProvidedNode } from './provided';
|
|
5
5
|
export const useModuleFromNode = (nameOrAddress, config) => {
|
|
@@ -25,8 +25,10 @@ export const useModuleFromNode = (nameOrAddress, config) => {
|
|
|
25
25
|
setError(undefined);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
const error = Error(`Attached module failed identity check [${eventModule.config.name}:${eventModule.address}]`);
|
|
29
|
+
console.error(error.message);
|
|
30
|
+
setModule(undefined);
|
|
31
|
+
setError(error);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
else {
|
|
@@ -40,22 +42,24 @@ export const useModuleFromNode = (nameOrAddress, config) => {
|
|
|
40
42
|
console.log('detachHandler: ', eventModule.address);
|
|
41
43
|
if (eventModule.address === address) {
|
|
42
44
|
logger?.debug(`detachHandler-clearing [${address}]`);
|
|
43
|
-
setModule(
|
|
45
|
+
setModule(undefined);
|
|
44
46
|
setError(undefined);
|
|
45
47
|
}
|
|
46
48
|
};
|
|
47
49
|
const module = nameOrAddress ? await node.resolve(nameOrAddress, resolverConfig) : undefined;
|
|
48
50
|
if (mounted()) {
|
|
51
|
+
const instance = asModuleInstance(module);
|
|
49
52
|
if (module) {
|
|
50
|
-
if (!
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
if (!instance) {
|
|
54
|
+
const error = Error(`Attached module failed identity check [${module.config.name}:${module.address}]`);
|
|
55
|
+
setModule(undefined);
|
|
56
|
+
setError(error);
|
|
53
57
|
}
|
|
54
58
|
else {
|
|
55
59
|
eventUnsubscribe.push(node.on('moduleAttached', attachHandler));
|
|
56
60
|
eventUnsubscribe.push(node.on('moduleDetached', detachHandler));
|
|
57
61
|
logger?.debug(`resolved [${nameOrAddress}]`);
|
|
58
|
-
setModule(
|
|
62
|
+
setModule(instance ?? null);
|
|
59
63
|
setError(undefined);
|
|
60
64
|
}
|
|
61
65
|
}
|
|
@@ -67,7 +71,7 @@ export const useModuleFromNode = (nameOrAddress, config) => {
|
|
|
67
71
|
}
|
|
68
72
|
else {
|
|
69
73
|
if (mounted()) {
|
|
70
|
-
setModule(node);
|
|
74
|
+
setModule(node ? node : undefined);
|
|
71
75
|
setError(undefined);
|
|
72
76
|
}
|
|
73
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,OAAO,EAAE,gBAAgB,EAAuC,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,11 @@ import { asNodeInstance } from '@xyo-network/node-model';
|
|
|
2
2
|
import { useModuleFromNode } from './useModuleFromNode';
|
|
3
3
|
export const useNodeFromNode = (nameOrAddress, config) => {
|
|
4
4
|
const [module, error] = useModuleFromNode(nameOrAddress, config);
|
|
5
|
-
const instance =
|
|
5
|
+
const instance = asNodeInstance(module);
|
|
6
6
|
if (module && !instance) {
|
|
7
|
-
|
|
7
|
+
const error = Error(`Resolved module is not a NodeInstance [${module.config.name}:${module.address}]`);
|
|
8
|
+
console.error(error.message);
|
|
9
|
+
return [undefined, error];
|
|
8
10
|
}
|
|
9
11
|
return [instance, error];
|
|
10
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAA;AAEtE,OAAO,EAAwB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAsB,EAAE,MAA6B,
|
|
1
|
+
{"version":3,"file":"useNodeFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAA;AAEtE,OAAO,EAAwB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAiD,EAAE;IACtI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACvC,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,0CAA0C,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QACtG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;KAC1B;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -3,5 +3,5 @@ import { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model';
|
|
|
3
3
|
export type ModuleFromNodeConfig = ModuleFilterOptions & {
|
|
4
4
|
logger?: Logger;
|
|
5
5
|
};
|
|
6
|
-
export declare const useModuleFromNode: (nameOrAddress?: string, config?: ModuleFromNodeConfig) => [ModuleInstance |
|
|
6
|
+
export declare const useModuleFromNode: (nameOrAddress?: string, config?: ModuleFromNodeConfig) => [ModuleInstance | undefined, Error | undefined];
|
|
7
7
|
//# sourceMappingURL=useModuleFromNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,
|
|
1
|
+
{"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAsC,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAMnH,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,iBAAiB,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAuFvI,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { NodeInstance } from '@xyo-network/node-model';
|
|
2
2
|
import { ModuleFromNodeConfig } from './useModuleFromNode';
|
|
3
|
-
export declare const useNodeFromNode: (nameOrAddress?: string, config?: ModuleFromNodeConfig) => [NodeInstance |
|
|
3
|
+
export declare const useNodeFromNode: (nameOrAddress?: string, config?: ModuleFromNodeConfig) => [NodeInstance | undefined, Error | undefined];
|
|
4
4
|
//# sourceMappingURL=useNodeFromNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNodeFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtE,OAAO,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAA;AAE7E,eAAO,MAAM,eAAe,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"useNodeFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtE,OAAO,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAA;AAE7E,eAAO,MAAM,eAAe,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,YAAY,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CASnI,CAAA"}
|
package/package.json
CHANGED
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
"@xylabs/react-flexbox": "~2.17.6",
|
|
16
16
|
"@xylabs/react-promise": "~2.17.6",
|
|
17
17
|
"@xylabs/react-shared": "~2.17.6",
|
|
18
|
-
"@xyo-network/core": "~2.66.
|
|
19
|
-
"@xyo-network/module": "~2.66.
|
|
20
|
-
"@xyo-network/module-events": "~2.66.
|
|
21
|
-
"@xyo-network/module-model": "~2.66.
|
|
22
|
-
"@xyo-network/node": "~2.66.
|
|
23
|
-
"@xyo-network/node-model": "~2.66.
|
|
24
|
-
"@xyo-network/react-module": "~2.57.
|
|
25
|
-
"@xyo-network/react-node-context": "~2.57.
|
|
26
|
-
"@xyo-network/react-node-provider": "~2.57.
|
|
18
|
+
"@xyo-network/core": "~2.66.8",
|
|
19
|
+
"@xyo-network/module": "~2.66.8",
|
|
20
|
+
"@xyo-network/module-events": "~2.66.8",
|
|
21
|
+
"@xyo-network/module-model": "~2.66.8",
|
|
22
|
+
"@xyo-network/node": "~2.66.8",
|
|
23
|
+
"@xyo-network/node-model": "~2.66.8",
|
|
24
|
+
"@xyo-network/react-module": "~2.57.5",
|
|
25
|
+
"@xyo-network/react-node-context": "~2.57.5",
|
|
26
|
+
"@xyo-network/react-node-provider": "~2.57.5",
|
|
27
27
|
"lodash": "^4.17.21"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"@types/lodash": "^4.14.195",
|
|
32
32
|
"@xylabs/ts-scripts-yarn3": "^2.18.11",
|
|
33
33
|
"@xylabs/tsconfig-react": "^2.18.11",
|
|
34
|
-
"@xyo-network/payload-model": "~2.66.
|
|
35
|
-
"@xyo-network/react-storybook": "~2.57.
|
|
36
|
-
"@xyo-network/react-wallet": "~2.57.
|
|
34
|
+
"@xyo-network/payload-model": "~2.66.8",
|
|
35
|
+
"@xyo-network/react-storybook": "~2.57.5",
|
|
36
|
+
"@xyo-network/react-wallet": "~2.57.5",
|
|
37
37
|
"typescript": "^5.1.6"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
},
|
|
89
89
|
"sideEffects": false,
|
|
90
90
|
"types": "dist/types/index.d.ts",
|
|
91
|
-
"version": "2.57.
|
|
91
|
+
"version": "2.57.5"
|
|
92
92
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-async-effect'
|
|
2
2
|
import { Logger } from '@xyo-network/core'
|
|
3
3
|
import { EventUnsubscribeFunction } from '@xyo-network/module-events'
|
|
4
|
-
import { isModuleInstance, ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'
|
|
4
|
+
import { asModuleInstance, isModuleInstance, ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'
|
|
5
5
|
import { ModuleAttachedEventArgs, ModuleDetachedEventArgs } from '@xyo-network/node'
|
|
6
6
|
import { useMemo, useState } from 'react'
|
|
7
7
|
|
|
@@ -11,9 +11,9 @@ export type ModuleFromNodeConfig = ModuleFilterOptions & {
|
|
|
11
11
|
logger?: Logger
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export const useModuleFromNode = (nameOrAddress?: string, config?: ModuleFromNodeConfig): [ModuleInstance |
|
|
14
|
+
export const useModuleFromNode = (nameOrAddress?: string, config?: ModuleFromNodeConfig): [ModuleInstance | undefined, Error | undefined] => {
|
|
15
15
|
const [node] = useProvidedNode()
|
|
16
|
-
const [module, setModule] = useState<ModuleInstance
|
|
16
|
+
const [module, setModule] = useState<ModuleInstance>()
|
|
17
17
|
const [error, setError] = useState<Error>()
|
|
18
18
|
|
|
19
19
|
const address = useMemo(() => module?.address, [module])
|
|
@@ -35,8 +35,10 @@ export const useModuleFromNode = (nameOrAddress?: string, config?: ModuleFromNod
|
|
|
35
35
|
setModule(eventModule)
|
|
36
36
|
setError(undefined)
|
|
37
37
|
} else {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
const error = Error(`Attached module failed identity check [${eventModule.config.name}:${eventModule.address}]`)
|
|
39
|
+
console.error(error.message)
|
|
40
|
+
setModule(undefined)
|
|
41
|
+
setError(error)
|
|
40
42
|
}
|
|
41
43
|
} else {
|
|
42
44
|
setModule(undefined)
|
|
@@ -49,21 +51,23 @@ export const useModuleFromNode = (nameOrAddress?: string, config?: ModuleFromNod
|
|
|
49
51
|
console.log('detachHandler: ', eventModule.address)
|
|
50
52
|
if (eventModule.address === address) {
|
|
51
53
|
logger?.debug(`detachHandler-clearing [${address}]`)
|
|
52
|
-
setModule(
|
|
54
|
+
setModule(undefined)
|
|
53
55
|
setError(undefined)
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
const module = nameOrAddress ? await node.resolve(nameOrAddress, resolverConfig) : undefined
|
|
57
59
|
if (mounted()) {
|
|
60
|
+
const instance = asModuleInstance(module)
|
|
58
61
|
if (module) {
|
|
59
|
-
if (!
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
if (!instance) {
|
|
63
|
+
const error = Error(`Attached module failed identity check [${module.config.name}:${module.address}]`)
|
|
64
|
+
setModule(undefined)
|
|
65
|
+
setError(error)
|
|
62
66
|
} else {
|
|
63
67
|
eventUnsubscribe.push(node.on('moduleAttached', attachHandler))
|
|
64
68
|
eventUnsubscribe.push(node.on('moduleDetached', detachHandler))
|
|
65
69
|
logger?.debug(`resolved [${nameOrAddress}]`)
|
|
66
|
-
setModule(
|
|
70
|
+
setModule(instance ?? null)
|
|
67
71
|
setError(undefined)
|
|
68
72
|
}
|
|
69
73
|
} else {
|
|
@@ -73,7 +77,7 @@ export const useModuleFromNode = (nameOrAddress?: string, config?: ModuleFromNod
|
|
|
73
77
|
}
|
|
74
78
|
} else {
|
|
75
79
|
if (mounted()) {
|
|
76
|
-
setModule(node)
|
|
80
|
+
setModule(node ? node : undefined)
|
|
77
81
|
setError(undefined)
|
|
78
82
|
}
|
|
79
83
|
}
|
|
@@ -2,11 +2,13 @@ import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
|
2
2
|
|
|
3
3
|
import { ModuleFromNodeConfig, useModuleFromNode } from './useModuleFromNode'
|
|
4
4
|
|
|
5
|
-
export const useNodeFromNode = (nameOrAddress?: string, config?: ModuleFromNodeConfig): [NodeInstance |
|
|
5
|
+
export const useNodeFromNode = (nameOrAddress?: string, config?: ModuleFromNodeConfig): [NodeInstance | undefined, Error | undefined] => {
|
|
6
6
|
const [module, error] = useModuleFromNode(nameOrAddress, config)
|
|
7
|
-
const instance =
|
|
7
|
+
const instance = asNodeInstance(module)
|
|
8
8
|
if (module && !instance) {
|
|
9
|
-
|
|
9
|
+
const error = Error(`Resolved module is not a NodeInstance [${module.config.name}:${module.address}]`)
|
|
10
|
+
console.error(error.message)
|
|
11
|
+
return [undefined, error]
|
|
10
12
|
}
|
|
11
13
|
return [instance, error]
|
|
12
14
|
}
|