UNPKG

@puls-atlas/cli

Version:

The Puls Atlas CLI tool for managing Atlas projects

14 lines 942 B
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;