UNPKG

@puls-atlas/cli

Version:

The Puls Atlas CLI tool for managing Atlas projects

25 lines 1.11 kB
import { upperFirst } from 'es-toolkit/string'; import elasticsearch from './elasticsearch/index.js'; import typesense from './typesense/index.js'; import { validateLifecycleProvider } from './contracts/validateLifecycleProvider.js'; import { normalizeOptionalString } from '../../../utils/value.js'; const SEARCH_PROVIDERS = { elasticsearch: validateLifecycleProvider(elasticsearch), typesense: validateLifecycleProvider(typesense) }; export const getSearchProvider = providerName => { const provider = SEARCH_PROVIDERS[providerName]; if (!provider) { throw new Error(`Unsupported Atlas search provider "${providerName}". ` + `Registered providers: ${Object.keys(SEARCH_PROVIDERS).join(', ')}.`); } return provider; }; export const getSearchProviderDisplayName = (provider, providerName) => { const displayName = normalizeOptionalString(provider?.descriptor?.displayName); if (displayName) { return displayName; } return upperFirst(provider?.name ?? providerName ?? 'provider'); }; export const listSearchProviders = () => Object.keys(SEARCH_PROVIDERS); export default SEARCH_PROVIDERS;