@deepbrainspace/nx-surrealdb
Version:
NX plugin for SurrealDB migrations with modular architecture
37 lines (36 loc) • 1.34 kB
TypeScript
import { MigrationsConfig, ModuleConfig } from '../configuration/config-loader';
export interface DependencyNode {
moduleId: string;
config: ModuleConfig;
dependencies: string[];
dependents: string[];
}
export interface ResolutionResult {
executionOrder: string[];
dependencyGraph: Map<string, DependencyNode>;
}
export interface RollbackValidation {
canRollback: boolean;
blockedBy: string[];
reason?: string;
}
export declare class DependencyResolver {
private basePath;
private config;
private dependencyGraph;
constructor(basePath: string);
initialize(configPath?: string): Promise<void>;
private autoDiscoverModules;
private buildDependencyGraph;
getExecutionOrder(targetModules?: string[]): string[];
getRollbackOrder(targetModules?: string[]): string[];
validateRollback(moduleId: string, targetModules?: string[]): RollbackValidation;
validateModuleExists(moduleId: string): boolean;
getModuleDependencies(moduleId: string): string[];
getModuleDependents(moduleId: string): string[];
getAllModules(): string[];
getResolutionResult(targetModules?: string[]): ResolutionResult;
getConfig(): MigrationsConfig | null;
hasConfig(): boolean;
static createResolver(basePath: string, configPath?: string): Promise<DependencyResolver>;
}