UNPKG

@xyo-network/react-diviner

Version:

Common React library for all XYO projects that use React

67 lines (64 loc) 2.3 kB
// src/hooks/node/useDivinerFromNode.tsx import { asDivinerInstance } from "@xyo-network/diviner-model"; import { useModuleFromNode } from "@xyo-network/react-node"; var useDivinerFromNode = (nameOrAddressOrInstance, config) => { const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config); const instance = asDivinerInstance(mod); if (mod && !instance) { const error2 = new Error(`Resolved module is not a DivinerInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`); console.error(error2.message); return [void 0, error2]; } return [instance, error]; }; // src/hooks/node/useDivinersFromNode.tsx import { isDivinerInstance } from "@xyo-network/diviner-model"; import { useModulesFromNode } from "@xyo-network/react-node"; var useDivinersFromNode = (ids, config) => { const [modules, error] = useModulesFromNode(ids, config); if (error) { return [null, error]; } return modules ? [ // eslint-disable-next-line unicorn/no-array-reduce modules.reduce((prev, mod) => { if (isDivinerInstance(mod)) { prev.push(mod); } return prev; }, []), void 0 ] : [modules, error]; }; // src/hooks/node/useWeakDivinerFromNode.tsx import { isDivinerInstance as isDivinerInstance2 } from "@xyo-network/diviner-model"; import { useWeakModuleFromNode } from "@xyo-network/react-node"; var useWeakDivinerFromNode = (nameOrAddressOrInstance, config) => { return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isDivinerInstance2, ...config }); }; // src/hooks/node/useWeakDivinersFromNode.tsx import { exists } from "@xylabs/exists"; import { asDivinerInstance as asDivinerInstance2 } from "@xyo-network/diviner-model"; import { useWeakModulesFromNode } from "@xyo-network/react-node"; var useWeakDivinersFromNode = (ids, config) => { const [modules, error] = useWeakModulesFromNode(ids, config); if (error) { return [null, error]; } return [ modules?.map((mod) => { const instance = asDivinerInstance2(mod?.deref()); if (instance) { return new WeakRef(instance); } }).filter(exists) ?? [], void 0 ]; }; export { useDivinerFromNode, useDivinersFromNode, useWeakDivinerFromNode, useWeakDivinersFromNode }; //# sourceMappingURL=index.mjs.map