UNPKG

@deepbrainspace/nx-surrealdb

Version:

NX plugin for SurrealDB migrations with modular architecture

46 lines (45 loc) 1.6 kB
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; }