@xyo-network/react-node 2.77.0 → 2.77.2
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/browser/hooks/useModuleFromNode.d.cts +0 -1
- package/dist/browser/hooks/useModuleFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useModuleFromNode.d.mts +0 -1
- package/dist/browser/hooks/useModuleFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useModuleFromNode.d.ts +0 -1
- package/dist/browser/hooks/useModuleFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useModulesFromNode.d.cts +0 -1
- package/dist/browser/hooks/useModulesFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useModulesFromNode.d.mts +0 -1
- package/dist/browser/hooks/useModulesFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useModulesFromNode.d.ts +0 -1
- package/dist/browser/hooks/useModulesFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.cts +0 -1
- package/dist/browser/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.mts +0 -1
- package/dist/browser/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.ts +0 -1
- package/dist/browser/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.cts +0 -1
- package/dist/browser/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.mts +0 -1
- package/dist/browser/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.ts +0 -1
- package/dist/browser/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/browser/index.cjs +1 -464
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -440
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/hooks/useModuleFromNode.d.cts +0 -1
- package/dist/neutral/hooks/useModuleFromNode.d.cts.map +1 -1
- package/dist/neutral/hooks/useModuleFromNode.d.mts +0 -1
- package/dist/neutral/hooks/useModuleFromNode.d.mts.map +1 -1
- package/dist/neutral/hooks/useModuleFromNode.d.ts +0 -1
- package/dist/neutral/hooks/useModuleFromNode.d.ts.map +1 -1
- package/dist/neutral/hooks/useModulesFromNode.d.cts +0 -1
- package/dist/neutral/hooks/useModulesFromNode.d.cts.map +1 -1
- package/dist/neutral/hooks/useModulesFromNode.d.mts +0 -1
- package/dist/neutral/hooks/useModulesFromNode.d.mts.map +1 -1
- package/dist/neutral/hooks/useModulesFromNode.d.ts +0 -1
- package/dist/neutral/hooks/useModulesFromNode.d.ts.map +1 -1
- package/dist/neutral/hooks/useNodeFromNode.d.cts +0 -1
- package/dist/neutral/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/neutral/hooks/useNodeFromNode.d.mts +0 -1
- package/dist/neutral/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/neutral/hooks/useNodeFromNode.d.ts +0 -1
- package/dist/neutral/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/neutral/hooks/useNodesFromNode.d.cts +0 -1
- package/dist/neutral/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/neutral/hooks/useNodesFromNode.d.mts +0 -1
- package/dist/neutral/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/neutral/hooks/useNodesFromNode.d.ts +0 -1
- package/dist/neutral/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/neutral/index.cjs +1 -464
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +1 -440
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/hooks/useModuleFromNode.d.cts +0 -1
- package/dist/node/hooks/useModuleFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useModuleFromNode.d.mts +0 -1
- package/dist/node/hooks/useModuleFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useModuleFromNode.d.ts +0 -1
- package/dist/node/hooks/useModuleFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useModulesFromNode.d.cts +0 -1
- package/dist/node/hooks/useModulesFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useModulesFromNode.d.mts +0 -1
- package/dist/node/hooks/useModulesFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useModulesFromNode.d.ts +0 -1
- package/dist/node/hooks/useModulesFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.cts +0 -1
- package/dist/node/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.mts +0 -1
- package/dist/node/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.ts +0 -1
- package/dist/node/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.cts +0 -1
- package/dist/node/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.mts +0 -1
- package/dist/node/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.ts +0 -1
- package/dist/node/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/node/index.cjs +1 -495
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -446
- package/dist/node/index.js.map +1 -1
- package/package.json +7 -7
package/dist/browser/index.js
CHANGED
|
@@ -1,441 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { FlexCol } from "@xylabs/react-flexbox";
|
|
3
|
-
|
|
4
|
-
// src/hooks/ModuleFromNodeConfig.ts
|
|
5
|
-
var useModuleFromNodeConfigLogger = (config) => {
|
|
6
|
-
return config?.logger;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
// src/hooks/provided/useProvidedNode.tsx
|
|
10
|
-
import { NodeContext } from "@xyo-network/react-node-context";
|
|
11
|
-
import { useContext } from "react";
|
|
12
|
-
var useProvidedNode = () => {
|
|
13
|
-
const { node } = useContext(NodeContext);
|
|
14
|
-
return [node];
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
// src/hooks/provided/useWeakProvidedNode.tsx
|
|
18
|
-
import { NodeContext as NodeContext2 } from "@xyo-network/react-node-context";
|
|
19
|
-
import { useContext as useContext2, useMemo } from "react";
|
|
20
|
-
var useWeakProvidedNode = () => {
|
|
21
|
-
const { node } = useContext2(NodeContext2);
|
|
22
|
-
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [node]);
|
|
23
|
-
return [weakNode];
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
// src/hooks/useModuleFilterOptions.ts
|
|
27
|
-
var useModuleFilterOptions = (config) => {
|
|
28
|
-
const { direction, identity, maxDepth } = config ?? {};
|
|
29
|
-
return { direction, identity, maxDepth };
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// src/hooks/useModuleFromNode.ts
|
|
33
|
-
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
34
|
-
import { isModuleInstance } from "@xyo-network/module-model";
|
|
35
|
-
import { useState } from "react";
|
|
36
|
-
|
|
37
|
-
// src/hooks/useNode.ts
|
|
38
|
-
import { usePromise } from "@xylabs/react-promise";
|
|
39
|
-
import { asNodeInstance } from "@xyo-network/node-model";
|
|
40
|
-
|
|
41
|
-
// src/hooks/useNodeConfigNodeField.ts
|
|
42
|
-
import { useMemo as useMemo2 } from "react";
|
|
43
|
-
var useNodeConfigNodeField = (config) => {
|
|
44
|
-
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
|
|
45
|
-
const nodeInstance = useMemo2(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
|
|
46
|
-
return [nodeAddress, nodeInstance];
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// src/hooks/useNode.ts
|
|
50
|
-
var useNode = (config) => {
|
|
51
|
-
const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config);
|
|
52
|
-
const [providedNode] = useProvidedNode();
|
|
53
|
-
const [nodeAddressNode, error] = usePromise(async () => {
|
|
54
|
-
if (providedNode && nodeAddress) {
|
|
55
|
-
return asNodeInstance(await providedNode.resolve(nodeAddress), "Module is not a node");
|
|
56
|
-
}
|
|
57
|
-
}, [providedNode, nodeAddress]);
|
|
58
|
-
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
// src/hooks/useModuleFromNode.ts
|
|
62
|
-
var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
63
|
-
const [node, nodeError] = useNode(config);
|
|
64
|
-
const logger = useModuleFromNodeConfigLogger(config);
|
|
65
|
-
const filterOptions = useModuleFilterOptions(config);
|
|
66
|
-
const [result, setResult] = useState();
|
|
67
|
-
const [, error] = usePromise2(async () => {
|
|
68
|
-
logger?.debug("useModuleFromNode: resolving");
|
|
69
|
-
const identity = config?.identity ?? isModuleInstance;
|
|
70
|
-
if (node && nameOrAddressOrInstance) {
|
|
71
|
-
node.on("moduleAttached", ({ module: mod }) => {
|
|
72
|
-
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
73
|
-
if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {
|
|
74
|
-
setResult(identity(mod) ? mod : void 0);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
node.on("moduleDetached", ({ module: mod }) => {
|
|
78
|
-
logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`);
|
|
79
|
-
if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {
|
|
80
|
-
setResult(void 0);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
if (identity(nameOrAddressOrInstance)) {
|
|
84
|
-
setResult(nameOrAddressOrInstance);
|
|
85
|
-
} else {
|
|
86
|
-
const result2 = await node.resolve(nameOrAddressOrInstance, filterOptions);
|
|
87
|
-
logger?.debug(`Result: ${result2?.address}`);
|
|
88
|
-
setResult(identity(result2) ? result2 : void 0);
|
|
89
|
-
}
|
|
90
|
-
return result;
|
|
91
|
-
}
|
|
92
|
-
logger?.debug("Result: No Node");
|
|
93
|
-
return;
|
|
94
|
-
}, [node, nameOrAddressOrInstance]);
|
|
95
|
-
return [result, nodeError ?? error];
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
// src/hooks/useModulesFromNode.ts
|
|
99
|
-
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
100
|
-
import { useState as useState2 } from "react";
|
|
101
|
-
var useModulesFromNode = (filter, config) => {
|
|
102
|
-
const [node, nodeError] = useNode(config);
|
|
103
|
-
const logger = config?.logger;
|
|
104
|
-
const filterOptions = useModuleFilterOptions();
|
|
105
|
-
const [result, setResult] = useState2();
|
|
106
|
-
const [, error] = usePromise3(async () => {
|
|
107
|
-
logger?.debug("useModuleFromNode: resolving");
|
|
108
|
-
if (node) {
|
|
109
|
-
node.on("moduleAttached", async ({ module: mod }) => {
|
|
110
|
-
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
111
|
-
const moduleInstances2 = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
|
|
112
|
-
setResult(moduleInstances2);
|
|
113
|
-
});
|
|
114
|
-
node.on("moduleDetached", async ({ module: mod }) => {
|
|
115
|
-
logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`);
|
|
116
|
-
const moduleInstances2 = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
|
|
117
|
-
setResult(moduleInstances2);
|
|
118
|
-
});
|
|
119
|
-
const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
|
|
120
|
-
setResult(moduleInstances);
|
|
121
|
-
return moduleInstances;
|
|
122
|
-
}
|
|
123
|
-
console.log("Result: No Node");
|
|
124
|
-
return;
|
|
125
|
-
}, [node, filter]);
|
|
126
|
-
return [result, nodeError ?? error];
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
// src/hooks/useNodeDescription.ts
|
|
130
|
-
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
131
|
-
import { ModuleDescriptionSchema } from "@xyo-network/module-model";
|
|
132
|
-
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
133
|
-
var useNodeDescription = (config) => {
|
|
134
|
-
const [activeNode, nodeError] = useNode(config);
|
|
135
|
-
const [description, error] = usePromise4(async () => {
|
|
136
|
-
const state = await activeNode?.state();
|
|
137
|
-
return state?.find(isPayloadOfSchemaType(ModuleDescriptionSchema));
|
|
138
|
-
}, [activeNode]);
|
|
139
|
-
return [description, nodeError ?? error];
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// src/hooks/useNodeFromNode.tsx
|
|
143
|
-
import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
|
|
144
|
-
var useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
145
|
-
const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
146
|
-
const instance = asNodeInstance2(mod);
|
|
147
|
-
if (mod && !instance) {
|
|
148
|
-
const error2 = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
|
|
149
|
-
console.error(error2.message);
|
|
150
|
-
return [void 0, error2];
|
|
151
|
-
}
|
|
152
|
-
return [instance, error];
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
// src/hooks/useNodesFromNode.tsx
|
|
156
|
-
import { isNodeInstance } from "@xyo-network/node-model";
|
|
157
|
-
var useNodesFromNode = (filter, config) => {
|
|
158
|
-
const [modules, error] = useModulesFromNode(filter, config);
|
|
159
|
-
if (error) {
|
|
160
|
-
return [null, error];
|
|
161
|
-
}
|
|
162
|
-
return modules ? [
|
|
163
|
-
// eslint-disable-next-line unicorn/no-array-reduce
|
|
164
|
-
modules.reduce((prev, mod) => {
|
|
165
|
-
if (isNodeInstance(mod)) {
|
|
166
|
-
prev.push(mod);
|
|
167
|
-
}
|
|
168
|
-
return prev;
|
|
169
|
-
}, []),
|
|
170
|
-
void 0
|
|
171
|
-
] : [modules, error];
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
// src/hooks/useWeakModuleFilterOptions.ts
|
|
175
|
-
var useWeakModuleFilterOptions = (config) => {
|
|
176
|
-
const { direction, identity, maxDepth } = config ?? {};
|
|
177
|
-
return { direction, identity, maxDepth };
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
// src/hooks/useWeakModuleFromNode.ts
|
|
181
|
-
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
182
|
-
import { isModuleInstance as isModuleInstance2 } from "@xyo-network/module-model";
|
|
183
|
-
import { useState as useState3 } from "react";
|
|
184
|
-
|
|
185
|
-
// src/hooks/useWeakNode.ts
|
|
186
|
-
import { usePromise as usePromise5 } from "@xylabs/react-promise";
|
|
187
|
-
import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
|
|
188
|
-
|
|
189
|
-
// src/hooks/useWeakNodeConfigNodeField.ts
|
|
190
|
-
import { useMemo as useMemo3 } from "react";
|
|
191
|
-
var useWeakNodeConfigNodeField = (config) => {
|
|
192
|
-
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
|
|
193
|
-
const nodeInstance = useMemo3(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
|
|
194
|
-
return [nodeAddress, nodeInstance];
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
// src/hooks/useWeakNode.ts
|
|
198
|
-
var useWeakNode = (config) => {
|
|
199
|
-
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
|
|
200
|
-
const [providedNode] = useWeakProvidedNode();
|
|
201
|
-
const [nodeAddressNode, error] = usePromise5(async () => {
|
|
202
|
-
const providedNodeInstance = providedNode?.deref();
|
|
203
|
-
if (providedNodeInstance && nodeAddress) {
|
|
204
|
-
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), "Module is not a node"));
|
|
205
|
-
}
|
|
206
|
-
}, [providedNode, nodeAddress]);
|
|
207
|
-
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
// src/hooks/WeakModuleFromNodeConfig.ts
|
|
211
|
-
var useWeakModuleFromNodeConfigLogger = (config) => {
|
|
212
|
-
return config?.logger;
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
// src/hooks/useWeakModuleFromNode.ts
|
|
216
|
-
var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
217
|
-
const [node, nodeError] = useWeakNode(config);
|
|
218
|
-
const logger = useWeakModuleFromNodeConfigLogger(config);
|
|
219
|
-
const filterOptions = useWeakModuleFilterOptions(config);
|
|
220
|
-
const [result, setResult] = useState3();
|
|
221
|
-
const [, error] = usePromise6(async () => {
|
|
222
|
-
logger?.debug("useModuleFromNode: resolving");
|
|
223
|
-
const identity = config?.identity ?? isModuleInstance2;
|
|
224
|
-
const nodeInstance = node?.deref();
|
|
225
|
-
if (nodeInstance && nameOrAddressOrInstance) {
|
|
226
|
-
nodeInstance.on("moduleAttached", ({ module: mod }) => {
|
|
227
|
-
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
228
|
-
if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {
|
|
229
|
-
setResult(identity(mod) ? new WeakRef(mod) : void 0);
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
nodeInstance.on("moduleDetached", ({ module: mod }) => {
|
|
233
|
-
logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`);
|
|
234
|
-
if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {
|
|
235
|
-
setResult(void 0);
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
if (identity(nameOrAddressOrInstance)) {
|
|
239
|
-
setResult(new WeakRef(nameOrAddressOrInstance));
|
|
240
|
-
} else {
|
|
241
|
-
const result2 = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions);
|
|
242
|
-
logger?.debug(`Result: ${result2?.address}`);
|
|
243
|
-
setResult(identity(result2) ? new WeakRef(result2) : void 0);
|
|
244
|
-
}
|
|
245
|
-
return result;
|
|
246
|
-
}
|
|
247
|
-
logger?.debug("Result: No Node");
|
|
248
|
-
return;
|
|
249
|
-
}, [node, nameOrAddressOrInstance]);
|
|
250
|
-
return [result, nodeError ?? error];
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
// src/hooks/useWeakModulesFromNode.ts
|
|
254
|
-
import { usePromise as usePromise7 } from "@xylabs/react-promise";
|
|
255
|
-
import { useState as useState4 } from "react";
|
|
256
|
-
var useWeakModulesFromNode = (filter, config) => {
|
|
257
|
-
const [node, nodeError] = useNode(config);
|
|
258
|
-
const logger = config?.logger;
|
|
259
|
-
const filterOptions = useModuleFilterOptions();
|
|
260
|
-
const [result, setResult] = useState4();
|
|
261
|
-
const [, error] = usePromise7(async () => {
|
|
262
|
-
logger?.debug("useModuleFromNode: resolving");
|
|
263
|
-
const nodeInstance = node;
|
|
264
|
-
if (nodeInstance) {
|
|
265
|
-
nodeInstance.on("moduleAttached", async ({ module: mod }) => {
|
|
266
|
-
const nodeInstance2 = node;
|
|
267
|
-
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
268
|
-
const moduleInstances2 = filter ? await nodeInstance2?.resolve(filter, filterOptions) : await nodeInstance2?.resolve("*", filterOptions);
|
|
269
|
-
setResult(moduleInstances2?.map((mod2) => new WeakRef(mod2)));
|
|
270
|
-
});
|
|
271
|
-
nodeInstance.on("moduleDetached", async ({ module: mod }) => {
|
|
272
|
-
const nodeInstance2 = node;
|
|
273
|
-
logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`);
|
|
274
|
-
const moduleInstances2 = filter ? await nodeInstance2?.resolve(filter, filterOptions) : await nodeInstance2?.resolve("*", filterOptions);
|
|
275
|
-
setResult(moduleInstances2?.map((mod2) => new WeakRef(mod2)));
|
|
276
|
-
});
|
|
277
|
-
const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve("*", filterOptions);
|
|
278
|
-
setResult(moduleInstances?.map((mod) => new WeakRef(mod)));
|
|
279
|
-
return moduleInstances;
|
|
280
|
-
}
|
|
281
|
-
console.log("Result: No Node");
|
|
282
|
-
return;
|
|
283
|
-
}, [node, filter]);
|
|
284
|
-
return [result, nodeError ?? error];
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
// src/hooks/useWeakNodeDescription.ts
|
|
288
|
-
import { usePromise as usePromise8 } from "@xylabs/react-promise";
|
|
289
|
-
import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
|
|
290
|
-
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
291
|
-
var useWeakNodeDescription = (config) => {
|
|
292
|
-
const [activeNode, nodeError] = useWeakNode(config);
|
|
293
|
-
const [description, error] = usePromise8(async () => {
|
|
294
|
-
const state = await activeNode?.deref()?.state();
|
|
295
|
-
return state?.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
|
|
296
|
-
}, [activeNode]);
|
|
297
|
-
return [description, nodeError ?? error];
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
// src/hooks/useWeakNodeFromNode.tsx
|
|
301
|
-
import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
|
|
302
|
-
var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
303
|
-
return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isNodeInstance2, ...config });
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
// src/components/NodeDescriptionBox.tsx
|
|
307
|
-
import { jsx } from "react/jsx-runtime";
|
|
308
|
-
var NodeDescriptionBox = ({ node, ...props }) => {
|
|
309
|
-
const [description, error] = useWeakNodeDescription({ node });
|
|
310
|
-
return /* @__PURE__ */ jsx(FlexCol, { ...props, children: /* @__PURE__ */ jsx("code", { color: error ? "red" : void 0, children: error ? error.message : JSON.stringify(description, null, 2) }) });
|
|
311
|
-
};
|
|
312
|
-
|
|
313
|
-
// src/components/Node.tsx
|
|
314
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
315
|
-
var NodeBox = ({ variant, ...props }) => {
|
|
316
|
-
switch (variant) {
|
|
317
|
-
case "description":
|
|
318
|
-
default: {
|
|
319
|
-
return /* @__PURE__ */ jsx2(NodeDescriptionBox, { ...props });
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
// src/components/NodeDrawer.tsx
|
|
325
|
-
import { Close as CloseIcon } from "@mui/icons-material";
|
|
326
|
-
import { ClickAwayListener, Drawer, IconButton } from "@mui/material";
|
|
327
|
-
import { FlexGrowCol, FlexRow } from "@xylabs/react-flexbox";
|
|
328
|
-
import { useNodeDrawer } from "@xyo-network/react-node-provider";
|
|
329
|
-
|
|
330
|
-
// src/components/render/ModuleDescriptionBox.tsx
|
|
331
|
-
import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from "@mui/icons-material";
|
|
332
|
-
import { styled as styled2, Typography } from "@mui/material";
|
|
333
|
-
import { TreeView } from "@mui/x-tree-view";
|
|
334
|
-
import { useRef } from "react";
|
|
335
|
-
|
|
336
|
-
// src/components/render/RenderModule.tsx
|
|
337
|
-
import { styled } from "@mui/material";
|
|
338
|
-
import { TreeItem } from "@mui/x-tree-view";
|
|
339
|
-
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
340
|
-
import { useState as useState5 } from "react";
|
|
341
|
-
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
342
|
-
var RenderModule = ({ mod, idRef }) => {
|
|
343
|
-
const [childModules, setChildModules] = useState5();
|
|
344
|
-
useAsyncEffect(
|
|
345
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
346
|
-
async (mounted) => {
|
|
347
|
-
const moduleInstance2 = mod.deref();
|
|
348
|
-
const { address: address2 } = moduleInstance2 ?? {};
|
|
349
|
-
if (moduleInstance2) {
|
|
350
|
-
const children = (await moduleInstance2.resolve("*")).filter((childModule) => childModule.address !== address2);
|
|
351
|
-
if (mounted()) {
|
|
352
|
-
setChildModules(children.map((childModule) => new WeakRef(childModule)));
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
[mod]
|
|
357
|
-
);
|
|
358
|
-
const increment = () => {
|
|
359
|
-
const newId = (idRef.current.idIncrementor++).toString();
|
|
360
|
-
idRef.current.ids.push(newId);
|
|
361
|
-
return newId;
|
|
362
|
-
};
|
|
363
|
-
const moduleInstance = mod.deref();
|
|
364
|
-
const { queries, address } = moduleInstance ?? {};
|
|
365
|
-
return /* @__PURE__ */ jsxs(StyledAddressTreeItem, { nodeId: increment(), label: `address: ${address}`, children: [
|
|
366
|
-
queries?.map((query, index) => {
|
|
367
|
-
return /* @__PURE__ */ jsx3(TreeItem, { nodeId: increment(), label: `query : ${query}`, sx: { mb: index === queries.length - 1 ? 1.5 : 0.5 } }, query);
|
|
368
|
-
}),
|
|
369
|
-
childModules && childModules.length > 0 ? /* @__PURE__ */ jsx3(TreeItem, { nodeId: increment(), label: "children", sx: { mb: 0.5 }, children: childModules.map((childModuleRef) => {
|
|
370
|
-
const childModule = childModuleRef.deref();
|
|
371
|
-
return childModule ? /* @__PURE__ */ jsx3(RenderModule, { mod: childModuleRef, idRef }, childModule?.address) : null;
|
|
372
|
-
}) }) : null
|
|
373
|
-
] });
|
|
374
|
-
};
|
|
375
|
-
var StyledAddressTreeItem = styled(TreeItem, { name: "StyledAddressTreeItem" })(({ theme }) => ({
|
|
376
|
-
"& .MuiTreeItem-content": {
|
|
377
|
-
marginBottom: theme.spacing(0.25)
|
|
378
|
-
}
|
|
379
|
-
}));
|
|
380
|
-
|
|
381
|
-
// src/components/render/ModuleDescriptionBox.tsx
|
|
382
|
-
import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
383
|
-
var ModuleDescriptionBox = ({ mod }) => {
|
|
384
|
-
const idRef = useRef({ idIncrementor: 0, ids: [] });
|
|
385
|
-
return /* @__PURE__ */ jsx4(Fragment, { children: mod ? /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
386
|
-
/* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node Configuration" }),
|
|
387
|
-
/* @__PURE__ */ jsx4(
|
|
388
|
-
StyledTreeView,
|
|
389
|
-
{
|
|
390
|
-
"aria-label": "file system navigator",
|
|
391
|
-
defaultCollapseIcon: /* @__PURE__ */ jsx4(ExpandMoreIcon, {}),
|
|
392
|
-
defaultExpandIcon: /* @__PURE__ */ jsx4(ChevronRightIcon, {}),
|
|
393
|
-
sx: { flexGrow: 1 },
|
|
394
|
-
children: /* @__PURE__ */ jsx4(RenderModule, { mod, idRef })
|
|
395
|
-
}
|
|
396
|
-
)
|
|
397
|
-
] }) : mod === null ? /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node loading..." }) : /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node not found" }) });
|
|
398
|
-
};
|
|
399
|
-
var StyledTreeView = styled2(TreeView, { name: "StyledTreeView" })(() => ({
|
|
400
|
-
height: "auto",
|
|
401
|
-
maxWidth: "auto"
|
|
402
|
-
}));
|
|
403
|
-
|
|
404
|
-
// src/components/NodeDrawer.tsx
|
|
405
|
-
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
406
|
-
var NodeDrawer = ({ children, ...props }) => {
|
|
407
|
-
const { open, setOpen } = useNodeDrawer();
|
|
408
|
-
const [node] = useWeakProvidedNode();
|
|
409
|
-
return /* @__PURE__ */ jsx5(Drawer, { open: open ?? false, anchor: "right", ...props, children: /* @__PURE__ */ jsx5(ClickAwayListener, { onClickAway: () => setOpen?.(false), children: /* @__PURE__ */ jsxs3(FlexGrowCol, { role: "presentation", justifyContent: "start", p: 2, rowGap: 2, minWidth: "33vw", children: [
|
|
410
|
-
/* @__PURE__ */ jsx5(FlexRow, { alignContent: "start", justifyContent: "start", width: "100%", children: /* @__PURE__ */ jsx5(IconButton, { onClick: () => setOpen?.(false), children: /* @__PURE__ */ jsx5(CloseIcon, {}) }) }),
|
|
411
|
-
/* @__PURE__ */ jsx5(ModuleDescriptionBox, { mod: node }),
|
|
412
|
-
children
|
|
413
|
-
] }) }) });
|
|
414
|
-
};
|
|
415
|
-
|
|
416
|
-
// src/index.ts
|
|
417
|
-
export * from "@xyo-network/react-node-context";
|
|
418
|
-
export * from "@xyo-network/react-node-provider";
|
|
419
|
-
export {
|
|
420
|
-
NodeBox,
|
|
421
|
-
NodeDrawer,
|
|
422
|
-
useModuleFilterOptions,
|
|
423
|
-
useModuleFromNode,
|
|
424
|
-
useModuleFromNodeConfigLogger,
|
|
425
|
-
useModulesFromNode,
|
|
426
|
-
useNode,
|
|
427
|
-
useNodeConfigNodeField,
|
|
428
|
-
useNodeDescription,
|
|
429
|
-
useNodeFromNode,
|
|
430
|
-
useNodesFromNode,
|
|
431
|
-
useProvidedNode,
|
|
432
|
-
useWeakModuleFilterOptions,
|
|
433
|
-
useWeakModuleFromNode,
|
|
434
|
-
useWeakModuleFromNodeConfigLogger,
|
|
435
|
-
useWeakModulesFromNode,
|
|
436
|
-
useWeakNodeConfigNodeField,
|
|
437
|
-
useWeakNodeDescription,
|
|
438
|
-
useWeakNodeFromNode,
|
|
439
|
-
useWeakProvidedNode
|
|
440
|
-
};
|
|
1
|
+
import{FlexCol as Ne}from"@xylabs/react-flexbox";var W=e=>e?.logger;import{NodeContext as j}from"@xyo-network/react-node-context";import{useContext as q}from"react";var T=()=>{let{node:e}=q(j);return[e]};import{NodeContext as J}from"@xyo-network/react-node-context";import{useContext as z,useMemo as H}from"react";var g=()=>{let{node:e}=z(J);return[H(()=>e?new WeakRef(e):null,[e])]};var N=e=>{let{direction:n,identity:o,maxDepth:r}=e??{};return{direction:n,identity:o,maxDepth:r}};import{usePromise as U}from"@xylabs/react-promise";import{isModuleInstance as X}from"@xyo-network/module-model";import{useState as Y}from"react";import{usePromise as K}from"@xylabs/react-promise";import{asNodeInstance as Q}from"@xyo-network/node-model";import{useMemo as w}from"react";var R=e=>{let n=w(()=>typeof e?.node=="string"?e?.node:void 0,[e?.node]),o=w(()=>typeof e?.node=="object"?e?.node:void 0,[e?.node]);return[n,o]};var f=e=>{let[n,o]=R(e),[r]=T(),[d,t]=K(async()=>{if(r&&n)return Q(await r.resolve(n),"Module is not a node")},[r,n]);return[d??o??r??void 0,t]};var v=(e=void 0,n)=>{let[o,r]=f(n),d=W(n),t=N(n),[m,a]=Y(),[,l]=U(async()=>{d?.debug("useModuleFromNode: resolving");let u=n?.identity??X;if(o&&e){if(o.on("moduleAttached",({module:s})=>{d?.debug(`useModuleFromNode: moduleAttached [${s.config.name??s.address}]`),(s.address===e||s.config?.name===e)&&a(u(s)?s:void 0)}),o.on("moduleDetached",({module:s})=>{d?.debug(`useModuleFromNode: moduleDetached [${s.config.name??s.address}]`),(s.address===e||s.config?.name===e)&&a(void 0)}),u(e))a(e);else{let s=await o.resolve(e,t);d?.debug(`Result: ${s?.address}`),a(u(s)?s:void 0)}return m}d?.debug("Result: No Node")},[o,e]);return[m,r??l]};import{usePromise as Z}from"@xylabs/react-promise";import{useState as _}from"react";var D=(e,n)=>{let[o,r]=f(n),d=n?.logger,t=N(),[m,a]=_(),[,l]=Z(async()=>{if(d?.debug("useModuleFromNode: resolving"),o){o.on("moduleAttached",async({module:s})=>{d?.debug(`useModuleFromNode: moduleAttached [${s.config.name??s.address}]`);let i=e?await o.resolve(e,t):await o.resolve("*",t);a(i)}),o.on("moduleDetached",async({module:s})=>{d?.debug(`useModuleFromNode: moduleDetached [${s.config.name??s.address}]`);let i=e?await o.resolve(e,t):await o.resolve("*",t);a(i)});let u=e?await o.resolve(e,t):await o.resolve("*",t);return a(u),u}console.log("Result: No Node")},[o,e]);return[m,r??l]};import{usePromise as O}from"@xylabs/react-promise";import{ModuleDescriptionSchema as ee}from"@xyo-network/module-model";import{isPayloadOfSchemaType as oe}from"@xyo-network/payload-model";var xo=e=>{let[n,o]=f(e),[r,d]=O(async()=>(await n?.state())?.find(oe(ee)),[n]);return[r,o??d]};import{asNodeInstance as ne}from"@xyo-network/node-model";var Wo=(e,n)=>{let[o,r]=v(e,n),d=ne(o);if(o&&!d){let t=new Error(`Resolved module is not a NodeInstance [${o.config?.schema}:${o.config?.name}:${o.address}]`);return console.error(t.message),[void 0,t]}return[d,r]};import{isNodeInstance as re}from"@xyo-network/node-model";var Do=(e,n)=>{let[o,r]=D(e,n);return r?[null,r]:o?[o.reduce((d,t)=>(re(t)&&d.push(t),d),[]),void 0]:[o,r]};var P=e=>{let{direction:n,identity:o,maxDepth:r}=e??{};return{direction:n,identity:o,maxDepth:r}};import{usePromise as se}from"@xylabs/react-promise";import{isModuleInstance as ie}from"@xyo-network/module-model";import{useState as ue}from"react";import{usePromise as de}from"@xylabs/react-promise";import{asNodeInstance as te}from"@xyo-network/node-model";import{useMemo as b}from"react";var E=e=>{let n=b(()=>typeof e?.node=="string"?e?.node:void 0,[e?.node]),o=b(()=>typeof e?.node=="object"?e?.node:void 0,[e?.node]);return[n,o]};var I=e=>{let[n,o]=E(e),[r]=g(),[d,t]=de(async()=>{let m=r?.deref();if(m&&n)return new WeakRef(te(await m.resolve(n),"Module is not a node"))},[r,n]);return[d??o??r??void 0,t]};var B=e=>e?.logger;var S=(e=void 0,n)=>{let[o,r]=I(n),d=B(n),t=P(n),[m,a]=ue(),[,l]=se(async()=>{d?.debug("useModuleFromNode: resolving");let u=n?.identity??ie,s=o?.deref();if(s&&e){if(s.on("moduleAttached",({module:i})=>{d?.debug(`useModuleFromNode: moduleAttached [${i.config.name??i.address}]`),(i.address===e||i.config?.name===e)&&a(u(i)?new WeakRef(i):void 0)}),s.on("moduleDetached",({module:i})=>{d?.debug(`useModuleFromNode: moduleDetached [${i.config.name??i.address}]`),(i.address===e||i.config?.name===e)&&a(void 0)}),u(e))a(new WeakRef(e));else{let i=await s.resolve(e,t);d?.debug(`Result: ${i?.address}`),a(u(i)?new WeakRef(i):void 0)}return m}d?.debug("Result: No Node")},[o,e]);return[m,r??l]};import{usePromise as ae}from"@xylabs/react-promise";import{useState as le}from"react";var on=(e,n)=>{let[o,r]=f(n),d=n?.logger,t=N(),[m,a]=le(),[,l]=ae(async()=>{d?.debug("useModuleFromNode: resolving");let u=o;if(u){u.on("moduleAttached",async({module:i})=>{let c=o;d?.debug(`useModuleFromNode: moduleAttached [${i.config.name??i.address}]`);let F=e?await c?.resolve(e,t):await c?.resolve("*",t);a(F?.map(x=>new WeakRef(x)))}),u.on("moduleDetached",async({module:i})=>{let c=o;d?.debug(`useModuleFromNode: moduleDetached [${i.config.name??i.address}]`);let F=e?await c?.resolve(e,t):await c?.resolve("*",t);a(F?.map(x=>new WeakRef(x)))});let s=e?await u.resolve(e,t):await u.resolve("*",t);return a(s?.map(i=>new WeakRef(i))),s}console.log("Result: No Node")},[o,e]);return[m,r??l]};import{usePromise as me}from"@xylabs/react-promise";import{ModuleDescriptionSchema as ce}from"@xyo-network/module-model";import{isPayloadOfSchemaType as fe}from"@xyo-network/payload-model";var $=e=>{let[n,o]=I(e),[r,d]=me(async()=>(await n?.deref()?.state())?.find(fe(ce)),[n]);return[r,o??d]};import{isNodeInstance as pe}from"@xyo-network/node-model";var pn=(e,n)=>S(e,{identity:pe,...n});import{jsx as L}from"react/jsx-runtime";var A=({node:e,...n})=>{let[o,r]=$({node:e});return L(Ne,{...n,children:L("code",{color:r?"red":void 0,children:r?r.message:JSON.stringify(o,null,2)})})};import{jsx as Me}from"react/jsx-runtime";var kn=({variant:e,...n})=>{switch(e){case"description":default:return Me(A,{...n})}};import{Close as ve}from"@mui/icons-material";import{ClickAwayListener as De,Drawer as Pe,IconButton as be}from"@mui/material";import{FlexGrowCol as Ee,FlexRow as Be}from"@xylabs/react-flexbox";import{useNodeDrawer as Se}from"@xyo-network/react-node-provider";import{ChevronRight as ke,ExpandMore as ye}from"@mui/icons-material";import{styled as he,Typography as h}from"@mui/material";import{TreeView as We}from"@mui/x-tree-view";import{useRef as Te}from"react";import{styled as ge}from"@mui/material";import{TreeItem as k}from"@mui/x-tree-view";import{useAsyncEffect as Ie}from"@xylabs/react-async-effect";import{useState as Fe}from"react";import{jsx as C,jsxs as Ce}from"react/jsx-runtime";var y=({mod:e,idRef:n})=>{let[o,r]=Fe();Ie(async l=>{let u=e.deref(),{address:s}=u??{};if(u){let i=(await u.resolve("*")).filter(c=>c.address!==s);l()&&r(i.map(c=>new WeakRef(c)))}},[e]);let d=()=>{let l=(n.current.idIncrementor++).toString();return n.current.ids.push(l),l},t=e.deref(),{queries:m,address:a}=t??{};return Ce(xe,{nodeId:d(),label:`address: ${a}`,children:[m?.map((l,u)=>C(k,{nodeId:d(),label:`query : ${l}`,sx:{mb:u===m.length-1?1.5:.5}},l)),o&&o.length>0?C(k,{nodeId:d(),label:"children",sx:{mb:.5},children:o.map(l=>{let u=l.deref();return u?C(y,{mod:l,idRef:n},u?.address):null})}):null]})},xe=ge(k,{name:"StyledAddressTreeItem"})(({theme:e})=>({"& .MuiTreeItem-content":{marginBottom:e.spacing(.25)}}));import{Fragment as G,jsx as p,jsxs as Re}from"react/jsx-runtime";var V=({mod:e})=>{let n=Te({idIncrementor:0,ids:[]});return p(G,{children:e?Re(G,{children:[p(h,{variant:"h4",children:"Node Configuration"}),p(we,{"aria-label":"file system navigator",defaultCollapseIcon:p(ye,{}),defaultExpandIcon:p(ke,{}),sx:{flexGrow:1},children:p(y,{mod:e,idRef:n})})]}):e===null?p(h,{variant:"h4",children:"Node loading..."}):p(h,{variant:"h4",children:"Node not found"})})},we=he(We,{name:"StyledTreeView"})(()=>({height:"auto",maxWidth:"auto"}));import{jsx as M,jsxs as $e}from"react/jsx-runtime";var Kn=({children:e,...n})=>{let{open:o,setOpen:r}=Se(),[d]=g();return M(Pe,{open:o??!1,anchor:"right",...n,children:M(De,{onClickAway:()=>r?.(!1),children:$e(Ee,{role:"presentation",justifyContent:"start",p:2,rowGap:2,minWidth:"33vw",children:[M(Be,{alignContent:"start",justifyContent:"start",width:"100%",children:M(be,{onClick:()=>r?.(!1),children:M(ve,{})})}),M(V,{mod:d}),e]})})})};export*from"@xyo-network/react-node-context";export*from"@xyo-network/react-node-provider";export{kn as NodeBox,Kn as NodeDrawer,N as useModuleFilterOptions,v as useModuleFromNode,W as useModuleFromNodeConfigLogger,D as useModulesFromNode,f as useNode,R as useNodeConfigNodeField,xo as useNodeDescription,Wo as useNodeFromNode,Do as useNodesFromNode,T as useProvidedNode,P as useWeakModuleFilterOptions,S as useWeakModuleFromNode,B as useWeakModuleFromNodeConfigLogger,on as useWeakModulesFromNode,E as useWeakNodeConfigNodeField,$ as useWeakNodeDescription,pn as useWeakNodeFromNode,g as useWeakProvidedNode};
|
|
441
2
|
//# sourceMappingURL=index.js.map
|