@xyo-network/react-diviner
Version:
Common React library for all XYO projects that use React
67 lines (64 loc) • 2.3 kB
JavaScript
// 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