Skip to content

Chore/upgrade toolchain (Node 22 modernize)#47

Merged
kbkk merged 10 commits into
masterfrom
chore/upgrade-toolchain
Jun 5, 2026
Merged

Chore/upgrade toolchain (Node 22 modernize)#47
kbkk merged 10 commits into
masterfrom
chore/upgrade-toolchain

Conversation

@kbkk

@kbkk kbkk commented Jun 5, 2026

Copy link
Copy Markdown
Owner

No description provided.

kbkk and others added 8 commits June 5, 2026 13:22
…, NestJS 10, MikroORM 5

Modernize the entire build toolchain from 2021-era versions:
- Rush 5.62→5.175, pnpm 6→10, Node 14→22, TypeScript 4.4→5.8
- NestJS 8→10, @nestjs/swagger 5→7, MikroORM 4→5
- Migrate pnpmOptions from rush.json to pnpm-config.json
- Fix MikroORM v5 API changes (populate options, allowGlobalContext)
- Update GitHub Actions to v4, remove obsolete Travis CI config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- NestJS 11 brings Express v5 as default adapter
- MikroORM 6 removes `type` option, use `driver: SqliteDriver` import instead
- @nestjs/swagger 11 aligns versioning with NestJS core
- swagger-ui-express 4→5 for Express v5 compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nestjs/swagger 11 added strict `exports` in package.json, blocking
deep imports. Resolve the file path via package.json location instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- jest 26/27→29, ts-jest→29, @types/jest→29
- supertest 6→7, @types/supertest→6
- pino 7→9, pino-pretty 7→13, pino-std-serializers 5→7
  Replace deprecated prettyPrint option with transport API
- zod 3.10/3.12→3.24
- bcrypt 5.0→5.1, dotenv 16.0→16.4
- reflect-metadata 0.1→0.2, ts-node 10.5→10.9
- @types/express 4→5 (Express v5 in NestJS 11)
- Remove rimraf (unused)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- target es2019→es2022, lib es2020→es2023 (match Node 22 capabilities)
- Enable full strict mode (was only strictNullChecks)
- Fix noImplicitAny errors: add type annotations across both packages
- Fix strictPropertyInitialization: add definite assignment assertions
  for MikroORM-managed entity properties
- Fix EventBus subscriber type to use InstanceType<T> for correct
  event instance typing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NestJS 11 supports rethrow teardown via abortOnError: false, so the
custom MonolithNestFactory override is no longer needed. Also adds
start/start:dev scripts and clarifies the Promise.all init comment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… docs

The new name better communicates the intent — registering providers in a
flat, Spring-style global IoC container. Added JSDoc with usage examples.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…y/catch

Use a named options interface instead of positional args. Remove defensive
try/catch around logger and event bus lookups since both are always
expected to be present. Set abortOnError: true.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Coverage for commit 836d117:

