@xyo-network/react-node 2.60.9 → 2.60.11
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 +14 -8
- package/dist/cjs/hooks/useModuleFromNode.js.map +1 -1
- package/dist/cjs/hooks/useNodeFromNode.js +2 -2
- package/dist/cjs/hooks/useNodeFromNode.js.map +1 -1
- package/dist/docs.json +554 -428
- package/dist/esm/hooks/useModuleFromNode.js +14 -8
- package/dist/esm/hooks/useModuleFromNode.js.map +1 -1
- package/dist/esm/hooks/useNodeFromNode.js +2 -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 +11 -11
- package/src/hooks/useModuleFromNode.ts +16 -9
- package/src/hooks/useNodeFromNode.tsx +5 -2
|
@@ -1,40 +1,46 @@
|
|
|
1
1
|
import { usePromise } from '@xylabs/react-promise';
|
|
2
2
|
import { asModuleInstance } from '@xyo-network/module';
|
|
3
|
+
import { isModuleInstance } from '@xyo-network/module-model';
|
|
3
4
|
import { useState } from 'react';
|
|
4
5
|
import { useModuleFilterOptions } from './useModuleFilterOptions';
|
|
5
6
|
import { useNode } from './useNode';
|
|
6
7
|
export const useModuleFromNodeConfigLogger = (config) => {
|
|
7
8
|
return config?.logger;
|
|
8
9
|
};
|
|
9
|
-
export const useModuleFromNode = (
|
|
10
|
+
export const useModuleFromNode = (nameOrAddressOrInstance, config) => {
|
|
10
11
|
const [node, nodeError] = useNode(config);
|
|
11
12
|
const logger = useModuleFromNodeConfigLogger(config);
|
|
12
13
|
const filterOptions = useModuleFilterOptions(config);
|
|
13
14
|
const [result, setResult] = useState();
|
|
14
15
|
const [, error] = usePromise(async () => {
|
|
15
16
|
logger?.debug('useModuleFromNode: resolving');
|
|
16
|
-
if (node &&
|
|
17
|
+
if (node && nameOrAddressOrInstance) {
|
|
17
18
|
node.on('moduleAttached', ({ module }) => {
|
|
18
19
|
logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`);
|
|
19
|
-
if (module.address ===
|
|
20
|
+
if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {
|
|
20
21
|
setResult(asModuleInstance(module));
|
|
21
22
|
}
|
|
22
23
|
});
|
|
23
24
|
node.on('moduleDetached', ({ module }) => {
|
|
24
25
|
logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`);
|
|
25
|
-
if (module.address ===
|
|
26
|
+
if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {
|
|
26
27
|
setResult(undefined);
|
|
27
28
|
}
|
|
28
29
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
if (isModuleInstance(nameOrAddressOrInstance)) {
|
|
31
|
+
setResult(nameOrAddressOrInstance);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const result = await node.resolve(nameOrAddressOrInstance, filterOptions);
|
|
35
|
+
logger?.debug(`Result: ${result?.address}`);
|
|
36
|
+
setResult(result);
|
|
37
|
+
}
|
|
32
38
|
return result;
|
|
33
39
|
}
|
|
34
40
|
logger?.debug('Result: No Node');
|
|
35
41
|
return undefined;
|
|
36
42
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
|
-
}, [node,
|
|
43
|
+
}, [node, nameOrAddressOrInstance]);
|
|
38
44
|
return [result, nodeError ?? error];
|
|
39
45
|
};
|
|
40
46
|
//# sourceMappingURL=useModuleFromNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAuC,MAAM,2BAA2B,CAAA;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAA6B,EAAE,EAAE;IAC7E,OAAO,MAAM,EAAE,MAAM,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,uBAAiD,EACjD,MAA6B,EACoB,EAAE;IACnD,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,IAAI,IAAI,IAAI,uBAAuB,EAAE;YACnC,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,uBAAuB,EAAE;oBACjG,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,uBAAuB,EAAE;oBACjG,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;gBAC7C,SAAS,CAAC,uBAAuB,CAAC,CAAA;aACnC;iBAAM;gBACL,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAA;gBACzE,MAAM,EAAE,KAAK,CAAC,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;aAClB;YACD,OAAO,MAAM,CAAA;SACd;QACD,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAA;IACnC,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;AACrC,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { asNodeInstance } from '@xyo-network/node-model';
|
|
2
2
|
import { useModuleFromNode } from './useModuleFromNode';
|
|
3
|
-
export const useNodeFromNode = (
|
|
4
|
-
const [module, error] = useModuleFromNode(
|
|
3
|
+
export const useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
4
|
+
const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
5
5
|
const instance = asNodeInstance(module);
|
|
6
6
|
if (module && !instance) {
|
|
7
7
|
const error = Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`);
|
|
@@ -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,
|
|
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,CAC7B,uBAA+C,EAC/C,MAA6B,EACkB,EAAE;IACjD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;IAC1E,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,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QAChI,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"}
|
|
@@ -6,5 +6,5 @@ export type ModuleFromNodeConfig = ModuleFilterOptions & {
|
|
|
6
6
|
node?: NodeInstance | string;
|
|
7
7
|
};
|
|
8
8
|
export declare const useModuleFromNodeConfigLogger: (config?: ModuleFromNodeConfig) => Logger | undefined;
|
|
9
|
-
export declare const useModuleFromNode: (
|
|
9
|
+
export declare const useModuleFromNode: (nameOrAddressOrInstance?: string | ModuleInstance, config?: ModuleFromNodeConfig) => [ModuleInstance | undefined, Error | undefined];
|
|
10
10
|
//# sourceMappingURL=useModuleFromNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,
|
|
1
|
+
{"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAoB,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAMtD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,6BAA6B,YAAa,oBAAoB,uBAE1E,CAAA;AAED,eAAO,MAAM,iBAAiB,6BACF,MAAM,GAAG,cAAc,WACxC,oBAAoB,KAC5B,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAkChD,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: (
|
|
3
|
+
export declare const useNodeFromNode: (nameOrAddressOrInstance?: string | NodeInstance, 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,
|
|
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,6BACA,MAAM,GAAG,YAAY,WACtC,oBAAoB,KAC5B,CAAC,YAAY,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAS9C,CAAA"}
|
package/package.json
CHANGED
|
@@ -15,21 +15,21 @@
|
|
|
15
15
|
"@xylabs/react-flexbox": "~2.17.15",
|
|
16
16
|
"@xylabs/react-promise": "~2.17.15",
|
|
17
17
|
"@xylabs/react-shared": "~2.17.15",
|
|
18
|
-
"@xyo-network/logger": "^2.72.
|
|
19
|
-
"@xyo-network/module": "^2.72.
|
|
20
|
-
"@xyo-network/module-model": "^2.72.
|
|
21
|
-
"@xyo-network/node-model": "^2.72.
|
|
22
|
-
"@xyo-network/react-node-context": "~2.60.
|
|
23
|
-
"@xyo-network/react-node-provider": "~2.60.
|
|
18
|
+
"@xyo-network/logger": "^2.72.7",
|
|
19
|
+
"@xyo-network/module": "^2.72.7",
|
|
20
|
+
"@xyo-network/module-model": "^2.72.7",
|
|
21
|
+
"@xyo-network/node-model": "^2.72.7",
|
|
22
|
+
"@xyo-network/react-node-context": "~2.60.11",
|
|
23
|
+
"@xyo-network/react-node-provider": "~2.60.11"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@storybook/react": "^7.4.0",
|
|
27
27
|
"@xylabs/ts-scripts-yarn3": "^2.19.3",
|
|
28
28
|
"@xylabs/tsconfig-react": "^2.19.3",
|
|
29
|
-
"@xyo-network/node-memory": "^2.72.
|
|
30
|
-
"@xyo-network/payload-model": "^2.72.
|
|
31
|
-
"@xyo-network/react-storybook": "~2.60.
|
|
32
|
-
"@xyo-network/react-wallet": "~2.60.
|
|
29
|
+
"@xyo-network/node-memory": "^2.72.7",
|
|
30
|
+
"@xyo-network/payload-model": "^2.72.7",
|
|
31
|
+
"@xyo-network/react-storybook": "~2.60.11",
|
|
32
|
+
"@xyo-network/react-wallet": "~2.60.11",
|
|
33
33
|
"typescript": "^5.2.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
},
|
|
85
85
|
"sideEffects": false,
|
|
86
86
|
"types": "dist/types/index.d.ts",
|
|
87
|
-
"version": "2.60.
|
|
87
|
+
"version": "2.60.11"
|
|
88
88
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { usePromise } from '@xylabs/react-promise'
|
|
2
2
|
import { Logger } from '@xyo-network/logger'
|
|
3
3
|
import { asModuleInstance } from '@xyo-network/module'
|
|
4
|
-
import { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'
|
|
4
|
+
import { isModuleInstance, ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'
|
|
5
5
|
import { NodeInstance } from '@xyo-network/node-model'
|
|
6
6
|
import { useState } from 'react'
|
|
7
7
|
|
|
@@ -17,34 +17,41 @@ export const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) =>
|
|
|
17
17
|
return config?.logger
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export const useModuleFromNode = (
|
|
20
|
+
export const useModuleFromNode = (
|
|
21
|
+
nameOrAddressOrInstance?: string | ModuleInstance,
|
|
22
|
+
config?: ModuleFromNodeConfig,
|
|
23
|
+
): [ModuleInstance | undefined, Error | undefined] => {
|
|
21
24
|
const [node, nodeError] = useNode(config)
|
|
22
25
|
const logger = useModuleFromNodeConfigLogger(config)
|
|
23
26
|
const filterOptions = useModuleFilterOptions(config)
|
|
24
27
|
const [result, setResult] = useState<ModuleInstance | undefined>()
|
|
25
28
|
const [, error] = usePromise(async () => {
|
|
26
29
|
logger?.debug('useModuleFromNode: resolving')
|
|
27
|
-
if (node &&
|
|
30
|
+
if (node && nameOrAddressOrInstance) {
|
|
28
31
|
node.on('moduleAttached', ({ module }) => {
|
|
29
32
|
logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)
|
|
30
|
-
if (module.address ===
|
|
33
|
+
if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {
|
|
31
34
|
setResult(asModuleInstance(module))
|
|
32
35
|
}
|
|
33
36
|
})
|
|
34
37
|
node.on('moduleDetached', ({ module }) => {
|
|
35
38
|
logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)
|
|
36
|
-
if (module.address ===
|
|
39
|
+
if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {
|
|
37
40
|
setResult(undefined)
|
|
38
41
|
}
|
|
39
42
|
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
if (isModuleInstance(nameOrAddressOrInstance)) {
|
|
44
|
+
setResult(nameOrAddressOrInstance)
|
|
45
|
+
} else {
|
|
46
|
+
const result = await node.resolve(nameOrAddressOrInstance, filterOptions)
|
|
47
|
+
logger?.debug(`Result: ${result?.address}`)
|
|
48
|
+
setResult(result)
|
|
49
|
+
}
|
|
43
50
|
return result
|
|
44
51
|
}
|
|
45
52
|
logger?.debug('Result: No Node')
|
|
46
53
|
return undefined
|
|
47
54
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
|
-
}, [node,
|
|
55
|
+
}, [node, nameOrAddressOrInstance])
|
|
49
56
|
return [result, nodeError ?? error]
|
|
50
57
|
}
|
|
@@ -2,8 +2,11 @@ import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'
|
|
|
2
2
|
|
|
3
3
|
import { ModuleFromNodeConfig, useModuleFromNode } from './useModuleFromNode'
|
|
4
4
|
|
|
5
|
-
export const useNodeFromNode = (
|
|
6
|
-
|
|
5
|
+
export const useNodeFromNode = (
|
|
6
|
+
nameOrAddressOrInstance?: string | NodeInstance,
|
|
7
|
+
config?: ModuleFromNodeConfig,
|
|
8
|
+
): [NodeInstance | undefined, Error | undefined] => {
|
|
9
|
+
const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)
|
|
7
10
|
const instance = asNodeInstance(module)
|
|
8
11
|
if (module && !instance) {
|
|
9
12
|
const error = Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)
|