import { useContext, useState } from 'react'; import { GraphContext } from './graphContext'; import type { Constructable, ObjectGraph } from '../..'; import { uniqueId } from '../../utils/uniqueId'; import { isString } from '../../utils/isString'; export const useInjectionToken = (keyOrGraph: string | Constructable) => { const ctx = useContext(GraphContext); const [injectionToken] = useState(() => { return ctx?.injectionToken ?? uniqueId(isString(keyOrGraph)? keyOrGraph : keyOrGraph.name); }); return injectionToken; };