UNPKG

supa-seed

Version:

A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support

76 lines 2.28 kB
/** * Framework Strategy Registry * Manages registration and selection of framework strategies */ import type { createClient } from '@supabase/supabase-js'; import { SeedingStrategy, DatabaseSchema, FrameworkDetectionResult } from './strategy-interface'; type SupabaseClient = ReturnType<typeof createClient>; export interface StrategyRegistryOptions { enableFallback?: boolean; minimumConfidence?: number; debug?: boolean; } export interface StrategySelection { strategy: SeedingStrategy; detection: FrameworkDetectionResult; reason: string; } export declare class StrategyRegistry { private strategies; private client; private options; constructor(client: SupabaseClient, options?: StrategyRegistryOptions); /** * Register a seeding strategy */ register(strategy: SeedingStrategy): Promise<void>; /** * Register multiple strategies */ registerAll(strategies: SeedingStrategy[]): Promise<void>; /** * Unregister a strategy */ unregister(strategyName: string): void; /** * Get all registered strategies */ getStrategies(): SeedingStrategy[]; /** * Get a specific strategy by name */ getStrategy(name: string): SeedingStrategy | undefined; /** * Select the best strategy for the given schema */ selectStrategy(schema: DatabaseSchema): Promise<StrategySelection>; /** * Select strategy with manual override */ selectStrategyWithOverride(schema: DatabaseSchema, frameworkOverride?: string): Promise<StrategySelection>; /** * Find the fallback strategy (typically generic) */ private findFallbackStrategy; /** * Get detection results for all strategies */ getAllDetectionResults(schema: DatabaseSchema): Promise<Array<{ strategy: string; detection: FrameworkDetectionResult; }>>; /** * Validate that a strategy works with the current schema */ validateStrategy(strategyName: string, schema: DatabaseSchema): Promise<{ valid: boolean; issues: string[]; recommendations: string[]; }>; /** * Clear all registered strategies */ clear(): void; } export {}; //# sourceMappingURL=strategy-registry.d.ts.map