@xyo-network/react-node 2.45.0-rc.15 → 2.45.0-rc.17
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/index.js +1 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useModule.js +49 -3
- package/dist/cjs/hooks/useModule.js.map +1 -1
- package/dist/cjs/hooks/useNode.js +14 -58
- package/dist/cjs/hooks/useNode.js.map +1 -1
- package/dist/cjs/hooks/useWrappedModule.js +33 -0
- package/dist/cjs/hooks/useWrappedModule.js.map +1 -0
- package/dist/docs.json +622 -1512
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useModule.js +47 -3
- package/dist/esm/hooks/useModule.js.map +1 -1
- package/dist/esm/hooks/useNode.js +12 -55
- package/dist/esm/hooks/useNode.js.map +1 -1
- package/dist/esm/hooks/useWrappedModule.js +29 -0
- package/dist/esm/hooks/useWrappedModule.js.map +1 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/useModule.d.ts +22 -58
- package/dist/types/hooks/useModule.d.ts.map +1 -1
- package/dist/types/hooks/useNode.d.ts +2 -59
- package/dist/types/hooks/useNode.d.ts.map +1 -1
- package/dist/types/hooks/useWrappedModule.d.ts +38 -0
- package/dist/types/hooks/useWrappedModule.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useModule.tsx +48 -3
- package/src/hooks/useNode.tsx +12 -80
- package/src/hooks/useWrappedModule.tsx +37 -0
package/dist/esm/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,4 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { useAsyncEffect } from '@xylabs/react-shared';
|
|
2
|
+
import { NodeWrapper } from '@xyo-network/node';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { useProvidedNode } from './useProvidedNode';
|
|
5
|
+
export const useModule = (nameOrAddress) => {
|
|
6
|
+
const [node, nodeError] = useProvidedNode();
|
|
7
|
+
const [module, setModule] = useState();
|
|
8
|
+
const [error, setError] = useState();
|
|
9
|
+
useAsyncEffect(
|
|
10
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11
|
+
async (mounted) => {
|
|
12
|
+
try {
|
|
13
|
+
if (nodeError) {
|
|
14
|
+
console.log(`Setting NodeError [${nodeError.message}]`);
|
|
15
|
+
setError(nodeError);
|
|
16
|
+
setModule(undefined);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const wrappedNode = NodeWrapper.tryWrap(node);
|
|
20
|
+
if (wrappedNode) {
|
|
21
|
+
const module = nameOrAddress
|
|
22
|
+
? await wrappedNode?.resolve(nameOrAddress)
|
|
23
|
+
: (await wrappedNode.resolve()).pop();
|
|
24
|
+
if (mounted()) {
|
|
25
|
+
console.log(`Setting Module [${module?.address}]`);
|
|
26
|
+
setModule(module);
|
|
27
|
+
setError(undefined);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log('Setting All to undefined');
|
|
32
|
+
setError(undefined);
|
|
33
|
+
setModule(undefined);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (ex) {
|
|
38
|
+
if (mounted()) {
|
|
39
|
+
const error = ex;
|
|
40
|
+
console.log(`Setting Error [${error.message}]`);
|
|
41
|
+
setError(error);
|
|
42
|
+
setModule(undefined);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, [nameOrAddress, node, nodeError]);
|
|
46
|
+
return [module, error];
|
|
47
|
+
};
|
|
4
48
|
//# sourceMappingURL=useModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAkC,aAAsB,EAA4C,EAAE;IAC7H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,eAAe,EAAE,CAAA;IAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,CAAC,OAAO,GAAG,CAAC,CAAA;gBACvD,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;iBAAM;gBACL,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC7C,IAAI,WAAW,EAAE;oBACf,MAAM,MAAM,GAAwB,aAAa;wBAC/C,CAAC,CAAC,MAAM,WAAW,EAAE,OAAO,CAAU,aAAa,CAAC;wBACpD,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAW,CAAC,CAAC,GAAG,EAAE,CAAA;oBAChD,IAAI,OAAO,EAAE,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,EAAE,OAAO,GAAG,CAAC,CAAA;wBAClD,SAAS,CAAC,MAAM,CAAC,CAAA;wBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,CACjC,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -1,59 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import { useAsyncEffect } from '@xylabs/react-shared';
|
|
3
|
-
import { NodeWrapper } from '@xyo-network/node';
|
|
4
|
-
import { useState } from 'react';
|
|
1
|
+
import { useModule } from './useModule';
|
|
5
2
|
import { useProvidedNode } from './useProvidedNode';
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const [module, setModule] = useState();
|
|
14
|
-
const [error, setError] = useState();
|
|
15
|
-
useAsyncEffect(
|
|
16
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
-
async (mounted) => {
|
|
18
|
-
try {
|
|
19
|
-
if (nodeError) {
|
|
20
|
-
console.log(`Setting NodeError [${nodeError.message}]`);
|
|
21
|
-
setError(nodeError);
|
|
22
|
-
setModule(undefined);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const wrappedNode = NodeWrapper.tryWrap(node);
|
|
26
|
-
if (wrappedNode) {
|
|
27
|
-
const module = nameOrAddress
|
|
28
|
-
? await wrappedNode?.resolve(nameOrAddress)
|
|
29
|
-
: (await wrappedNode.resolve()).pop();
|
|
30
|
-
const moduleWithDefault = nameOrAddress ? module : module ?? defaultModule;
|
|
31
|
-
const finalModule = shouldWrap ? wrapFunc(moduleWithDefault, account) : moduleWithDefault;
|
|
32
|
-
if (mounted()) {
|
|
33
|
-
console.log(`Setting Module [${finalModule?.address}]`);
|
|
34
|
-
setModule(finalModule);
|
|
35
|
-
setError(undefined);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
console.log('Setting All to undefined');
|
|
40
|
-
setError(undefined);
|
|
41
|
-
setModule(undefined);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
catch (ex) {
|
|
46
|
-
if (mounted()) {
|
|
47
|
-
const error = ex;
|
|
48
|
-
console.log(`Setting Error [${error.message}]`);
|
|
49
|
-
setError(error);
|
|
50
|
-
setModule(undefined);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}, [wrap, node, nameOrAddress, nodeError, shouldWrap, account, defaultModule]);
|
|
54
|
-
return [module, error];
|
|
3
|
+
export const useNode = (nameOrAddress) => {
|
|
4
|
+
const providedNode = useProvidedNode();
|
|
5
|
+
const node = useModule(nameOrAddress);
|
|
6
|
+
if (nameOrAddress) {
|
|
7
|
+
if (providedNode && node) {
|
|
8
|
+
return node;
|
|
9
|
+
}
|
|
55
10
|
}
|
|
56
|
-
|
|
11
|
+
else {
|
|
12
|
+
return providedNode;
|
|
13
|
+
}
|
|
14
|
+
return [undefined, undefined];
|
|
57
15
|
};
|
|
58
|
-
export const useNode = createUseModuleHook((module) => NodeWrapper.tryWrap(module), useProvidedNode, useProvidedNode);
|
|
59
16
|
//# sourceMappingURL=useNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAsB,EAA+C,EAAE;IAC7F,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,IAAI,GAAG,SAAS,CAAa,aAAa,CAAC,CAAA;IAEjD,IAAI,aAAa,EAAE;QACjB,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAA;SACZ;KACF;SAAM;QACL,OAAO,YAAY,CAAA;KACpB;IACD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ModuleWrapper } from '@xyo-network/module';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { useModule } from './useModule';
|
|
4
|
+
export const WrappedModuleHookFactory = (wrapperObject) => {
|
|
5
|
+
return (nameOrAddress, account) => {
|
|
6
|
+
const [module, moduleError] = useModule(nameOrAddress);
|
|
7
|
+
const [wrapper, setWrapper] = useState();
|
|
8
|
+
const [error, setError] = useState();
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (module) {
|
|
11
|
+
try {
|
|
12
|
+
const wrapper = wrapperObject.wrap(module, account);
|
|
13
|
+
setWrapper(wrapper);
|
|
14
|
+
}
|
|
15
|
+
catch (ex) {
|
|
16
|
+
setWrapper(undefined);
|
|
17
|
+
setError(ex);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
setWrapper(undefined);
|
|
22
|
+
setError(moduleError);
|
|
23
|
+
}
|
|
24
|
+
}, [module, account, moduleError]);
|
|
25
|
+
return [wrapper, error];
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper);
|
|
29
|
+
//# sourceMappingURL=useWrappedModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAMvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAuD,aAA4C,EAAE,EAAE;IAC7I,OAAO,CAAC,aAAsB,EAAE,OAAyB,EAAmD,EAAE;QAC5G,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,CAA2B,aAAa,CAAC,CAAA;QAEhF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAA;QACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;QAC3C,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,MAAM,EAAE;gBACV,IAAI;oBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAmB,CAAA;oBACrE,UAAU,CAAC,OAAO,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;iBAAM;gBACL,UAAU,CAAC,SAAS,CAAC,CAAA;gBACrB,QAAQ,CAAC,WAAW,CAAC,CAAA;aACtB;QACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QAElC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,59 +1,23 @@
|
|
|
1
|
-
import { Module
|
|
2
|
-
export declare const useModule: {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
schema: string;
|
|
24
|
-
}>> | undefined, Error | undefined];
|
|
25
|
-
(wrap: true | import("@xyo-network/account").Account): [ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
26
|
-
name?: string | undefined;
|
|
27
|
-
security?: {
|
|
28
|
-
allowAnonymous?: boolean | undefined;
|
|
29
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
30
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
31
|
-
} | undefined;
|
|
32
|
-
storeQueries?: boolean | undefined;
|
|
33
|
-
} & {
|
|
34
|
-
schema: string;
|
|
35
|
-
}>> | undefined, Error | undefined];
|
|
36
|
-
(address: string): [Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
37
|
-
name?: string | undefined;
|
|
38
|
-
security?: {
|
|
39
|
-
allowAnonymous?: boolean | undefined;
|
|
40
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
41
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
42
|
-
} | undefined;
|
|
43
|
-
storeQueries?: boolean | undefined;
|
|
44
|
-
} & {
|
|
45
|
-
schema: string;
|
|
46
|
-
}> | undefined, Error | undefined];
|
|
47
|
-
(address: string, wrap: true | import("@xyo-network/account").Account): [ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
48
|
-
name?: string | undefined;
|
|
49
|
-
security?: {
|
|
50
|
-
allowAnonymous?: boolean | undefined;
|
|
51
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
52
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
53
|
-
} | undefined;
|
|
54
|
-
storeQueries?: boolean | undefined;
|
|
55
|
-
} & {
|
|
56
|
-
schema: string;
|
|
57
|
-
}>> | undefined, Error | undefined];
|
|
58
|
-
};
|
|
1
|
+
import { Module } from '@xyo-network/module-model';
|
|
2
|
+
export declare const useModule: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
3
|
+
name?: string | undefined;
|
|
4
|
+
security?: {
|
|
5
|
+
allowAnonymous?: boolean | undefined;
|
|
6
|
+
allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
7
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
8
|
+
} | undefined;
|
|
9
|
+
storeQueries?: boolean | undefined;
|
|
10
|
+
} & {
|
|
11
|
+
schema: string;
|
|
12
|
+
}> = Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
13
|
+
name?: string | undefined;
|
|
14
|
+
security?: {
|
|
15
|
+
allowAnonymous?: boolean | undefined;
|
|
16
|
+
allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
17
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
18
|
+
} | undefined;
|
|
19
|
+
storeQueries?: boolean | undefined;
|
|
20
|
+
} & {
|
|
21
|
+
schema: string;
|
|
22
|
+
}>>(nameOrAddress?: string) => [TModule | undefined, Error | undefined];
|
|
59
23
|
//# sourceMappingURL=useModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;oBAAqD,MAAM,6CA0ChF,CAAA"}
|
|
@@ -1,60 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { NodeModule, NodeWrapper } from '@xyo-network/node';
|
|
4
|
-
export type WrapFunc<TModule extends Module = Module, TWrapper extends ModuleWrapper = ModuleWrapper> = (module?: TModule, account?: Account) => TWrapper | undefined;
|
|
5
|
-
export type NodeFunc = () => [NodeModule | undefined, Error | undefined];
|
|
6
|
-
export declare const createUseModuleHook: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
7
|
-
name?: string | undefined;
|
|
8
|
-
security?: {
|
|
9
|
-
allowAnonymous?: boolean | undefined;
|
|
10
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
11
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
12
|
-
} | undefined;
|
|
13
|
-
storeQueries?: boolean | undefined;
|
|
14
|
-
} & {
|
|
15
|
-
schema: string;
|
|
16
|
-
}> = Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
17
|
-
name?: string | undefined;
|
|
18
|
-
security?: {
|
|
19
|
-
allowAnonymous?: boolean | undefined;
|
|
20
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
21
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
22
|
-
} | undefined;
|
|
23
|
-
storeQueries?: boolean | undefined;
|
|
24
|
-
} & {
|
|
25
|
-
schema: string;
|
|
26
|
-
}>, TWrapper extends ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
27
|
-
name?: string | undefined;
|
|
28
|
-
security?: {
|
|
29
|
-
allowAnonymous?: boolean | undefined;
|
|
30
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
31
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
32
|
-
} | undefined;
|
|
33
|
-
storeQueries?: boolean | undefined;
|
|
34
|
-
} & {
|
|
35
|
-
schema: string;
|
|
36
|
-
}>> = ModuleWrapper<Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
37
|
-
name?: string | undefined;
|
|
38
|
-
security?: {
|
|
39
|
-
allowAnonymous?: boolean | undefined;
|
|
40
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
41
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
42
|
-
} | undefined;
|
|
43
|
-
storeQueries?: boolean | undefined;
|
|
44
|
-
} & {
|
|
45
|
-
schema: string;
|
|
46
|
-
}>>, TWrapFunc extends WrapFunc<TModule, TWrapper> = WrapFunc<TModule, TWrapper>>(wrapFunc: TWrapFunc, nodeFunc: NodeFunc, defaultModuleFunc?: () => [TModule | undefined, Error | undefined]) => {
|
|
47
|
-
(name?: string): [TModule | undefined, Error | undefined];
|
|
48
|
-
(name: string | undefined, wrap: true | Account): [TWrapper | undefined, Error | undefined];
|
|
49
|
-
(wrap: true | Account): [TWrapper | undefined, Error | undefined];
|
|
50
|
-
(address: string): [TModule | undefined, Error | undefined];
|
|
51
|
-
(address: string, wrap: true | Account): [TWrapper | undefined, Error | undefined];
|
|
52
|
-
};
|
|
53
|
-
export declare const useNode: {
|
|
54
|
-
(name?: string): [NodeModule | undefined, Error | undefined];
|
|
55
|
-
(name: string | undefined, wrap: true | Account): [NodeWrapper | undefined, Error | undefined];
|
|
56
|
-
(wrap: true | Account): [NodeWrapper | undefined, Error | undefined];
|
|
57
|
-
(address: string): [NodeModule | undefined, Error | undefined];
|
|
58
|
-
(address: string, wrap: true | Account): [NodeWrapper | undefined, Error | undefined];
|
|
59
|
-
};
|
|
1
|
+
import { NodeModule } from '@xyo-network/node';
|
|
2
|
+
export declare const useNode: (nameOrAddress?: string) => [NodeModule | undefined, Error | undefined];
|
|
60
3
|
//# sourceMappingURL=useNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAK9C,eAAO,MAAM,OAAO,mBAAoB,MAAM,KAAG,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAY1F,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model';
|
|
2
|
+
import { ModuleWrapper } from '@xyo-network/module';
|
|
3
|
+
export interface WrapperStatic<TModuleWrapper extends ModuleWrapper = ModuleWrapper> {
|
|
4
|
+
wrap: (module?: TModuleWrapper['module'], account?: AccountInstance) => TModuleWrapper;
|
|
5
|
+
}
|
|
6
|
+
export declare const WrappedModuleHookFactory: <TModuleWrapper extends ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
7
|
+
name?: string | undefined;
|
|
8
|
+
security?: {
|
|
9
|
+
allowAnonymous?: boolean | undefined;
|
|
10
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
11
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
12
|
+
} | undefined;
|
|
13
|
+
storeQueries?: boolean | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
schema: string;
|
|
16
|
+
}>> = ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
17
|
+
name?: string | undefined;
|
|
18
|
+
security?: {
|
|
19
|
+
allowAnonymous?: boolean | undefined;
|
|
20
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
21
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
22
|
+
} | undefined;
|
|
23
|
+
storeQueries?: boolean | undefined;
|
|
24
|
+
} & {
|
|
25
|
+
schema: string;
|
|
26
|
+
}>>>(wrapperObject: WrapperStatic<TModuleWrapper>) => (nameOrAddress?: string, account?: AccountInstance) => [TModuleWrapper | undefined, Error | undefined];
|
|
27
|
+
export declare const useWrappedModule: (nameOrAddress?: string, account?: AccountInstance) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
28
|
+
name?: string | undefined;
|
|
29
|
+
security?: {
|
|
30
|
+
allowAnonymous?: boolean | undefined;
|
|
31
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
32
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
33
|
+
} | undefined;
|
|
34
|
+
storeQueries?: boolean | undefined;
|
|
35
|
+
} & {
|
|
36
|
+
schema: string;
|
|
37
|
+
}>> | undefined, Error | undefined];
|
|
38
|
+
//# sourceMappingURL=useWrappedModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWrappedModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAKnD,MAAM,WAAW,aAAa,CAAC,cAAc,SAAS,aAAa,GAAG,aAAa;IACjF,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,cAAc,CAAA;CACvF;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;uEACX,MAAM,YAAY,eAAe,oDAsB1D,CAAA;AAED,eAAO,MAAM,gBAAgB,mBAxBH,MAAM,YAAY,eAAe;;;;;;;;;;mCAwBY,CAAA"}
|
package/package.json
CHANGED
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"@xyo-network/module-model": "^2.51.2",
|
|
22
22
|
"@xyo-network/node": "^2.51.2",
|
|
23
23
|
"@xyo-network/payload-model": "^2.51.2",
|
|
24
|
-
"@xyo-network/react-shared": "^2.45.0-rc.
|
|
24
|
+
"@xyo-network/react-shared": "^2.45.0-rc.17",
|
|
25
25
|
"@xyo-network/witness": "^2.51.2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@storybook/react": "^6.5.16",
|
|
29
|
-
"@xylabs/ts-scripts-yarn3": "^2.16.
|
|
30
|
-
"@xylabs/tsconfig-react": "^2.16.
|
|
29
|
+
"@xylabs/ts-scripts-yarn3": "^2.16.1",
|
|
30
|
+
"@xylabs/tsconfig-react": "^2.16.1",
|
|
31
31
|
"require-from-string": "^2.0.2",
|
|
32
32
|
"typescript": "^4.9.5"
|
|
33
33
|
},
|
|
@@ -83,6 +83,6 @@
|
|
|
83
83
|
},
|
|
84
84
|
"sideEffects": false,
|
|
85
85
|
"types": "dist/types/index.d.ts",
|
|
86
|
-
"version": "2.45.0-rc.
|
|
86
|
+
"version": "2.45.0-rc.17",
|
|
87
87
|
"stableVersion": "2.44.1"
|
|
88
88
|
}
|
package/src/hooks/index.ts
CHANGED
package/src/hooks/useModule.tsx
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
2
|
+
import { Module } from '@xyo-network/module-model'
|
|
3
|
+
import { NodeWrapper } from '@xyo-network/node'
|
|
4
|
+
import { useState } from 'react'
|
|
2
5
|
|
|
3
|
-
import {
|
|
6
|
+
import { useProvidedNode } from './useProvidedNode'
|
|
4
7
|
|
|
5
|
-
export const useModule =
|
|
8
|
+
export const useModule = <TModule extends Module = Module>(nameOrAddress?: string): [TModule | undefined, Error | undefined] => {
|
|
9
|
+
const [node, nodeError] = useProvidedNode()
|
|
10
|
+
const [module, setModule] = useState<TModule>()
|
|
11
|
+
const [error, setError] = useState<Error>()
|
|
12
|
+
useAsyncEffect(
|
|
13
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14
|
+
async (mounted) => {
|
|
15
|
+
try {
|
|
16
|
+
if (nodeError) {
|
|
17
|
+
console.log(`Setting NodeError [${nodeError.message}]`)
|
|
18
|
+
setError(nodeError)
|
|
19
|
+
setModule(undefined)
|
|
20
|
+
} else {
|
|
21
|
+
const wrappedNode = NodeWrapper.tryWrap(node)
|
|
22
|
+
if (wrappedNode) {
|
|
23
|
+
const module: TModule | undefined = nameOrAddress
|
|
24
|
+
? await wrappedNode?.resolve<TModule>(nameOrAddress)
|
|
25
|
+
: (await wrappedNode.resolve<TModule>()).pop()
|
|
26
|
+
if (mounted()) {
|
|
27
|
+
console.log(`Setting Module [${module?.address}]`)
|
|
28
|
+
setModule(module)
|
|
29
|
+
setError(undefined)
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
console.log('Setting All to undefined')
|
|
33
|
+
setError(undefined)
|
|
34
|
+
setModule(undefined)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
} catch (ex) {
|
|
38
|
+
if (mounted()) {
|
|
39
|
+
const error = ex as Error
|
|
40
|
+
console.log(`Setting Error [${error.message}]`)
|
|
41
|
+
setError(error)
|
|
42
|
+
setModule(undefined)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
[nameOrAddress, node, nodeError],
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
return [module, error]
|
|
50
|
+
}
|
package/src/hooks/useNode.tsx
CHANGED
|
@@ -1,86 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
3
|
-
import { Account } from '@xyo-network/account'
|
|
4
|
-
import { Module, ModuleWrapper } from '@xyo-network/module'
|
|
5
|
-
import { NodeModule, NodeWrapper } from '@xyo-network/node'
|
|
6
|
-
import { useState } from 'react'
|
|
1
|
+
import { NodeModule } from '@xyo-network/node'
|
|
7
2
|
|
|
3
|
+
import { useModule } from './useModule'
|
|
8
4
|
import { useProvidedNode } from './useProvidedNode'
|
|
9
5
|
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
) => TWrapper | undefined
|
|
6
|
+
export const useNode = (nameOrAddress?: string): [NodeModule | undefined, Error | undefined] => {
|
|
7
|
+
const providedNode = useProvidedNode()
|
|
8
|
+
const node = useModule<NodeModule>(nameOrAddress)
|
|
14
9
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
>(
|
|
22
|
-
wrapFunc: TWrapFunc,
|
|
23
|
-
nodeFunc: NodeFunc,
|
|
24
|
-
defaultModuleFunc: () => [TModule | undefined, Error | undefined] = () => [undefined, undefined],
|
|
25
|
-
) => {
|
|
26
|
-
function use(name?: string): [TModule | undefined, Error | undefined]
|
|
27
|
-
function use(name: string | undefined, wrap: true | Account): [TWrapper | undefined, Error | undefined]
|
|
28
|
-
function use(wrap: true | Account): [TWrapper | undefined, Error | undefined]
|
|
29
|
-
function use(address: string): [TModule | undefined, Error | undefined]
|
|
30
|
-
function use(address: string, wrap: true | Account): [TWrapper | undefined, Error | undefined]
|
|
31
|
-
function use(
|
|
32
|
-
nameOrAddressOrWrapOrAccount?: string | boolean | Account,
|
|
33
|
-
wrap: boolean | Account = false,
|
|
34
|
-
): [TWrapper | TModule | undefined, Error | undefined] {
|
|
35
|
-
const [node, nodeError] = nodeFunc()
|
|
36
|
-
const [defaultModule] = defaultModuleFunc()
|
|
37
|
-
const shouldWrap = typeof nameOrAddressOrWrapOrAccount === 'boolean' ? nameOrAddressOrWrapOrAccount : wrap
|
|
38
|
-
const account = typeof nameOrAddressOrWrapOrAccount === 'object' ? nameOrAddressOrWrapOrAccount : typeof wrap === 'boolean' ? undefined : wrap
|
|
39
|
-
const nameOrAddress = typeof nameOrAddressOrWrapOrAccount === 'string' ? nameOrAddressOrWrapOrAccount : undefined
|
|
40
|
-
const [module, setModule] = useState<TModule | TWrapper>()
|
|
41
|
-
const [error, setError] = useState<Error>()
|
|
42
|
-
useAsyncEffect(
|
|
43
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
|
-
async (mounted) => {
|
|
45
|
-
try {
|
|
46
|
-
if (nodeError) {
|
|
47
|
-
console.log(`Setting NodeError [${nodeError.message}]`)
|
|
48
|
-
setError(nodeError)
|
|
49
|
-
setModule(undefined)
|
|
50
|
-
} else {
|
|
51
|
-
const wrappedNode = NodeWrapper.tryWrap(node)
|
|
52
|
-
if (wrappedNode) {
|
|
53
|
-
const module: TModule | undefined = nameOrAddress
|
|
54
|
-
? await wrappedNode?.resolve<TModule>(nameOrAddress)
|
|
55
|
-
: (await wrappedNode.resolve<TModule>()).pop()
|
|
56
|
-
const moduleWithDefault = nameOrAddress ? module : module ?? defaultModule
|
|
57
|
-
const finalModule = shouldWrap ? wrapFunc(moduleWithDefault, account) : moduleWithDefault
|
|
58
|
-
if (mounted()) {
|
|
59
|
-
console.log(`Setting Module [${finalModule?.address}]`)
|
|
60
|
-
setModule(finalModule)
|
|
61
|
-
setError(undefined)
|
|
62
|
-
}
|
|
63
|
-
} else {
|
|
64
|
-
console.log('Setting All to undefined')
|
|
65
|
-
setError(undefined)
|
|
66
|
-
setModule(undefined)
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
} catch (ex) {
|
|
70
|
-
if (mounted()) {
|
|
71
|
-
const error = ex as Error
|
|
72
|
-
console.log(`Setting Error [${error.message}]`)
|
|
73
|
-
setError(error)
|
|
74
|
-
setModule(undefined)
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
[wrap, node, nameOrAddress, nodeError, shouldWrap, account, defaultModule],
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
return [module, error]
|
|
10
|
+
if (nameOrAddress) {
|
|
11
|
+
if (providedNode && node) {
|
|
12
|
+
return node
|
|
13
|
+
}
|
|
14
|
+
} else {
|
|
15
|
+
return providedNode
|
|
82
16
|
}
|
|
83
|
-
return
|
|
17
|
+
return [undefined, undefined]
|
|
84
18
|
}
|
|
85
|
-
|
|
86
|
-
export const useNode = createUseModuleHook<NodeModule, NodeWrapper>((module) => NodeWrapper.tryWrap(module), useProvidedNode, useProvidedNode)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
2
|
+
import { AccountInstance } from '@xyo-network/account-model'
|
|
3
|
+
import { ModuleWrapper } from '@xyo-network/module'
|
|
4
|
+
import { useEffect, useState } from 'react'
|
|
5
|
+
|
|
6
|
+
import { useModule } from './useModule'
|
|
7
|
+
|
|
8
|
+
export interface WrapperStatic<TModuleWrapper extends ModuleWrapper = ModuleWrapper> {
|
|
9
|
+
wrap: (module?: TModuleWrapper['module'], account?: AccountInstance) => TModuleWrapper
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper = ModuleWrapper>(wrapperObject: WrapperStatic<TModuleWrapper>) => {
|
|
13
|
+
return (nameOrAddress?: string, account?: AccountInstance): [TModuleWrapper | undefined, Error | undefined] => {
|
|
14
|
+
const [module, moduleError] = useModule<TModuleWrapper['module']>(nameOrAddress)
|
|
15
|
+
|
|
16
|
+
const [wrapper, setWrapper] = useState<TModuleWrapper>()
|
|
17
|
+
const [error, setError] = useState<Error>()
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (module) {
|
|
20
|
+
try {
|
|
21
|
+
const wrapper = wrapperObject.wrap(module, account) as TModuleWrapper
|
|
22
|
+
setWrapper(wrapper)
|
|
23
|
+
} catch (ex) {
|
|
24
|
+
setWrapper(undefined)
|
|
25
|
+
setError(ex as Error)
|
|
26
|
+
}
|
|
27
|
+
} else {
|
|
28
|
+
setWrapper(undefined)
|
|
29
|
+
setError(moduleError)
|
|
30
|
+
}
|
|
31
|
+
}, [module, account, moduleError])
|
|
32
|
+
|
|
33
|
+
return [wrapper, error]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper)
|