@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
41 lines (40 loc) • 1.16 kB
JavaScript
import { NetlifyDriver, VercelDriver } from './deployment/drivers/index.js';
/**
* Registry of deployment driver constructors
*/
const drivers = new Map();
/**
* Register all deployment drivers
*/
export function registerDeploymentDrivers() {
drivers.set('vercel', VercelDriver);
drivers.set('netlify', NetlifyDriver);
}
/**
* Get a deployment driver instance
*
* @param provider Provider name (vercel, netlify, aws, etc.)
* @param credentials Provider credentials (decrypted from DB)
* @param options Additional provider options
* @returns Deployment driver instance
* @throws Error if provider is not supported
*/
export function getDeploymentDriver(provider, credentials, options) {
const Driver = drivers.get(provider);
if (!Driver) {
throw new Error(`Deployment driver "${provider}" is not supported`);
}
return new Driver(credentials, options);
}
/**
* Check if a provider is supported
*/
export function isValidProviderType(provider) {
return drivers.has(provider);
}
/**
* Get list of supported provider types
*/
export function getSupportedProviderTypes() {
return Array.from(drivers.keys());
}