fix: replace relative domain imports with TypeScript path aliases
Some checks failed
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 5m59s
CI/CD Pipeline - Xpeditis PreProd / Backend - Docker Build & Push (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Frontend - Build & Test (push) Successful in 11m1s
CI/CD Pipeline - Xpeditis PreProd / Frontend - Docker Build & Push (push) Has been cancelled
Some checks failed
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 5m59s
CI/CD Pipeline - Xpeditis PreProd / Backend - Docker Build & Push (push) Has been skipped
CI/CD Pipeline - Xpeditis PreProd / Frontend - Build & Test (push) Successful in 11m1s
CI/CD Pipeline - Xpeditis PreProd / Frontend - Docker Build & Push (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
This commit is contained in:
parent
4b00ee2601
commit
3fc1091d31
42
apps/backend/fix-domain-imports.js
Normal file
42
apps/backend/fix-domain-imports.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Script to fix TypeScript imports in domain/services
|
||||||
|
* Replace relative paths with path aliases
|
||||||
|
*/
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
function fixImportsInFile(filePath) {
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
let modified = content;
|
||||||
|
|
||||||
|
// Replace relative imports to ../ports/ with @domain/ports/
|
||||||
|
modified = modified.replace(/from ['"]\.\.\/ports\//g, "from '@domain/ports/");
|
||||||
|
modified = modified.replace(/import\s+(['"])\.\.\/ports\//g, "import $1@domain/ports/");
|
||||||
|
|
||||||
|
if (modified !== content) {
|
||||||
|
fs.writeFileSync(filePath, modified, 'utf8');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const servicesDir = path.join(__dirname, 'src/domain/services');
|
||||||
|
console.log('🔧 Fixing domain/services imports...\n');
|
||||||
|
|
||||||
|
const files = fs.readdirSync(servicesDir);
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
|
for (const file of files) {
|
||||||
|
if (file.endsWith('.ts')) {
|
||||||
|
const filePath = path.join(servicesDir, file);
|
||||||
|
if (fixImportsInFile(filePath)) {
|
||||||
|
console.log(`✅ Fixed: ${filePath}`);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`\n✅ Fixed ${count} files in domain/services`);
|
||||||
@ -12,8 +12,8 @@ import {
|
|||||||
ValidateAvailabilityPort,
|
ValidateAvailabilityPort,
|
||||||
AvailabilityInput,
|
AvailabilityInput,
|
||||||
AvailabilityOutput,
|
AvailabilityOutput,
|
||||||
} from '../ports/in/validate-availability.port';
|
} from '@domain/ports/in/validate-availability.port';
|
||||||
import { RateQuoteRepository } from '../ports/out/rate-quote.repository';
|
import { RateQuoteRepository } from '@domain/ports/out/rate-quote.repository';
|
||||||
import { InvalidRateQuoteException } from '../exceptions/invalid-rate-quote.exception';
|
import { InvalidRateQuoteException } from '../exceptions/invalid-rate-quote.exception';
|
||||||
import { RateQuoteExpiredException } from '../exceptions/rate-quote-expired.exception';
|
import { RateQuoteExpiredException } from '../exceptions/rate-quote-expired.exception';
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { Injectable, Inject, NotFoundException } from '@nestjs/common';
|
import { Injectable, Inject, NotFoundException } from '@nestjs/common';
|
||||||
import { Booking } from '../entities/booking.entity';
|
import { Booking } from '../entities/booking.entity';
|
||||||
import { BookingRepository } from '../ports/out/booking.repository';
|
import { BookingRepository } from '@domain/ports/out/booking.repository';
|
||||||
import { RateQuoteRepository } from '../ports/out/rate-quote.repository';
|
import { RateQuoteRepository } from '@domain/ports/out/rate-quote.repository';
|
||||||
import { BOOKING_REPOSITORY } from '../ports/out/booking.repository';
|
import { BOOKING_REPOSITORY } from '@domain/ports/out/booking.repository';
|
||||||
import { RATE_QUOTE_REPOSITORY } from '../ports/out/rate-quote.repository';
|
import { RATE_QUOTE_REPOSITORY } from '@domain/ports/out/rate-quote.repository';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
export interface CreateBookingInput {
|
export interface CreateBookingInput {
|
||||||
|
|||||||
@ -9,8 +9,8 @@ import {
|
|||||||
CsvRateSearchOutput,
|
CsvRateSearchOutput,
|
||||||
CsvRateSearchResult,
|
CsvRateSearchResult,
|
||||||
RateSearchFilters,
|
RateSearchFilters,
|
||||||
} from '../ports/in/search-csv-rates.port';
|
} from '@domain/ports/in/search-csv-rates.port';
|
||||||
import { CsvRateLoaderPort } from '../ports/out/csv-rate-loader.port';
|
import { CsvRateLoaderPort } from '@domain/ports/out/csv-rate-loader.port';
|
||||||
import { CsvRatePriceCalculatorService } from './csv-rate-price-calculator.service';
|
import { CsvRatePriceCalculatorService } from './csv-rate-price-calculator.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -15,8 +15,8 @@ import {
|
|||||||
PortSearchInput,
|
PortSearchInput,
|
||||||
PortSearchOutput,
|
PortSearchOutput,
|
||||||
GetPortInput,
|
GetPortInput,
|
||||||
} from '../ports/in/get-ports.port';
|
} from '@domain/ports/in/get-ports.port';
|
||||||
import { PortRepository } from '../ports/out/port.repository';
|
import { PortRepository } from '@domain/ports/out/port.repository';
|
||||||
import { PortNotFoundException } from '../exceptions/port-not-found.exception';
|
import { PortNotFoundException } from '../exceptions/port-not-found.exception';
|
||||||
|
|
||||||
export class PortSearchService implements GetPortsPort {
|
export class PortSearchService implements GetPortsPort {
|
||||||
|
|||||||
@ -11,12 +11,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { RateQuote } from '../entities/rate-quote.entity';
|
import { RateQuote } from '../entities/rate-quote.entity';
|
||||||
import { SearchRatesPort, RateSearchInput, RateSearchOutput } from '../ports/in/search-rates.port';
|
import { SearchRatesPort, RateSearchInput, RateSearchOutput } from '@domain/ports/in/search-rates.port';
|
||||||
import { CarrierConnectorPort } from '../ports/out/carrier-connector.port';
|
import { CarrierConnectorPort } from '@domain/ports/out/carrier-connector.port';
|
||||||
import { CachePort } from '../ports/out/cache.port';
|
import { CachePort } from '@domain/ports/out/cache.port';
|
||||||
import { RateQuoteRepository } from '../ports/out/rate-quote.repository';
|
import { RateQuoteRepository } from '@domain/ports/out/rate-quote.repository';
|
||||||
import { PortRepository } from '../ports/out/port.repository';
|
import { PortRepository } from '@domain/ports/out/port.repository';
|
||||||
import { CarrierRepository } from '../ports/out/carrier.repository';
|
import { CarrierRepository } from '@domain/ports/out/carrier.repository';
|
||||||
import { PortNotFoundException } from '../exceptions/port-not-found.exception';
|
import { PortNotFoundException } from '../exceptions/port-not-found.exception';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
"target": "ES2021",
|
"target": "ES2021",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"outDir": "./dist",
|
"outDir": "./dist",
|
||||||
"baseUrl": "./src",
|
"baseUrl": ".",
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"strictNullChecks": true,
|
"strictNullChecks": true,
|
||||||
@ -23,9 +23,9 @@
|
|||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"@domain/*": ["domain/*"],
|
"@domain/*": ["src/domain/*"],
|
||||||
"@application/*": ["application/*"],
|
"@application/*": ["src/application/*"],
|
||||||
"@infrastructure/*": ["infrastructure/*"]
|
"@infrastructure/*": ["src/infrastructure/*"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": ["src/**/*"],
|
"include": ["src/**/*"],
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user