upgrade to typeorm 1.0#3193
Open
bcb37 wants to merge 4 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR upgrades the backend dependency stack to TypeORM ^1.0.0 (and @nestjs/typeorm ^11.0.1) and updates backend services/repositories plus unit/integration tests (and one frontend view) to match new TypeORM APIs (e.g., findBy, object-based relations/select, EntityManager.dataSource). It also removes typeorm-seeding and related seed scripts/factories.
Changes:
- Bump TypeORM / NestJS TypeORM dependency versions and regenerate lockfile.
- Refactor TypeORM usage across services/repositories/tests (deprecated APIs → new APIs; relation/select syntax updates).
- Replace feature-flag exposure count mapping to use a computed
exposureCountfield and update UI/tests accordingly; removetypeorm-seedingscaffolding.
Reviewed changes
Copilot reviewed 46 out of 47 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Dependency resolution updates for TypeORM/NestJS TypeORM and transitive packages. |
| packages/frontend/.../feature-flag-root-section-card-table.component.html | Display exposureCount instead of featureFlagExposures. |
| packages/backend/test/utils/database.ts | Update test DataSource options typing + migrations call options. |
| packages/backend/test/unit/services/UserService.test.ts | Update mocked repo API from findByIds → findBy. |
| packages/backend/test/unit/services/ScheduledJobService.test.ts | Update TypeORM relations expectation to object form. |
| packages/backend/test/unit/services/MoocletRewardsService.test.ts | Update relations matcher to object form. |
| packages/backend/test/unit/services/FeatureFlagService.test.ts | Update mocked repo API from findByIds → findBy. |
| packages/backend/test/unit/services/ExperimentService.test.ts | Update mocked repo API from findByIds → findBy. |
| packages/backend/test/unit/repositories/IndividualEnrollmentRepository.test.ts | Update select expectation to object form. |
| packages/backend/test/unit/repositories/GroupEnrollmentRepository.test.ts | Update select expectation to object form. |
| packages/backend/test/unit/repositories/ExperimentRepository.test.ts | Update EntityManager access from .connection → .dataSource. |
| packages/backend/test/unit/repositories/AnalyticsRepository.test.ts | Update relations expectation to object form. |
| packages/backend/test/unit/controllers/SegmentController.test.ts | Remove TypeORM useContainer usage in controller test setup. |
| packages/backend/test/integration/FeatureFlags/FeatureFlagInclusionExclusion.ts | Assert on exposureCount instead of featureFlagExposures. |
| packages/backend/test/integration/ExperimentUser/NoExperimentUserOnAssignment.ts | Fix async expectation to resolves.toEqual([]). |
| packages/backend/test/integration/Experiment/dataLog/RepeatedMeasure.ts | Update relations option to object form. |
| packages/backend/test/integration/Experiment/dataLog/CreateLog.ts | Update relations option to object form. |
| packages/backend/test/integration/Experiment/analytics/MonitoredPointForExport.ts | Replace getRepository usage with DI’d DataSource. |
| packages/backend/src/loaders/typeormLoader.ts | Migrate loader configuration to TypeORM DataSourceOptions typing. |
| packages/backend/src/database/seeds/User.ts | Remove TypeORM seeding entrypoint (deleted). |
| packages/backend/src/database/seeds/Experiment.seed.ts | Remove TypeORM seeding entrypoint (deleted). |
| packages/backend/src/database/factories/ExperimentUser.ts | Remove TypeORM seeding factory (deleted). |
| packages/backend/src/database/factories/ExperimentSegment.factory.ts | Remove TypeORM seeding factory (deleted). |
| packages/backend/src/database/factories/ExperimentCondition.factory.ts | Remove TypeORM seeding factory (deleted). |
| packages/backend/src/database/factories/Experiment.factory.ts | Remove TypeORM seeding factory (deleted). |
| packages/backend/src/api/services/UserService.ts | Update user queries to findBy; adjust get-by-email. |
| packages/backend/src/api/services/SegmentService.ts | Update relations option to object form. |
| packages/backend/src/api/services/ScheduledJobService.ts | Update relations option to object form for scheduled-job queries. |
| packages/backend/src/api/services/QueryService.ts | Update deep relations option to object form. |
| packages/backend/src/api/services/MoocletRewardsService.ts | Update nested relations option to object form. |
| packages/backend/src/api/services/MoocletExperimentService.ts | Update relations option to object form. |
| packages/backend/src/api/services/ImportExportService.ts | Convert large relations list to structured object. |
| packages/backend/src/api/services/FeatureFlagService.ts | Replace relation-count mapping with computed exposureCount; update select/relations/find usage. |
| packages/backend/src/api/services/ExperimentUserService.ts | Update relations option to object form. |
| packages/backend/src/api/services/ExperimentService.ts | Update findByIds usage and relations option shapes. |
| packages/backend/src/api/services/ExperimentAssignmentService.ts | Update nested relations option to object form. |
| packages/backend/src/api/services/CheckService.ts | Update relations option to object form. |
| packages/backend/src/api/services/AnalyticsService.ts | Update relations option to object form. |
| packages/backend/src/api/repositories/IndividualEnrollmentRepository.ts | Update select option to object form. |
| packages/backend/src/api/repositories/GroupEnrollmentRepository.ts | Update select option to object form. |
| packages/backend/src/api/repositories/FeatureFlagSegmentInclusionRepository.ts | Replace onConflict(DO NOTHING) with .orIgnore(). |
| packages/backend/src/api/repositories/FeatureFlagSegmentExclusionRepository.ts | Replace onConflict(DO NOTHING) with .orIgnore(). |
| packages/backend/src/api/repositories/ExperimentRepository.ts | Update EntityManager access from .connection → .dataSource. |
| packages/backend/src/api/repositories/AnalyticsRepository.ts | Update relations option to object form; minor whitespace changes. |
| packages/backend/src/api/models/FeatureFlag.ts | Add exposureCount VirtualColumn for computed exposure count mapping. |
| packages/backend/package.json | Bump TypeORM dependency; remove typeorm-seeding scripts/dependency. |
| packages/backend/package-scripts.js | Remove db seed/drop script entries tied to typeorm-seeding. |
Comments suppressed due to low confidence (1)
packages/backend/src/api/services/UserService.ts:53
findBy()returns an array, so!isUserExistswill always be false (even when no users are found) and the welcome email will never be sent. Check the array length instead.
const isUserExists = await this.userRepository.findBy({ email: user.email });
const response = await this.userRepository.upsertUser(user);
if (!isUserExists && response) {
this.sendWelcomeEmail(user.email, logger);
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.