@puls-atlas/cli
Version:
The Puls Atlas CLI tool for managing Atlas projects
25 lines • 1.11 kB
JavaScript
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;