@puls-atlas/cli
Version:
The Puls Atlas CLI tool for managing Atlas projects
14 lines • 942 B
JavaScript
import { SearchLifecycleProvider } from './SearchLifecycleProvider.js';
const REQUIRED_METHOD_NAMES = ['createCollectionSchema', 'createDefaultConfigSection', 'validateConfigSection', 'getConfigSecretName', 'resolveAccess', 'getAccessReadiness', 'getProvisionAccessIssues', 'getDeployAccessIssues', 'discoverRemoteTargets', 'inspectSchemas', 'reconcileSchemas', 'getEngineRuntimeContract', 'getLocalDevelopmentFallbackEnvVars'];
export const validateLifecycleProvider = provider => {
if (!(provider instanceof SearchLifecycleProvider)) {
throw new Error('Atlas search lifecycle providers must extend SearchLifecycleProvider.');
}
for (const methodName of REQUIRED_METHOD_NAMES) {
if (provider[methodName] === SearchLifecycleProvider.prototype[methodName]) {
throw new Error(`Atlas search provider ${provider.name} must implement ${methodName}().`);
}
}
return provider;
};
export default validateLifecycleProvider;