Some checks failed
CI/CD Pipeline - Xpeditis PreProd / Frontend - Docker Build & Push (push) Blocked by required conditions
CI/CD Pipeline - Xpeditis PreProd / Deploy to PreProd Server (push) Blocked by required conditions
CI/CD Pipeline - Xpeditis PreProd / Run Smoke Tests (push) Blocked by required conditions
CI/CD Pipeline - Xpeditis PreProd / Backend - Build & Test (push) Failing after 5m53s
CI/CD Pipeline - Xpeditis PreProd / Backend - Docker Build & Push (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Frontend - Build & Test (push) Has been cancelled
- Replace all ../../domain/ imports with @domain/ across 67 files - Configure NestJS to use tsconfig.build.json with rootDir - Add tsc-alias to resolve path aliases after build - This fixes 'Cannot find module' TypeScript compilation errors Fixed files: - 30 files in application layer - 37 files in infrastructure layer
66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Script to fix TypeScript imports from relative paths to path aliases
|
|
*
|
|
* Replaces:
|
|
* - from '../../domain/...' → from '@domain/...'
|
|
* - from '../../../domain/...' → from '@domain/...'
|
|
* - from '../domain/...' → from '@domain/...'
|
|
* - from '../../../../domain/...' → from '@domain/...'
|
|
*/
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
function fixImportsInFile(filePath) {
|
|
const content = fs.readFileSync(filePath, 'utf8');
|
|
let modified = content;
|
|
|
|
// Replace all variations of relative domain imports with @domain alias
|
|
modified = modified.replace(/from ['"]\.\.\/\.\.\/\.\.\/\.\.\/domain\//g, "from '@domain/");
|
|
modified = modified.replace(/from ['"]\.\.\/\.\.\/\.\.\/domain\//g, "from '@domain/");
|
|
modified = modified.replace(/from ['"]\.\.\/\.\.\/domain\//g, "from '@domain/");
|
|
modified = modified.replace(/from ['"]\.\.\/domain\//g, "from '@domain/");
|
|
|
|
// Also fix import statements (not just from)
|
|
modified = modified.replace(/import\s+(['"])\.\.\/\.\.\/\.\.\/\.\.\/domain\//g, "import $1@domain/");
|
|
modified = modified.replace(/import\s+(['"])\.\.\/\.\.\/\.\.\/domain\//g, "import $1@domain/");
|
|
modified = modified.replace(/import\s+(['"])\.\.\/\.\.\/domain\//g, "import $1@domain/");
|
|
modified = modified.replace(/import\s+(['"])\.\.\/domain\//g, "import $1@domain/");
|
|
|
|
if (modified !== content) {
|
|
fs.writeFileSync(filePath, modified, 'utf8');
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function walkDir(dir) {
|
|
const files = fs.readdirSync(dir);
|
|
let count = 0;
|
|
|
|
for (const file of files) {
|
|
const filePath = path.join(dir, file);
|
|
const stat = fs.statSync(filePath);
|
|
|
|
if (stat.isDirectory()) {
|
|
count += walkDir(filePath);
|
|
} else if (file.endsWith('.ts')) {
|
|
if (fixImportsInFile(filePath)) {
|
|
console.log(`✅ Fixed: ${filePath}`);
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return count;
|
|
}
|
|
|
|
const srcDir = path.join(__dirname, 'src');
|
|
console.log('🔧 Fixing TypeScript imports...\n');
|
|
|
|
const count = walkDir(srcDir);
|
|
|
|
console.log(`\n✅ Fixed ${count} files`);
|