@deepbrainspace/nx-surrealdb
Version:
NX plugin for SurrealDB migrations with modular architecture
46 lines (45 loc) • 1.6 kB
TypeScript
import { DependencyResolver } from '../domain/dependency-resolver';
export interface PatternResolutionResult<T> {
resolved: T[];
notFound: string[];
}
export interface ResolvedModule {
moduleId: string;
pattern: string;
}
export interface ResolvedFilename {
filename: string;
pattern: string;
moduleId: string;
number: string;
name: string;
direction: 'up' | 'down';
}
export declare class PatternResolver {
private resolver;
private basePath;
private static readonly MODULE_PATTERN;
private static readonly MIGRATION_PATTERN;
private debug;
constructor(resolver: DependencyResolver, basePath: string);
/**
* Resolve module patterns using auto-globbing
* Examples: "10" -> "010_auth", "auth" -> "010_auth", "010_auth" -> "010_auth"
*/
resolveModules(patterns: string[]): PatternResolutionResult<ResolvedModule>;
/**
* Resolve filename patterns using auto-globbing
* Examples: "1" -> "0001_authentication_up.surql", "auth" -> "0001_authentication_up.surql"
*/
resolveFilenames(patterns: string[], targetModules?: string[], direction?: 'up' | 'down'): Promise<PatternResolutionResult<ResolvedFilename>>;
/**
* Special rollback filename resolution - handles dependency checking
*/
resolveRollbackFilenames(patterns: string[], targetModules?: string[]): Promise<PatternResolutionResult<ResolvedFilename> & {
dependencyWarnings: string[];
}>;
private findMatchingModule;
private findMatchingFile;
private matchesFilePattern;
private getModuleFiles;
}