import type { Config, ResolvedRegister } from '@wagmi/core' import type { ConfigParameter } from '@wagmi/core/internal' import { hasInjectionContext, inject, unref } from 'vue' import { WagmiInjectionContextError, WagmiPluginNotFoundError, } from '../errors/plugin.js' import { configKey } from '../plugin.js' import type { DeepMaybeRef } from '../types/ref.js' export type UseConfigParameters = DeepMaybeRef< ConfigParameter > export type UseConfigReturnType = config /** https://wagmi.sh/vue/api/composables/useConfig */ export function useConfig( parameters_: UseConfigParameters = {}, ): UseConfigReturnType { const parameters = unref(parameters_) // passthrough config if provided if (parameters.config) return parameters.config as UseConfigReturnType // ensures that `inject()` can be used if (!hasInjectionContext()) throw new WagmiInjectionContextError() const config = inject(configKey) if (!config) throw new WagmiPluginNotFoundError() return config as UseConfigReturnType }