trufflesuite/truffle

View on GitHub
packages/db-kit/src/cli/hooks/useConfig.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { useState, useEffect } from "react";
import TruffleConfig from "@truffle/config";
import { Environment } from "@truffle/environment";

import type { Resources } from "@truffle/db";

export interface UseConfigOptions {
  network: Pick<Resources.Resource<"networks">, "name">;
  configPath?: string;
}

export function useConfig({ network: { name }, configPath }) {
  const [config, setConfig] = useState<TruffleConfig | undefined>(undefined);

  useEffect(() => {
    setImmediate(() => {
      const config = TruffleConfig.detect({
        network: name,
        config: configPath
      });

      Environment.detect(config).then(() => setConfig(config));
    });
  }, []);

  return config;
}