Click to see coverage log
File % Stmts % Branch % Funcs % Lines Uncovered Line #s
All files 97.12 78.57 93.37 96.96
AccountContext 89.18 100 60 90.62
AccountContextGateway.ts 88.88 100 50 85.71 20
AccountContextModule.ts 100 100 100 100
index.ts 0 100 0 0 1-2
AccountContext/Configs 88.88 100 66.66 88.88
AccountContextConfig.ts 88.88 100 66.66 88.88 32
AccountContext/Controllers 100 100 100 100
AccountController.ts 100 100 100 100
AuthController.ts 100 100 100 100
AccountContext/Dto 100 100 100 100
CreateAccountDto.ts 100 100 100 100
CreateAuthTokenDto.ts 100 100 100 100
AccountContext/Entities 96.66 100 88.88 95.83
Account.ts 96.66 100 88.88 95.83 44
AccountContext/EventHandlers 100 100 100 100
SendAccountCreatedEmail.ts 100 100 100 100
AccountContext/Events 100 100 100 100
AccountCreatedEvent.ts 100 100 100 100
AccountSuspendedEvent.ts 100 100 100 100
index.ts 100 100 100 100
AccountContext/Repositories 97.43 75 100 97.05
AccountRepository.ts 100 100 100 100
InMemoryAccountRepository.ts 100 100 100 100
SqliteAccountRepository.ts 94.73 60 100 94.11 25
AccountContext/Services 94.18 50 100 93.58
ConfirmAccountService.ts 83.33 0 100 81.25 27,31,35
CreateAccountService.ts 95.65 100 100 95.23 50
CreateAuthTokenService.ts 95.83 66.66 100 95.45 43
SuspendAccountService.ts 100 100 100 100
AccountContext/Services/Commands 100 100 100 100
SuspendAccountCommand.ts 100 100 100 100
AccountContext/tests/utils 100 100 100 100
createTestConfig.ts 100 100 100 100
index.ts 100 100 100 100
AuctionContext 100 50 100 100
AuctionContextModule.ts 100 50 100 100 28
AuctionContext/Configs 88.88 100 66.66 88.88
AuctionContextConfig.ts 88.88 100 66.66 88.88 31
AuctionContext/Controllers 100 100 100 100
AuctionController.ts 100 100 100 100
AuctionContext/Controllers/Dto 100 100 100 100
CreateAuctionDto.ts 100 100 100 100
PlaceAuctionBidDto.ts 100 100 100 100
AuctionContext/Entities 100 100 100 100
Auction.ts 100 100 100 100
Bid.ts 100 100 100 100
AuctionContext/EventHandlers 100 100 100 100
AccountSuspendedEventHandler.ts 100 100 100 100
AuctionContext/Repositories 88.23 71.42 81.81 85.71
AuctionRepository.ts 100 100 100 100
InMemoryAuctionRepository.ts 89.47 80 85.71 86.66 38-40
SqliteAuctionRepository.ts 85.71 50 75 83.33 28-34
AuctionContext/Services 100 100 100 100
CreateAuctionService.ts 100 100 100 100
PlaceAuctionBidService.ts 100 100 100 100
AuctionContext/Services/Commands 100 100 100 100
CreateAuctionCommand.ts 100 100 100 100
PlaceAuctionBidCommand.ts 100 100 100 100
AuctionContext/tests/utils 100 100 100 100
createTestConfig.ts 100 100 100 100
createTestToken.ts 100 100 100 100
index.ts 100 100 100 100
Core/Auth 100 100 100 100
index.ts 100 100 100 100
types.ts 100 100 100 100
Core/Auth/NestJs 100 100 100 100
AccountAuthModule.ts 100 100 100 100
constants.ts 100 100 100 100
Core/Auth/NestJs/Decorators 100 100 100 100
CurrentAccount.ts 100 100 100 100
Core/Auth/NestJs/Guards 95.23 50 100 94.73
AccountGuard.ts 95.23 50 100 94.73 27
Core/Auth/Testing 100 100 100 100
createTestTokenFactory.ts 100 100 100 100
Core/EventBus 96.29 66.66 90 96.29
Event.ts 100 100 100 100
EventBus.ts 100 100 100 100
EventBusCompositeCoordinator.ts 83.33 100 66.66 83.33 18
InMemoryEventBus.ts 100 66.66 100 100 22
index.ts 100 100 100 100
Core/EventBus/NestJs 100 100 100 100
nestJsInMemoryEventBusProvider.ts 100 100 100 100
Core/Fp 100 100 100 100
Either.ts 100 100 100 100
Core/Logger 90.9 100 71.42 90.47
PinoLogger.ts 77.77 100 66.66 77.77 15,27
index.ts 100 100 100 100
pinoFactory.ts 100 100 100 100
Core/Logger/NestJs 100 100 100 100
NestJsLoggerAdapter.ts 100 100 100 100
nestJsLoggerProvider.ts 100 100 100 100
Core/NestJs 95.45 80 100 95.23
index.ts 100 100 100 100
provideGlobally.ts 95.23 80 100 95 11
Core/Outbox 100 100 100 100
index.ts 100 100 100 100
Core/Outbox/MikroOrm 100 60 100 100
MikroOrmOutbox.ts 100 100 100 100
MikroOrmOutboxWorker.ts 100 50 100 100 39,86
OutboxMessageEntity.ts 100 100 100 100
index.ts 100 100 100 100
Core/Outbox/NestJs 100 75 100 100
OutboxModule.ts 100 75 100 100 69
RegisterOutboxWorker.ts 100 100 100 100
constants.ts 100 100 100 100
index.ts 100 100 100 100
Core/Outbox/Testing 100 100 100 100
TestOutbox.ts 100 100 100 100
index.ts 100 100 100 100
Core/Testing 100 100 100 100
TestLogger.ts 100 100 100 100
index.ts 100 100 100 100
runMikroOrmMigrations.ts 100 100 100 100
waitMs.ts 100 100 100 100
------------------------------------ --------- ---------- --------- --------- -------------------

kbkk and others added 2 commits June 5, 2026 15:38
The old @typescript-eslint v4 only supported TypeScript <4.2, incompatible
with the project's TS 5.8. Upgrade to v7 which supports TS 5.x while
still using the legacy .eslintrc config format.

Rule changes:
- @typescript-eslint/comma-dangle, space-before-function-paren → core rules (formatting rules removed in v6)
- @typescript-eslint/no-var-requires → no-require-imports (renamed)
- @typescript-eslint/naming-convention → removed (was noop with no selectors)
- no-new-object → no-object-constructor (renamed in eslint 8)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kbkk kbkk merged commit 329c1cb into master Jun 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant