UNPKG

@deepbrainspace/nx-surrealdb

Version:

NX plugin for SurrealDB migrations with modular architecture

69 lines 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModuleLockManager = void 0; class ModuleLockManager { constructor(config) { this.config = config; } isModuleLocked(moduleId) { if (!this.config?.modules[moduleId]) { return false; } return this.config.modules[moduleId].locked === true; } getModuleLockReason(moduleId) { if (!this.config?.modules[moduleId]) { return undefined; } return this.config.modules[moduleId].lockReason; } validateModuleLock(moduleId) { const isLocked = this.isModuleLocked(moduleId); const reason = this.getModuleLockReason(moduleId); return { isLocked, reason, lockIcon: isLocked ? '🔒' : '', }; } validateRollbackLock(moduleIds) { const blockedModules = []; const lockReasons = {}; for (const moduleId of moduleIds) { if (this.isModuleLocked(moduleId)) { blockedModules.push(moduleId); const reason = this.getModuleLockReason(moduleId); lockReasons[moduleId] = reason || 'Module is locked for safety'; } } return { blockedModules, lockReasons }; } getLockedModules() { if (!this.config) return []; return Object.entries(this.config.modules) .filter(([_, config]) => config.locked === true) .map(([moduleId, _]) => moduleId); } validateMigrationLock(moduleIds) { const blockedModules = []; const lockReasons = {}; for (const moduleId of moduleIds) { if (this.isModuleLocked(moduleId)) { blockedModules.push(moduleId); const reason = this.getModuleLockReason(moduleId); lockReasons[moduleId] = reason || 'Module is locked for safety'; } } return { canMigrate: blockedModules.length === 0, blockedModules, lockReasons, }; } static createLockManager(config) { return new ModuleLockManager(config); } } exports.ModuleLockManager = ModuleLockManager; //# sourceMappingURL=module-lock-manager.js.map