fix(lint): enforce consistent-type-imports and fix import ordering across codebase

Auto-fix 862 lint errors: convert value imports used only as types to
`import type`, fix import group ordering in seed.ts and du-an-api.ts,
remove unused imports in auth controller, and clean up stale eslint-disable
comments referencing non-existent rules.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-16 05:13:56 +07:00
parent 86adcf7295
commit c920934fb6
296 changed files with 692 additions and 659 deletions

View File

@@ -5,7 +5,7 @@ import { createId } from '@paralleldrive/cuid2';
// eslint-disable-next-line @typescript-eslint/consistent-type-imports -- NestJS DI requires value imports for emitDecoratorMetadata
import { ConflictException, DomainException, ValidationException, LoggerService } from '@modules/shared';
import { ReviewEntity } from '../../../domain/entities/review.entity';
import { REVIEW_REPOSITORY, IReviewRepository } from '../../../domain/repositories/review.repository';
import { REVIEW_REPOSITORY, type IReviewRepository } from '../../../domain/repositories/review.repository';
import { Rating } from '../../../domain/value-objects/rating.vo';
import { CreateReviewCommand } from './create-review.command';

View File

@@ -3,7 +3,7 @@ import { Inject, InternalServerErrorException } from '@nestjs/common';
import { CommandHandler, EventBus, ICommandHandler } from '@nestjs/cqrs';
// eslint-disable-next-line @typescript-eslint/consistent-type-imports -- NestJS DI requires value imports for emitDecoratorMetadata
import { DomainException, ForbiddenException, NotFoundException, LoggerService } from '@modules/shared';
import { REVIEW_REPOSITORY, IReviewRepository } from '../../../domain/repositories/review.repository';
import { REVIEW_REPOSITORY, type IReviewRepository } from '../../../domain/repositories/review.repository';
import { DeleteReviewCommand } from './delete-review.command';
@CommandHandler(DeleteReviewCommand)

View File

@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
// eslint-disable-next-line @typescript-eslint/consistent-type-imports -- NestJS DI requires value imports for emitDecoratorMetadata
import { LoggerService, PrismaService } from '@modules/shared';
import { ReviewDeletedEvent } from '../../domain/events/review-deleted.event';
import { type ReviewDeletedEvent } from '../../domain/events/review-deleted.event';
@Injectable()
export class ReviewDeletedListener {

View File

@@ -1,8 +1,8 @@
import { Inject, InternalServerErrorException } from '@nestjs/common';
import { IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { DomainException, LoggerService } from '@modules/shared';
import { ReviewStatsData } from '../../../domain/repositories/review-read.dto';
import { REVIEW_REPOSITORY, IReviewRepository } from '../../../domain/repositories/review.repository';
import { type IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { DomainException, type LoggerService } from '@modules/shared';
import { type ReviewStatsData } from '../../../domain/repositories/review-read.dto';
import { REVIEW_REPOSITORY, type IReviewRepository } from '../../../domain/repositories/review.repository';
import { GetAverageRatingQuery } from './get-average-rating.query';
@QueryHandler(GetAverageRatingQuery)

View File

@@ -1,8 +1,8 @@
import { Inject, InternalServerErrorException } from '@nestjs/common';
import { IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { DomainException, LoggerService } from '@modules/shared';
import { ReviewItemData } from '../../../domain/repositories/review-read.dto';
import { REVIEW_REPOSITORY, IReviewRepository, PaginatedResult } from '../../../domain/repositories/review.repository';
import { type IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { DomainException, type LoggerService } from '@modules/shared';
import { type ReviewItemData } from '../../../domain/repositories/review-read.dto';
import { REVIEW_REPOSITORY, type IReviewRepository, type PaginatedResult } from '../../../domain/repositories/review.repository';
import { GetReviewsByTargetQuery } from './get-reviews-by-target.query';
@QueryHandler(GetReviewsByTargetQuery)

View File

@@ -1,8 +1,8 @@
import { Inject, InternalServerErrorException } from '@nestjs/common';
import { IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { DomainException, LoggerService } from '@modules/shared';
import { ReviewItemData } from '../../../domain/repositories/review-read.dto';
import { REVIEW_REPOSITORY, IReviewRepository, PaginatedResult } from '../../../domain/repositories/review.repository';
import { type IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { DomainException, type LoggerService } from '@modules/shared';
import { type ReviewItemData } from '../../../domain/repositories/review-read.dto';
import { REVIEW_REPOSITORY, type IReviewRepository, type PaginatedResult } from '../../../domain/repositories/review.repository';
import { GetReviewsByUserQuery } from './get-reviews-by-user.query';
@QueryHandler(GetReviewsByUserQuery)

View File

@@ -1,7 +1,7 @@
import { AggregateRoot } from '@modules/shared';
import { ReviewCreatedEvent } from '../events/review-created.event';
import { ReviewDeletedEvent } from '../events/review-deleted.event';
import { Rating } from '../value-objects/rating.vo';
import { type Rating } from '../value-objects/rating.vo';
export interface ReviewProps {
userId: string;

View File

@@ -1,4 +1,4 @@
import { DomainEvent } from '@modules/shared';
import { type DomainEvent } from '@modules/shared';
export class ReviewCreatedEvent implements DomainEvent {
readonly eventName = 'review.created';

View File

@@ -1,4 +1,4 @@
import { DomainEvent } from '@modules/shared';
import { type DomainEvent } from '@modules/shared';
export class ReviewDeletedEvent implements DomainEvent {
readonly eventName = 'review.deleted';

View File

@@ -1,5 +1,5 @@
import { ReviewEntity } from '../entities/review.entity';
import { ReviewItemData, ReviewStatsData } from './review-read.dto';
import { type ReviewEntity } from '../entities/review.entity';
import { type ReviewItemData, type ReviewStatsData } from './review-read.dto';
export const REVIEW_REPOSITORY = Symbol('REVIEW_REPOSITORY');

View File

@@ -1,10 +1,10 @@
import { Injectable } from '@nestjs/common';
import { Review as PrismaReview } from '@prisma/client';
import { type Review as PrismaReview } from '@prisma/client';
// eslint-disable-next-line @typescript-eslint/consistent-type-imports -- NestJS DI requires value imports for emitDecoratorMetadata
import { PrismaService } from '@modules/shared';
import { ReviewEntity } from '../../domain/entities/review.entity';
import { ReviewItemData, ReviewStatsData } from '../../domain/repositories/review-read.dto';
import { IReviewRepository, PaginatedResult } from '../../domain/repositories/review.repository';
import { type ReviewItemData, type ReviewStatsData } from '../../domain/repositories/review-read.dto';
import { type IReviewRepository, type PaginatedResult } from '../../domain/repositories/review.repository';
import { Rating } from '../../domain/value-objects/rating.vo';
@Injectable()