import { TokenState } from '@specifyapp/specify-design-token-format'; import { AllUnresolvableAlias } from '../../_utils/unresolvableStrategy.js'; import { SpecifyError, specifyErrors } from '../../../errors/index.js'; import { CssUnresolvableAliasStrategy } from './CssAliasStrategy.js'; export function createThrowOnUnresolvableStrategy( messageFn?: (tokenState: TokenState, alias: AllUnresolvableAlias) => string, ) { const strategy = ((tokenState, alias) => { const message = messageFn?.(tokenState as any, alias) ?? `Found an unresolvable alias at path: ${alias.targetPath.toString()}`; throw new SpecifyError({ publicMessage: message, errorKey: specifyErrors.UNEXPECTED_ERROR.errorKey, }); }) as CssUnresolvableAliasStrategy; return strategy; } export const DEFAULT_UNRESOLVABLE_STRATEGY = createThrowOnUnresolvableStrategy();