Skip to content

chore: use nodenext module resolution, update CI to Node 22#118

Merged
B4nan merged 10 commits intomasterfrom
fix/tsconfig-nodenext
Mar 12, 2026
Merged

chore: use nodenext module resolution, update CI to Node 22#118
B4nan merged 10 commits intomasterfrom
fix/tsconfig-nodenext

Conversation

@B4nan
Copy link
Member

@B4nan B4nan commented Mar 11, 2026

Summary

  • Switch tsconfig module/moduleResolution to nodenext — fixes type resolution for @mikro-orm/core subpath exports (e.g. ./schema), which caused SqlSchemaGenerator is missing refresh, ensureIndexes errors
  • Update CI matrix to Node 22 only (MikroORM v7 requires >= 22.17.0)
  • Commit updated lockfile for v7 dependencies

Test plan

  • CI passes on Node 22 with the new tsconfig

🤖 Generated with Claude Code

B4nan and others added 10 commits March 11, 2026 18:56
- Switch tsconfig module/moduleResolution to nodenext (fixes type
  resolution for @mikro-orm/core subpath exports like ./schema)
- Update CI matrix to Node 22 only (MikroORM v7 requires >= 22.17.0)
- Update lockfile for v7 dependencies

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace jest/ts-jest with vitest + unplugin-swc
- Add @swc-node/register and @swc/core
- Remove @types/jest, ts-jest, ts-loader, tslint, webpack deps
- Add Node 24 to CI matrix
- Update test scripts to use vitest

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Enable legacyDecorator + decoratorMetadata in SWC config
- Set ReflectMetadataProvider explicitly (no longer default in v7)
- Add reflect-metadata as vitest setup file

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
With isolate: false, both test suites share the process. The author
test drops the DB via refresh({ dropDb: true }), so the book test
needs to do the same to recreate it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each test file creates its own MikroORM instance against the same DB,
so they need isolated processes (like jest's default behavior) but
sequential execution to avoid conflicts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use tmpfs instead of named volume to ensure fresh MySQL state on every
run. Add healthcheck and --wait to ensure MySQL is ready before tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests share the same database, so they need to run sequentially to
avoid conflicts. Unlike the realworld example which uses mocked
services, these tests use a real MySQL database.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@B4nan B4nan merged commit b619919 into master Mar 12, 2026
2 checks 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