Skip to content

upgrade to typeorm 1.0#3193

Open
bcb37 wants to merge 4 commits into
devfrom
feature/typeorm1.0
Open

upgrade to typeorm 1.0#3193
bcb37 wants to merge 4 commits into
devfrom
feature/typeorm1.0

Conversation

@bcb37

@bcb37 bcb37 commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 exposureCount field and update UI/tests accordingly; remove typeorm-seeding scaffolding.

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 findByIdsfindBy.
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 findByIdsfindBy.
packages/backend/test/unit/services/ExperimentService.test.ts Update mocked repo API from findByIdsfindBy.
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 !isUserExists will 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.

Comment thread packages/backend/src/api/services/FeatureFlagService.ts Outdated
Comment thread packages/backend/src/api/services/ScheduledJobService.ts
Comment thread packages/backend/src/api/services/ScheduledJobService.ts
bcb37 and others added 2 commits June 24, 2026 12:43
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@bcb37 bcb37 requested a review from danoswaltCL June 24, 2026 16:48
@bcb37 bcb37 linked an issue Jun 24, 2026 that may be closed by this pull request
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.

Upgrade to typeorm 1.0

2 participants