@xyo-network/react-node 2.75.1 → 2.75.3
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/components/Node.d.cts +1 -1
- package/dist/browser/components/Node.d.cts.map +1 -1
- package/dist/browser/components/Node.d.mts +1 -1
- package/dist/browser/components/Node.d.mts.map +1 -1
- package/dist/browser/components/Node.d.ts +1 -1
- package/dist/browser/components/Node.d.ts.map +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.cts +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.cts.map +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.mts +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.mts.map +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.ts +1 -1
- package/dist/browser/components/NodeDescriptionBox.d.ts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.cts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.mts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.ts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.cts +2 -2
- package/dist/browser/hooks/ModuleFromNodeConfig.d.cts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.mts +2 -2
- package/dist/browser/hooks/ModuleFromNodeConfig.d.mts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.ts +2 -2
- package/dist/browser/hooks/ModuleFromNodeConfig.d.ts.map +1 -1
- package/dist/browser/hooks/index.d.cts +3 -0
- package/dist/browser/hooks/index.d.cts.map +1 -1
- package/dist/browser/hooks/index.d.mts +3 -0
- package/dist/browser/hooks/index.d.mts.map +1 -1
- package/dist/browser/hooks/index.d.ts +3 -0
- package/dist/browser/hooks/index.d.ts.map +1 -1
- package/dist/browser/hooks/provided/index.d.cts +1 -0
- package/dist/browser/hooks/provided/index.d.cts.map +1 -1
- package/dist/browser/hooks/provided/index.d.mts +1 -0
- package/dist/browser/hooks/provided/index.d.mts.map +1 -1
- package/dist/browser/hooks/provided/index.d.ts +1 -0
- package/dist/browser/hooks/provided/index.d.ts.map +1 -1
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.cts +3 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.cts.map +1 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.mts +3 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.mts.map +1 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.ts +3 -0
- package/dist/browser/hooks/provided/useWeakProvidedNode.d.ts.map +1 -0
- package/dist/browser/hooks/useModuleFromNode.d.cts +67 -1
- package/dist/browser/hooks/useModuleFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useModuleFromNode.d.mts +67 -1
- package/dist/browser/hooks/useModuleFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useModuleFromNode.d.ts +67 -1
- package/dist/browser/hooks/useModuleFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.cts +1 -0
- package/dist/browser/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.mts +1 -0
- package/dist/browser/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useNodeFromNode.d.ts +1 -0
- package/dist/browser/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.cts +1 -0
- package/dist/browser/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.mts +1 -0
- package/dist/browser/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useNodesFromNode.d.ts +1 -0
- package/dist/browser/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useWeakModuleFromNode.d.cts +56 -1
- package/dist/browser/hooks/useWeakModuleFromNode.d.cts.map +1 -1
- package/dist/browser/hooks/useWeakModuleFromNode.d.mts +56 -1
- package/dist/browser/hooks/useWeakModuleFromNode.d.mts.map +1 -1
- package/dist/browser/hooks/useWeakModuleFromNode.d.ts +56 -1
- package/dist/browser/hooks/useWeakModuleFromNode.d.ts.map +1 -1
- package/dist/browser/hooks/useWeakNode.d.cts +4 -0
- package/dist/browser/hooks/useWeakNode.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNode.d.mts +4 -0
- package/dist/browser/hooks/useWeakNode.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNode.d.ts +4 -0
- package/dist/browser/hooks/useWeakNode.d.ts.map +1 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.cts +4 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.mts +4 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.ts +4 -0
- package/dist/browser/hooks/useWeakNodeDescription.d.ts.map +1 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.cts +4 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.mts +4 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.ts +4 -0
- package/dist/browser/hooks/useWeakNodeFromNode.d.ts.map +1 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.cts +5 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.cts.map +1 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.mts +5 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.mts.map +1 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.ts +5 -0
- package/dist/browser/hooks/useWeakNodesFromNode.d.ts.map +1 -0
- package/dist/browser/index.cjs +98 -29
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +123 -54
- package/dist/browser/index.js.map +1 -1
- package/dist/node/components/Node.d.cts +1 -1
- package/dist/node/components/Node.d.cts.map +1 -1
- package/dist/node/components/Node.d.mts +1 -1
- package/dist/node/components/Node.d.mts.map +1 -1
- package/dist/node/components/Node.d.ts +1 -1
- package/dist/node/components/Node.d.ts.map +1 -1
- package/dist/node/components/NodeDescriptionBox.d.cts +1 -1
- package/dist/node/components/NodeDescriptionBox.d.cts.map +1 -1
- package/dist/node/components/NodeDescriptionBox.d.mts +1 -1
- package/dist/node/components/NodeDescriptionBox.d.mts.map +1 -1
- package/dist/node/components/NodeDescriptionBox.d.ts +1 -1
- package/dist/node/components/NodeDescriptionBox.d.ts.map +1 -1
- package/dist/node/components/NodeModulesBox.d.cts.map +1 -1
- package/dist/node/components/NodeModulesBox.d.mts.map +1 -1
- package/dist/node/components/NodeModulesBox.d.ts.map +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.cts +2 -2
- package/dist/node/hooks/ModuleFromNodeConfig.d.cts.map +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.mts +2 -2
- package/dist/node/hooks/ModuleFromNodeConfig.d.mts.map +1 -1
- package/dist/node/hooks/ModuleFromNodeConfig.d.ts +2 -2
- package/dist/node/hooks/ModuleFromNodeConfig.d.ts.map +1 -1
- package/dist/node/hooks/index.d.cts +3 -0
- package/dist/node/hooks/index.d.cts.map +1 -1
- package/dist/node/hooks/index.d.mts +3 -0
- package/dist/node/hooks/index.d.mts.map +1 -1
- package/dist/node/hooks/index.d.ts +3 -0
- package/dist/node/hooks/index.d.ts.map +1 -1
- package/dist/node/hooks/provided/index.d.cts +1 -0
- package/dist/node/hooks/provided/index.d.cts.map +1 -1
- package/dist/node/hooks/provided/index.d.mts +1 -0
- package/dist/node/hooks/provided/index.d.mts.map +1 -1
- package/dist/node/hooks/provided/index.d.ts +1 -0
- package/dist/node/hooks/provided/index.d.ts.map +1 -1
- package/dist/node/hooks/provided/useWeakProvidedNode.d.cts +3 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.cts.map +1 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.mts +3 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.mts.map +1 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.ts +3 -0
- package/dist/node/hooks/provided/useWeakProvidedNode.d.ts.map +1 -0
- package/dist/node/hooks/useModuleFromNode.d.cts +67 -1
- package/dist/node/hooks/useModuleFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useModuleFromNode.d.mts +67 -1
- package/dist/node/hooks/useModuleFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useModuleFromNode.d.ts +67 -1
- package/dist/node/hooks/useModuleFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.cts +1 -0
- package/dist/node/hooks/useNodeFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.mts +1 -0
- package/dist/node/hooks/useNodeFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useNodeFromNode.d.ts +1 -0
- package/dist/node/hooks/useNodeFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.cts +1 -0
- package/dist/node/hooks/useNodesFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.mts +1 -0
- package/dist/node/hooks/useNodesFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useNodesFromNode.d.ts +1 -0
- package/dist/node/hooks/useNodesFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useWeakModuleFromNode.d.cts +56 -1
- package/dist/node/hooks/useWeakModuleFromNode.d.cts.map +1 -1
- package/dist/node/hooks/useWeakModuleFromNode.d.mts +56 -1
- package/dist/node/hooks/useWeakModuleFromNode.d.mts.map +1 -1
- package/dist/node/hooks/useWeakModuleFromNode.d.ts +56 -1
- package/dist/node/hooks/useWeakModuleFromNode.d.ts.map +1 -1
- package/dist/node/hooks/useWeakNode.d.cts +4 -0
- package/dist/node/hooks/useWeakNode.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNode.d.mts +4 -0
- package/dist/node/hooks/useWeakNode.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNode.d.ts +4 -0
- package/dist/node/hooks/useWeakNode.d.ts.map +1 -0
- package/dist/node/hooks/useWeakNodeDescription.d.cts +4 -0
- package/dist/node/hooks/useWeakNodeDescription.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNodeDescription.d.mts +4 -0
- package/dist/node/hooks/useWeakNodeDescription.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNodeDescription.d.ts +4 -0
- package/dist/node/hooks/useWeakNodeDescription.d.ts.map +1 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.cts +4 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.mts +4 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.ts +4 -0
- package/dist/node/hooks/useWeakNodeFromNode.d.ts.map +1 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.cts +5 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.cts.map +1 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.mts +5 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.mts.map +1 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.ts +5 -0
- package/dist/node/hooks/useWeakNodesFromNode.d.ts.map +1 -0
- package/dist/node/index.cjs +103 -29
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +124 -54
- package/dist/node/index.js.map +1 -1
- package/package.json +7 -5
- package/src/components/Node.stories.tsx +6 -5
- package/src/components/Node.tsx +1 -1
- package/src/components/NodeDescriptionBox.tsx +3 -3
- package/src/components/NodeModulesBox.tsx +6 -3
- package/src/hooks/ModuleFromNodeConfig.ts +2 -2
- package/src/hooks/index.ts +3 -0
- package/src/hooks/provided/index.ts +1 -0
- package/src/hooks/provided/useWeakProvidedNode.tsx +9 -0
- package/src/hooks/useModuleFromNode.ts +13 -9
- package/src/hooks/useNodeFromNode.tsx +3 -0
- package/src/hooks/useNodesFromNode.tsx +3 -0
- package/src/hooks/useWeakModuleFromNode.ts +13 -10
- package/src/hooks/useWeakNode.ts +18 -0
- package/src/hooks/useWeakNodeDescription.ts +15 -0
- package/src/hooks/useWeakNodeFromNode.tsx +11 -0
- package/src/hooks/useWeakNodesFromNode.tsx +25 -0
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/components/NodeDescriptionBox.tsx","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/useModuleFilterOptions.ts","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { useNodeDescription } from '../hooks'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | NodeInstance\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = useContext(NodeContext)\n return [node]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const { direction, identity, maxDepth } = config ?? {}\n return { direction, identity, maxDepth }\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { usePromise } from '@xylabs/react-promise'\nimport { asModuleInstance, isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = (\n nameOrAddressOrInstance?: string | ModuleInstance,\n config?: ModuleFromNodeConfig,\n): [ModuleInstance | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<ModuleInstance | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(asModuleInstance(module))\n }\n })\n node.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (isModuleInstance(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(result)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useProvidedNode } from './provided'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useModulesFromNode */\nexport const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n node.on('moduleAttached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n node.on('moduleDetached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useNode } from './useNode'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFromNode } from './useModuleFromNode'\n\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(module)\n if (module && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asModuleInstance, isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModuleFromNode = (\n nameOrAddressOrInstance?: string | ModuleInstance,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n const instance = asModuleInstance(module)\n setResult(instance ? new WeakRef(instance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (isModuleInstance(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(result ? new WeakRef(result) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModulesFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n nodeInstance.on('moduleAttached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n nodeInstance.on('moduleDetached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const useWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | NodeInstance\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport { ClickAwayListener, Drawer, DrawerProps, IconButton } from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\n\nimport { useProvidedNode } from '../hooks'\nimport { ModuleDescriptionBox } from './render'\n\nexport interface NodeDrawerProps extends WithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox module={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { TreeView } from '@mui/x-tree-view'\nimport { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n module?: ModuleInstance | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ module }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {module ?\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule module={module} idRef={idRef} />\n </StyledTreeView>\n </>\n : module === null ?\n <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(TreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MutableRefObject, useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n module: ModuleInstance\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ module, idRef }) => {\n const { address, queries } = module ?? {}\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const children = (await module.resolve('*')).filter((childModule) => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map((childModule) => new WeakRef(childModule)))\n }\n },\n [module, address],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n return (\n <StyledAddressTreeItem nodeId={increment()} label={`address: ${address}`}>\n {queries.map((query, index) => {\n return <TreeItem key={query} nodeId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0 ?\n <TreeItem nodeId={increment()} label={'children'} sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} module={childModule} idRef={idRef} /> : null\n })}\n </TreeItem>\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => ({\n '& .MuiTreeItem-content': {\n marginBottom: theme.spacing(0.25),\n },\n}))\n"],"mappings":"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","names":["import_react_promise","import_react","import_react","module","result","import_react_promise","import_react","module","moduleInstances","import_react_promise","import_module_model","import_node_model","module","error","import_react_promise","import_module_model","import_react","module","result","import_react_promise","import_react","module","nodeInstance","moduleInstances","import_react","import_jsx_runtime","import_icons_material","import_material","import_react_flexbox","import_material","import_x_tree_view","import_react","import_react","import_jsx_runtime","module","import_jsx_runtime","module","ExpandMoreIcon","ChevronRightIcon","import_jsx_runtime","CloseIcon"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/components/NodeDescriptionBox.tsx","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/provided/useWeakProvidedNode.tsx","../../src/hooks/useModuleFilterOptions.ts","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useNodesFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/useWeakNodeDescription.ts","../../src/hooks/useWeakNode.ts","../../src/hooks/useWeakNodeFromNode.tsx","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx"],"sourcesContent":["export * from './components'\nexport * from './hooks'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakNodeDescription } from '../hooks'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useWeakNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const useModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = useContext(NodeContext)\n return [node]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { useContext, useMemo } from 'react'\n\nexport const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {\n const { node } = useContext(NodeContext)\n const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])\n return [weakNode]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const { direction, identity, maxDepth } = config ?? {}\n return { direction, identity, maxDepth }\n}\n","/* eslint-disable import/no-deprecated */\n/* eslint-disable deprecation/deprecation */\nimport { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(identity(module) ? (module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(module) ? (module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useProvidedNode } from './provided'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","/* eslint-disable deprecation/deprecation */\n/* eslint-disable import/no-deprecated */\nimport { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\n/** @deprecated use useModulesFromNode */\nexport const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n node.on('moduleAttached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n node.on('moduleDetached', async ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n })\n const moduleInstances = filter ? await node.resolve(filter, filterOptions) : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useNode } from './useNode'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n// eslint-disable-next-line import/no-deprecated\nimport { useModuleFromNode } from './useModuleFromNode'\n\n/** @deprecated use useWeakNodeFromNode instead */\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n // eslint-disable-next-line import/no-deprecated, deprecation/deprecation\n const [module, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(module)\n if (module && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${module.config?.schema}:${module.config?.name}:${module.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import { ModuleFilter } from '@xyo-network/module-model'\nimport { isNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\n// eslint-disable-next-line import/no-deprecated\nimport { useModulesFromNode } from './useModulesFromNode'\n\n/** @deprecated use useWeakNodesFromNode */\nexport const useNodesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {\n // eslint-disable-next-line import/no-deprecated, deprecation/deprecation\n const [modules, error] = useModulesFromNode(filter, config)\n if (error) {\n return [null, error]\n }\n return modules ?\n [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<NodeInstance[]>((prev, module) => {\n if (isNodeInstance(module)) {\n prev.push(module)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isModuleInstance, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig, useModuleFromNodeConfigLogger } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: ModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = useModuleFromNodeConfigLogger(config)\n const filterOptions = useModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(identity(module) ? new WeakRef(module as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ module }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n if (module.address === nameOrAddressOrInstance || module.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n return\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleFilter, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useModuleFilterOptions } from './useModuleFilterOptions'\nimport { useNode } from './useNode'\n\nexport const useWeakModulesFromNode = (\n filter?: ModuleFilter,\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = useModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n nodeInstance.on('moduleAttached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n nodeInstance.on('moduleDetached', async ({ module }) => {\n const nodeInstance = node\n logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)\n const moduleInstances = filter ? await nodeInstance?.resolve(filter, filterOptions) : await nodeInstance?.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n })\n const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve('*', filterOptions)\n setResult(moduleInstances?.map((module) => new WeakRef(module)))\n return moduleInstances\n }\n console.log('Result: No Node')\n return\n }, [node, filter])\n return [result, nodeError ?? error]\n}\n","import { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescription, ModuleDescriptionPayload, ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { useWeakNode } from './useWeakNode'\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useWeakNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.deref()?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { asNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakProvidedNode } from './provided'\nimport { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField'\nimport { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig'\n\nexport const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)\n const [providedNode] = useWeakProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n const providedNodeInstance = providedNode?.deref()\n if (providedNodeInstance && nodeAddress) {\n return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), 'Module is not a node'))\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import { isNodeInstance, NodeInstance } from '@xyo-network/node-model'\n\nimport { ModuleFromNodeConfig } from './ModuleFromNodeConfig'\nimport { useWeakModuleFromNode } from './useWeakModuleFromNode'\n\nexport const useWeakNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })\n}\n","import { Logger } from '@xylabs/logger'\nimport { ModuleFilterOptions } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const useWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { NodeInstance } from '@xyo-network/node-model'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport { ClickAwayListener, Drawer, DrawerProps, IconButton } from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\n\nimport { useProvidedNode } from '../hooks'\nimport { ModuleDescriptionBox } from './render'\n\nexport interface NodeDrawerProps extends WithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox module={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { TreeView } from '@mui/x-tree-view'\nimport { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n module?: ModuleInstance | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ module }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {module ?\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule module={module} idRef={idRef} />\n </StyledTreeView>\n </>\n : module === null ?\n <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(TreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { MutableRefObject, useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n module: ModuleInstance\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ module, idRef }) => {\n const { address, queries } = module ?? {}\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const children = (await module.resolve('*')).filter((childModule) => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map((childModule) => new WeakRef(childModule)))\n }\n },\n [module, address],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n return (\n <StyledAddressTreeItem nodeId={increment()} label={`address: ${address}`}>\n {queries.map((query, index) => {\n return <TreeItem key={query} nodeId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0 ?\n <TreeItem nodeId={increment()} label={'children'} sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} module={childModule} idRef={idRef} /> : null\n })}\n </TreeItem>\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => ({\n '& .MuiTreeItem-content': {\n marginBottom: theme.spacing(0.25),\n },\n}))\n"],"mappings":"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","names":["import_react_node_context","import_react","import_react_promise","import_react","import_react","module","result","import_react_promise","import_react","module","moduleInstances","import_react_promise","import_module_model","import_node_model","module","error","import_node_model","module","import_react_promise","import_module_model","import_react","module","result","import_react_promise","import_react","module","nodeInstance","moduleInstances","import_react","import_react_promise","import_module_model","import_payload_model","import_react_promise","import_node_model","import_node_model","import_jsx_runtime","import_icons_material","import_material","import_react_flexbox","import_material","import_x_tree_view","import_react","import_react","import_jsx_runtime","module","import_jsx_runtime","module","ExpandMoreIcon","ChevronRightIcon","import_jsx_runtime","CloseIcon"]}
|
package/dist/node/index.js
CHANGED
|
@@ -14,6 +14,15 @@ var useProvidedNode = () => {
|
|
|
14
14
|
return [node];
|
|
15
15
|
};
|
|
16
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
|
+
|
|
17
26
|
// src/hooks/useModuleFilterOptions.ts
|
|
18
27
|
var useModuleFilterOptions = (config) => {
|
|
19
28
|
const { direction, identity, maxDepth } = config ?? {};
|
|
@@ -22,7 +31,7 @@ var useModuleFilterOptions = (config) => {
|
|
|
22
31
|
|
|
23
32
|
// src/hooks/useModuleFromNode.ts
|
|
24
33
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
25
|
-
import {
|
|
34
|
+
import { isModuleInstance } from "@xyo-network/module-model";
|
|
26
35
|
import { useState } from "react";
|
|
27
36
|
|
|
28
37
|
// src/hooks/useNode.ts
|
|
@@ -30,10 +39,10 @@ import { usePromise } from "@xylabs/react-promise";
|
|
|
30
39
|
import { asNodeInstance } from "@xyo-network/node-model";
|
|
31
40
|
|
|
32
41
|
// src/hooks/useNodeConfigNodeField.ts
|
|
33
|
-
import { useMemo } from "react";
|
|
42
|
+
import { useMemo as useMemo2 } from "react";
|
|
34
43
|
var useNodeConfigNodeField = (config) => {
|
|
35
|
-
const nodeAddress =
|
|
36
|
-
const nodeInstance =
|
|
44
|
+
const nodeAddress = useMemo2(() => typeof (config == null ? void 0 : config.node) === "string" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
45
|
+
const nodeInstance = useMemo2(() => typeof (config == null ? void 0 : config.node) === "object" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
37
46
|
return [nodeAddress, nodeInstance];
|
|
38
47
|
};
|
|
39
48
|
|
|
@@ -50,34 +59,35 @@ var useNode = (config) => {
|
|
|
50
59
|
};
|
|
51
60
|
|
|
52
61
|
// src/hooks/useModuleFromNode.ts
|
|
53
|
-
var useModuleFromNode = (nameOrAddressOrInstance, config) => {
|
|
62
|
+
var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
54
63
|
const [node, nodeError] = useNode(config);
|
|
55
64
|
const logger = useModuleFromNodeConfigLogger(config);
|
|
56
65
|
const filterOptions = useModuleFilterOptions(config);
|
|
57
66
|
const [result, setResult] = useState();
|
|
58
67
|
const [, error] = usePromise2(async () => {
|
|
59
68
|
logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
|
|
69
|
+
const identity = (config == null ? void 0 : config.identity) ?? isModuleInstance;
|
|
60
70
|
if (node && nameOrAddressOrInstance) {
|
|
61
|
-
node.on("moduleAttached", ({ module }) => {
|
|
71
|
+
node.on("moduleAttached", ({ module: module2 }) => {
|
|
62
72
|
var _a;
|
|
63
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${
|
|
64
|
-
if (
|
|
65
|
-
setResult(
|
|
73
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module2.config.name ?? module2.address}]`);
|
|
74
|
+
if (module2.address === nameOrAddressOrInstance || ((_a = module2.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
|
|
75
|
+
setResult(identity(module2) ? module2 : void 0);
|
|
66
76
|
}
|
|
67
77
|
});
|
|
68
|
-
node.on("moduleDetached", ({ module }) => {
|
|
78
|
+
node.on("moduleDetached", ({ module: module2 }) => {
|
|
69
79
|
var _a;
|
|
70
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${
|
|
71
|
-
if (
|
|
80
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module2.config.name ?? module2.address}]`);
|
|
81
|
+
if (module2.address === nameOrAddressOrInstance || ((_a = module2.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
|
|
72
82
|
setResult(void 0);
|
|
73
83
|
}
|
|
74
84
|
});
|
|
75
|
-
if (
|
|
85
|
+
if (identity(nameOrAddressOrInstance)) {
|
|
76
86
|
setResult(nameOrAddressOrInstance);
|
|
77
87
|
} else {
|
|
78
88
|
const result2 = await node.resolve(nameOrAddressOrInstance, filterOptions);
|
|
79
89
|
logger == null ? void 0 : logger.debug(`Result: ${result2 == null ? void 0 : result2.address}`);
|
|
80
|
-
setResult(
|
|
90
|
+
setResult(identity(module) ? module : void 0);
|
|
81
91
|
}
|
|
82
92
|
return result;
|
|
83
93
|
}
|
|
@@ -98,13 +108,13 @@ var useModulesFromNode = (filter, config) => {
|
|
|
98
108
|
const [, error] = usePromise3(async () => {
|
|
99
109
|
logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
|
|
100
110
|
if (node) {
|
|
101
|
-
node.on("moduleAttached", async ({ module }) => {
|
|
102
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${
|
|
111
|
+
node.on("moduleAttached", async ({ module: module2 }) => {
|
|
112
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module2.config.name ?? module2.address}]`);
|
|
103
113
|
const moduleInstances2 = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
|
|
104
114
|
setResult(moduleInstances2);
|
|
105
115
|
});
|
|
106
|
-
node.on("moduleDetached", async ({ module }) => {
|
|
107
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${
|
|
116
|
+
node.on("moduleDetached", async ({ module: module2 }) => {
|
|
117
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module2.config.name ?? module2.address}]`);
|
|
108
118
|
const moduleInstances2 = filter ? await node.resolve(filter, filterOptions) : await node.resolve("*", filterOptions);
|
|
109
119
|
setResult(moduleInstances2);
|
|
110
120
|
});
|
|
@@ -135,50 +145,69 @@ var useNodeDescription = (config) => {
|
|
|
135
145
|
import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
|
|
136
146
|
var useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
137
147
|
var _a, _b;
|
|
138
|
-
const [
|
|
139
|
-
const instance = asNodeInstance2(
|
|
140
|
-
if (
|
|
141
|
-
const error2 = new Error(`Resolved module is not a NodeInstance [${(_a =
|
|
148
|
+
const [module2, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
149
|
+
const instance = asNodeInstance2(module2);
|
|
150
|
+
if (module2 && !instance) {
|
|
151
|
+
const error2 = new Error(`Resolved module is not a NodeInstance [${(_a = module2.config) == null ? void 0 : _a.schema}:${(_b = module2.config) == null ? void 0 : _b.name}:${module2.address}]`);
|
|
142
152
|
console.error(error2.message);
|
|
143
153
|
return [void 0, error2];
|
|
144
154
|
}
|
|
145
155
|
return [instance, error];
|
|
146
156
|
};
|
|
147
157
|
|
|
158
|
+
// src/hooks/useNodesFromNode.tsx
|
|
159
|
+
import { isNodeInstance } from "@xyo-network/node-model";
|
|
160
|
+
var useNodesFromNode = (filter, config) => {
|
|
161
|
+
const [modules, error] = useModulesFromNode(filter, config);
|
|
162
|
+
if (error) {
|
|
163
|
+
return [null, error];
|
|
164
|
+
}
|
|
165
|
+
return modules ? [
|
|
166
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
167
|
+
modules.reduce((prev, module2) => {
|
|
168
|
+
if (isNodeInstance(module2)) {
|
|
169
|
+
prev.push(module2);
|
|
170
|
+
}
|
|
171
|
+
return prev;
|
|
172
|
+
}, []),
|
|
173
|
+
void 0
|
|
174
|
+
] : [modules, error];
|
|
175
|
+
};
|
|
176
|
+
|
|
148
177
|
// src/hooks/useWeakModuleFromNode.ts
|
|
149
178
|
import { usePromise as usePromise5 } from "@xylabs/react-promise";
|
|
150
|
-
import {
|
|
179
|
+
import { isModuleInstance as isModuleInstance2 } from "@xyo-network/module-model";
|
|
151
180
|
import { useState as useState3 } from "react";
|
|
152
|
-
var useWeakModuleFromNode = (nameOrAddressOrInstance, config) => {
|
|
181
|
+
var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
153
182
|
const [node, nodeError] = useNode(config);
|
|
154
183
|
const logger = useModuleFromNodeConfigLogger(config);
|
|
155
184
|
const filterOptions = useModuleFilterOptions(config);
|
|
156
185
|
const [result, setResult] = useState3();
|
|
157
186
|
const [, error] = usePromise5(async () => {
|
|
158
187
|
logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
|
|
188
|
+
const identity = (config == null ? void 0 : config.identity) ?? isModuleInstance2;
|
|
159
189
|
const nodeInstance = node;
|
|
160
190
|
if (nodeInstance && nameOrAddressOrInstance) {
|
|
161
|
-
nodeInstance.on("moduleAttached", ({ module }) => {
|
|
191
|
+
nodeInstance.on("moduleAttached", ({ module: module2 }) => {
|
|
162
192
|
var _a;
|
|
163
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
setResult(instance ? new WeakRef(instance) : void 0);
|
|
193
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module2.config.name ?? module2.address}]`);
|
|
194
|
+
if (module2.address === nameOrAddressOrInstance || ((_a = module2.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
|
|
195
|
+
setResult(identity(module2) ? new WeakRef(module2) : void 0);
|
|
167
196
|
}
|
|
168
197
|
});
|
|
169
|
-
nodeInstance.on("moduleDetached", ({ module }) => {
|
|
198
|
+
nodeInstance.on("moduleDetached", ({ module: module2 }) => {
|
|
170
199
|
var _a;
|
|
171
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${
|
|
172
|
-
if (
|
|
200
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module2.config.name ?? module2.address}]`);
|
|
201
|
+
if (module2.address === nameOrAddressOrInstance || ((_a = module2.config) == null ? void 0 : _a.name) === nameOrAddressOrInstance) {
|
|
173
202
|
setResult(void 0);
|
|
174
203
|
}
|
|
175
204
|
});
|
|
176
|
-
if (
|
|
205
|
+
if (identity(nameOrAddressOrInstance)) {
|
|
177
206
|
setResult(new WeakRef(nameOrAddressOrInstance));
|
|
178
207
|
} else {
|
|
179
208
|
const result2 = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions);
|
|
180
209
|
logger == null ? void 0 : logger.debug(`Result: ${result2 == null ? void 0 : result2.address}`);
|
|
181
|
-
setResult(result2 ? new WeakRef(result2) : void 0);
|
|
210
|
+
setResult(identity(result2) ? new WeakRef(result2) : void 0);
|
|
182
211
|
}
|
|
183
212
|
return result;
|
|
184
213
|
}
|
|
@@ -200,20 +229,20 @@ var useWeakModulesFromNode = (filter, config) => {
|
|
|
200
229
|
logger == null ? void 0 : logger.debug("useModuleFromNode: resolving");
|
|
201
230
|
const nodeInstance = node;
|
|
202
231
|
if (nodeInstance) {
|
|
203
|
-
nodeInstance.on("moduleAttached", async ({ module }) => {
|
|
232
|
+
nodeInstance.on("moduleAttached", async ({ module: module2 }) => {
|
|
204
233
|
const nodeInstance2 = node;
|
|
205
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${
|
|
234
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleAttached [${module2.config.name ?? module2.address}]`);
|
|
206
235
|
const moduleInstances2 = filter ? await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve(filter, filterOptions)) : await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve("*", filterOptions));
|
|
207
|
-
setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((
|
|
236
|
+
setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((module3) => new WeakRef(module3)));
|
|
208
237
|
});
|
|
209
|
-
nodeInstance.on("moduleDetached", async ({ module }) => {
|
|
238
|
+
nodeInstance.on("moduleDetached", async ({ module: module2 }) => {
|
|
210
239
|
const nodeInstance2 = node;
|
|
211
|
-
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${
|
|
240
|
+
logger == null ? void 0 : logger.debug(`useModuleFromNode: moduleDetached [${module2.config.name ?? module2.address}]`);
|
|
212
241
|
const moduleInstances2 = filter ? await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve(filter, filterOptions)) : await (nodeInstance2 == null ? void 0 : nodeInstance2.resolve("*", filterOptions));
|
|
213
|
-
setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((
|
|
242
|
+
setResult(moduleInstances2 == null ? void 0 : moduleInstances2.map((module3) => new WeakRef(module3)));
|
|
214
243
|
});
|
|
215
244
|
const moduleInstances = filter ? await nodeInstance.resolve(filter, filterOptions) : await nodeInstance.resolve("*", filterOptions);
|
|
216
|
-
setResult(moduleInstances == null ? void 0 : moduleInstances.map((
|
|
245
|
+
setResult(moduleInstances == null ? void 0 : moduleInstances.map((module2) => new WeakRef(module2)));
|
|
217
246
|
return moduleInstances;
|
|
218
247
|
}
|
|
219
248
|
console.log("Result: No Node");
|
|
@@ -223,13 +252,50 @@ var useWeakModulesFromNode = (filter, config) => {
|
|
|
223
252
|
};
|
|
224
253
|
|
|
225
254
|
// src/hooks/useWeakNodeConfigNodeField.ts
|
|
226
|
-
import { useMemo as
|
|
255
|
+
import { useMemo as useMemo3 } from "react";
|
|
227
256
|
var useWeakNodeConfigNodeField = (config) => {
|
|
228
|
-
const nodeAddress =
|
|
229
|
-
const nodeInstance =
|
|
257
|
+
const nodeAddress = useMemo3(() => typeof (config == null ? void 0 : config.node) === "string" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
258
|
+
const nodeInstance = useMemo3(() => typeof (config == null ? void 0 : config.node) === "object" ? config == null ? void 0 : config.node : void 0, [config == null ? void 0 : config.node]);
|
|
230
259
|
return [nodeAddress, nodeInstance];
|
|
231
260
|
};
|
|
232
261
|
|
|
262
|
+
// src/hooks/useWeakNodeDescription.ts
|
|
263
|
+
import { usePromise as usePromise8 } from "@xylabs/react-promise";
|
|
264
|
+
import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
|
|
265
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
266
|
+
|
|
267
|
+
// src/hooks/useWeakNode.ts
|
|
268
|
+
import { usePromise as usePromise7 } from "@xylabs/react-promise";
|
|
269
|
+
import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
|
|
270
|
+
var useWeakNode = (config) => {
|
|
271
|
+
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
|
|
272
|
+
const [providedNode] = useWeakProvidedNode();
|
|
273
|
+
const [nodeAddressNode, error] = usePromise7(async () => {
|
|
274
|
+
const providedNodeInstance = providedNode == null ? void 0 : providedNode.deref();
|
|
275
|
+
if (providedNodeInstance && nodeAddress) {
|
|
276
|
+
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), "Module is not a node"));
|
|
277
|
+
}
|
|
278
|
+
}, [providedNode, nodeAddress]);
|
|
279
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
// src/hooks/useWeakNodeDescription.ts
|
|
283
|
+
var useWeakNodeDescription = (config) => {
|
|
284
|
+
const [activeNode, nodeError] = useWeakNode(config);
|
|
285
|
+
const [description, error] = usePromise8(async () => {
|
|
286
|
+
var _a;
|
|
287
|
+
const state = await ((_a = activeNode == null ? void 0 : activeNode.deref()) == null ? void 0 : _a.state());
|
|
288
|
+
return state == null ? void 0 : state.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
|
|
289
|
+
}, [activeNode]);
|
|
290
|
+
return [description, nodeError ?? error];
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
// src/hooks/useWeakNodeFromNode.tsx
|
|
294
|
+
import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
|
|
295
|
+
var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
296
|
+
return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isNodeInstance2, ...config });
|
|
297
|
+
};
|
|
298
|
+
|
|
233
299
|
// src/hooks/WeakModuleFromNodeConfig.ts
|
|
234
300
|
var useWeakModuleFromNodeConfigLogger = (config) => {
|
|
235
301
|
return config == null ? void 0 : config.logger;
|
|
@@ -238,7 +304,7 @@ var useWeakModuleFromNodeConfigLogger = (config) => {
|
|
|
238
304
|
// src/components/NodeDescriptionBox.tsx
|
|
239
305
|
import { jsx } from "react/jsx-runtime";
|
|
240
306
|
var NodeDescriptionBox = ({ node, ...props }) => {
|
|
241
|
-
const [description, error] =
|
|
307
|
+
const [description, error] = useWeakNodeDescription({ node });
|
|
242
308
|
return /* @__PURE__ */ jsx(FlexCol, { ...props, children: /* @__PURE__ */ jsx("code", { color: error ? "red" : void 0, children: error ? error.message : JSON.stringify(description, null, 2) }) });
|
|
243
309
|
};
|
|
244
310
|
|
|
@@ -271,18 +337,18 @@ import { TreeItem } from "@mui/x-tree-view";
|
|
|
271
337
|
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
272
338
|
import { useState as useState5 } from "react";
|
|
273
339
|
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
274
|
-
var RenderModule = ({ module, idRef }) => {
|
|
275
|
-
const { address, queries } =
|
|
340
|
+
var RenderModule = ({ module: module2, idRef }) => {
|
|
341
|
+
const { address, queries } = module2 ?? {};
|
|
276
342
|
const [childModules, setChildModules] = useState5();
|
|
277
343
|
useAsyncEffect(
|
|
278
344
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
279
345
|
async (mounted) => {
|
|
280
|
-
const children = (await
|
|
346
|
+
const children = (await module2.resolve("*")).filter((childModule) => childModule.address !== address);
|
|
281
347
|
if (mounted()) {
|
|
282
348
|
setChildModules(children.map((childModule) => new WeakRef(childModule)));
|
|
283
349
|
}
|
|
284
350
|
},
|
|
285
|
-
[
|
|
351
|
+
[module2, address]
|
|
286
352
|
);
|
|
287
353
|
const increment = () => {
|
|
288
354
|
const newId = (idRef.current.idIncrementor++).toString();
|
|
@@ -307,9 +373,9 @@ var StyledAddressTreeItem = styled(TreeItem, { name: "StyledAddressTreeItem" })(
|
|
|
307
373
|
|
|
308
374
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
309
375
|
import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
310
|
-
var ModuleDescriptionBox = ({ module }) => {
|
|
376
|
+
var ModuleDescriptionBox = ({ module: module2 }) => {
|
|
311
377
|
const idRef = useRef({ idIncrementor: 0, ids: [] });
|
|
312
|
-
return /* @__PURE__ */ jsx4(Fragment, { children:
|
|
378
|
+
return /* @__PURE__ */ jsx4(Fragment, { children: module2 ? /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
313
379
|
/* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node Configuration" }),
|
|
314
380
|
/* @__PURE__ */ jsx4(
|
|
315
381
|
StyledTreeView,
|
|
@@ -318,10 +384,10 @@ var ModuleDescriptionBox = ({ module }) => {
|
|
|
318
384
|
defaultCollapseIcon: /* @__PURE__ */ jsx4(ExpandMoreIcon, {}),
|
|
319
385
|
defaultExpandIcon: /* @__PURE__ */ jsx4(ChevronRightIcon, {}),
|
|
320
386
|
sx: { flexGrow: 1 },
|
|
321
|
-
children: /* @__PURE__ */ jsx4(RenderModule, { module, idRef })
|
|
387
|
+
children: /* @__PURE__ */ jsx4(RenderModule, { module: module2, idRef })
|
|
322
388
|
}
|
|
323
389
|
)
|
|
324
|
-
] }) :
|
|
390
|
+
] }) : module2 === null ? /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node loading..." }) : /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node not found" }) });
|
|
325
391
|
};
|
|
326
392
|
var StyledTreeView = styled2(TreeView, { name: "StyledTreeView" })(() => ({
|
|
327
393
|
height: "auto",
|
|
@@ -354,10 +420,14 @@ export {
|
|
|
354
420
|
useNodeConfigNodeField,
|
|
355
421
|
useNodeDescription,
|
|
356
422
|
useNodeFromNode,
|
|
423
|
+
useNodesFromNode,
|
|
357
424
|
useProvidedNode,
|
|
358
425
|
useWeakModuleFromNode,
|
|
359
426
|
useWeakModuleFromNodeConfigLogger,
|
|
360
427
|
useWeakModulesFromNode,
|
|
361
|
-
useWeakNodeConfigNodeField
|
|
428
|
+
useWeakNodeConfigNodeField,
|
|
429
|
+
useWeakNodeDescription,
|
|
430
|
+
useWeakNodeFromNode,
|
|
431
|
+
useWeakProvidedNode
|
|
362
432
|
};
|
|
363
433
|
//# sourceMappingURL=index.js.map
|