summaryrefslogtreecommitdiff
path: root/packages/backend/src/RepositoryModule.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/RepositoryModule.ts')
-rw-r--r--packages/backend/src/RepositoryModule.ts519
1 files changed, 519 insertions, 0 deletions
diff --git a/packages/backend/src/RepositoryModule.ts b/packages/backend/src/RepositoryModule.ts
new file mode 100644
index 0000000000..0e3ef58992
--- /dev/null
+++ b/packages/backend/src/RepositoryModule.ts
@@ -0,0 +1,519 @@
+import { Module } from '@nestjs/common';
+import { DI } from '@/di-symbols.js';
+import { User, Note, Announcement, AnnouncementRead, App, NoteFavorite, NoteThreadMuting, NoteReaction, NoteUnread, Notification, Poll, PollVote, UserProfile, UserKeypair, UserPending, AttestationChallenge, UserSecurityKey, UserPublickey, UserList, UserListJoining, UserGroup, UserGroupJoining, UserGroupInvitation, UserNotePining, UserIp, UsedUsername, Following, FollowRequest, Instance, Emoji, DriveFile, DriveFolder, Meta, Muting, Blocking, SwSubscription, Hashtag, AbuseUserReport, RegistrationTicket, AuthSession, AccessToken, Signin, MessagingMessage, Page, PageLike, GalleryPost, GalleryLike, ModerationLog, Clip, ClipNote, Antenna, AntennaNote, PromoNote, PromoRead, Relay, MutedNote, Channel, ChannelFollowing, ChannelNotePining, RegistryItem, Webhook, Ad, PasswordResetRequest } from './models/index.js';
+import type { DataSource } from 'typeorm';
+import type { Provider } from '@nestjs/common';
+
+const $usersRepository: Provider = {
+ provide: DI.usersRepository,
+ useFactory: (db: DataSource) => db.getRepository(User),
+ inject: [DI.db],
+};
+
+const $notesRepository: Provider = {
+ provide: DI.notesRepository,
+ useFactory: (db: DataSource) => db.getRepository(Note),
+ inject: [DI.db],
+};
+
+const $announcementsRepository: Provider = {
+ provide: DI.announcementsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Announcement),
+ inject: [DI.db],
+};
+
+const $announcementReadsRepository: Provider = {
+ provide: DI.announcementReadsRepository,
+ useFactory: (db: DataSource) => db.getRepository(AnnouncementRead),
+ inject: [DI.db],
+};
+
+const $appsRepository: Provider = {
+ provide: DI.appsRepository,
+ useFactory: (db: DataSource) => db.getRepository(App),
+ inject: [DI.db],
+};
+
+const $noteFavoritesRepository: Provider = {
+ provide: DI.noteFavoritesRepository,
+ useFactory: (db: DataSource) => db.getRepository(NoteFavorite),
+ inject: [DI.db],
+};
+
+const $noteThreadMutingsRepository: Provider = {
+ provide: DI.noteThreadMutingsRepository,
+ useFactory: (db: DataSource) => db.getRepository(NoteThreadMuting),
+ inject: [DI.db],
+};
+
+const $noteReactionsRepository: Provider = {
+ provide: DI.noteReactionsRepository,
+ useFactory: (db: DataSource) => db.getRepository(NoteReaction),
+ inject: [DI.db],
+};
+
+const $noteUnreadsRepository: Provider = {
+ provide: DI.noteUnreadsRepository,
+ useFactory: (db: DataSource) => db.getRepository(NoteUnread),
+ inject: [DI.db],
+};
+
+const $pollsRepository: Provider = {
+ provide: DI.pollsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Poll),
+ inject: [DI.db],
+};
+
+const $pollVotesRepository: Provider = {
+ provide: DI.pollVotesRepository,
+ useFactory: (db: DataSource) => db.getRepository(PollVote),
+ inject: [DI.db],
+};
+
+const $userProfilesRepository: Provider = {
+ provide: DI.userProfilesRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserProfile),
+ inject: [DI.db],
+};
+
+const $userKeypairsRepository: Provider = {
+ provide: DI.userKeypairsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserKeypair),
+ inject: [DI.db],
+};
+
+const $userPendingsRepository: Provider = {
+ provide: DI.userPendingsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserPending),
+ inject: [DI.db],
+};
+
+const $attestationChallengesRepository: Provider = {
+ provide: DI.attestationChallengesRepository,
+ useFactory: (db: DataSource) => db.getRepository(AttestationChallenge),
+ inject: [DI.db],
+};
+
+const $userSecurityKeysRepository: Provider = {
+ provide: DI.userSecurityKeysRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserSecurityKey),
+ inject: [DI.db],
+};
+
+const $userPublickeysRepository: Provider = {
+ provide: DI.userPublickeysRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserPublickey),
+ inject: [DI.db],
+};
+
+const $userListsRepository: Provider = {
+ provide: DI.userListsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserList),
+ inject: [DI.db],
+};
+
+const $userListJoiningsRepository: Provider = {
+ provide: DI.userListJoiningsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserListJoining),
+ inject: [DI.db],
+};
+
+const $userGroupsRepository: Provider = {
+ provide: DI.userGroupsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserGroup),
+ inject: [DI.db],
+};
+
+const $userGroupJoiningsRepository: Provider = {
+ provide: DI.userGroupJoiningsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserGroupJoining),
+ inject: [DI.db],
+};
+
+const $userGroupInvitationsRepository: Provider = {
+ provide: DI.userGroupInvitationsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserGroupInvitation),
+ inject: [DI.db],
+};
+
+const $userNotePiningsRepository: Provider = {
+ provide: DI.userNotePiningsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserNotePining),
+ inject: [DI.db],
+};
+
+const $userIpsRepository: Provider = {
+ provide: DI.userIpsRepository,
+ useFactory: (db: DataSource) => db.getRepository(UserIp),
+ inject: [DI.db],
+};
+
+const $usedUsernamesRepository: Provider = {
+ provide: DI.usedUsernamesRepository,
+ useFactory: (db: DataSource) => db.getRepository(UsedUsername),
+ inject: [DI.db],
+};
+
+const $followingsRepository: Provider = {
+ provide: DI.followingsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Following),
+ inject: [DI.db],
+};
+
+const $followRequestsRepository: Provider = {
+ provide: DI.followRequestsRepository,
+ useFactory: (db: DataSource) => db.getRepository(FollowRequest),
+ inject: [DI.db],
+};
+
+const $instancesRepository: Provider = {
+ provide: DI.instancesRepository,
+ useFactory: (db: DataSource) => db.getRepository(Instance),
+ inject: [DI.db],
+};
+
+const $emojisRepository: Provider = {
+ provide: DI.emojisRepository,
+ useFactory: (db: DataSource) => db.getRepository(Emoji),
+ inject: [DI.db],
+};
+
+const $driveFilesRepository: Provider = {
+ provide: DI.driveFilesRepository,
+ useFactory: (db: DataSource) => db.getRepository(DriveFile),
+ inject: [DI.db],
+};
+
+const $driveFoldersRepository: Provider = {
+ provide: DI.driveFoldersRepository,
+ useFactory: (db: DataSource) => db.getRepository(DriveFolder),
+ inject: [DI.db],
+};
+
+const $notificationsRepository: Provider = {
+ provide: DI.notificationsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Notification),
+ inject: [DI.db],
+};
+
+const $metasRepository: Provider = {
+ provide: DI.metasRepository,
+ useFactory: (db: DataSource) => db.getRepository(Meta),
+ inject: [DI.db],
+};
+
+const $mutingsRepository: Provider = {
+ provide: DI.mutingsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Muting),
+ inject: [DI.db],
+};
+
+const $blockingsRepository: Provider = {
+ provide: DI.blockingsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Blocking),
+ inject: [DI.db],
+};
+
+const $swSubscriptionsRepository: Provider = {
+ provide: DI.swSubscriptionsRepository,
+ useFactory: (db: DataSource) => db.getRepository(SwSubscription),
+ inject: [DI.db],
+};
+
+const $hashtagsRepository: Provider = {
+ provide: DI.hashtagsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Hashtag),
+ inject: [DI.db],
+};
+
+const $abuseUserReportsRepository: Provider = {
+ provide: DI.abuseUserReportsRepository,
+ useFactory: (db: DataSource) => db.getRepository(AbuseUserReport),
+ inject: [DI.db],
+};
+
+const $registrationTicketsRepository: Provider = {
+ provide: DI.registrationTicketsRepository,
+ useFactory: (db: DataSource) => db.getRepository(RegistrationTicket),
+ inject: [DI.db],
+};
+
+const $authSessionsRepository: Provider = {
+ provide: DI.authSessionsRepository,
+ useFactory: (db: DataSource) => db.getRepository(AuthSession),
+ inject: [DI.db],
+};
+
+const $accessTokensRepository: Provider = {
+ provide: DI.accessTokensRepository,
+ useFactory: (db: DataSource) => db.getRepository(AccessToken),
+ inject: [DI.db],
+};
+
+const $signinsRepository: Provider = {
+ provide: DI.signinsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Signin),
+ inject: [DI.db],
+};
+
+const $messagingMessagesRepository: Provider = {
+ provide: DI.messagingMessagesRepository,
+ useFactory: (db: DataSource) => db.getRepository(MessagingMessage),
+ inject: [DI.db],
+};
+
+const $pagesRepository: Provider = {
+ provide: DI.pagesRepository,
+ useFactory: (db: DataSource) => db.getRepository(Page),
+ inject: [DI.db],
+};
+
+const $pageLikesRepository: Provider = {
+ provide: DI.pageLikesRepository,
+ useFactory: (db: DataSource) => db.getRepository(PageLike),
+ inject: [DI.db],
+};
+
+const $galleryPostsRepository: Provider = {
+ provide: DI.galleryPostsRepository,
+ useFactory: (db: DataSource) => db.getRepository(GalleryPost),
+ inject: [DI.db],
+};
+
+const $galleryLikesRepository: Provider = {
+ provide: DI.galleryLikesRepository,
+ useFactory: (db: DataSource) => db.getRepository(GalleryLike),
+ inject: [DI.db],
+};
+
+const $moderationLogsRepository: Provider = {
+ provide: DI.moderationLogsRepository,
+ useFactory: (db: DataSource) => db.getRepository(ModerationLog),
+ inject: [DI.db],
+};
+
+const $clipsRepository: Provider = {
+ provide: DI.clipsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Clip),
+ inject: [DI.db],
+};
+
+const $clipNotesRepository: Provider = {
+ provide: DI.clipNotesRepository,
+ useFactory: (db: DataSource) => db.getRepository(ClipNote),
+ inject: [DI.db],
+};
+
+const $antennasRepository: Provider = {
+ provide: DI.antennasRepository,
+ useFactory: (db: DataSource) => db.getRepository(Antenna),
+ inject: [DI.db],
+};
+
+const $antennaNotesRepository: Provider = {
+ provide: DI.antennaNotesRepository,
+ useFactory: (db: DataSource) => db.getRepository(AntennaNote),
+ inject: [DI.db],
+};
+
+const $promoNotesRepository: Provider = {
+ provide: DI.promoNotesRepository,
+ useFactory: (db: DataSource) => db.getRepository(PromoNote),
+ inject: [DI.db],
+};
+
+const $promoReadsRepository: Provider = {
+ provide: DI.promoReadsRepository,
+ useFactory: (db: DataSource) => db.getRepository(PromoRead),
+ inject: [DI.db],
+};
+
+const $relaysRepository: Provider = {
+ provide: DI.relaysRepository,
+ useFactory: (db: DataSource) => db.getRepository(Relay),
+ inject: [DI.db],
+};
+
+const $mutedNotesRepository: Provider = {
+ provide: DI.mutedNotesRepository,
+ useFactory: (db: DataSource) => db.getRepository(MutedNote),
+ inject: [DI.db],
+};
+
+const $channelsRepository: Provider = {
+ provide: DI.channelsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Channel),
+ inject: [DI.db],
+};
+
+const $channelFollowingsRepository: Provider = {
+ provide: DI.channelFollowingsRepository,
+ useFactory: (db: DataSource) => db.getRepository(ChannelFollowing),
+ inject: [DI.db],
+};
+
+const $channelNotePiningsRepository: Provider = {
+ provide: DI.channelNotePiningsRepository,
+ useFactory: (db: DataSource) => db.getRepository(ChannelNotePining),
+ inject: [DI.db],
+};
+
+const $registryItemsRepository: Provider = {
+ provide: DI.registryItemsRepository,
+ useFactory: (db: DataSource) => db.getRepository(RegistryItem),
+ inject: [DI.db],
+};
+
+const $webhooksRepository: Provider = {
+ provide: DI.webhooksRepository,
+ useFactory: (db: DataSource) => db.getRepository(Webhook),
+ inject: [DI.db],
+};
+
+const $adsRepository: Provider = {
+ provide: DI.adsRepository,
+ useFactory: (db: DataSource) => db.getRepository(Ad),
+ inject: [DI.db],
+};
+
+const $passwordResetRequestsRepository: Provider = {
+ provide: DI.passwordResetRequestsRepository,
+ useFactory: (db: DataSource) => db.getRepository(PasswordResetRequest),
+ inject: [DI.db],
+};
+
+@Module({
+ imports: [
+ ],
+ providers: [
+ $usersRepository,
+ $notesRepository,
+ $announcementsRepository,
+ $announcementReadsRepository,
+ $appsRepository,
+ $noteFavoritesRepository,
+ $noteThreadMutingsRepository,
+ $noteReactionsRepository,
+ $noteUnreadsRepository,
+ $pollsRepository,
+ $pollVotesRepository,
+ $userProfilesRepository,
+ $userKeypairsRepository,
+ $userPendingsRepository,
+ $attestationChallengesRepository,
+ $userSecurityKeysRepository,
+ $userPublickeysRepository,
+ $userListsRepository,
+ $userListJoiningsRepository,
+ $userGroupsRepository,
+ $userGroupJoiningsRepository,
+ $userGroupInvitationsRepository,
+ $userNotePiningsRepository,
+ $userIpsRepository,
+ $usedUsernamesRepository,
+ $followingsRepository,
+ $followRequestsRepository,
+ $instancesRepository,
+ $emojisRepository,
+ $driveFilesRepository,
+ $driveFoldersRepository,
+ $notificationsRepository,
+ $metasRepository,
+ $mutingsRepository,
+ $blockingsRepository,
+ $swSubscriptionsRepository,
+ $hashtagsRepository,
+ $abuseUserReportsRepository,
+ $registrationTicketsRepository,
+ $authSessionsRepository,
+ $accessTokensRepository,
+ $signinsRepository,
+ $messagingMessagesRepository,
+ $pagesRepository,
+ $pageLikesRepository,
+ $galleryPostsRepository,
+ $galleryLikesRepository,
+ $moderationLogsRepository,
+ $clipsRepository,
+ $clipNotesRepository,
+ $antennasRepository,
+ $antennaNotesRepository,
+ $promoNotesRepository,
+ $promoReadsRepository,
+ $relaysRepository,
+ $mutedNotesRepository,
+ $channelsRepository,
+ $channelFollowingsRepository,
+ $channelNotePiningsRepository,
+ $registryItemsRepository,
+ $webhooksRepository,
+ $adsRepository,
+ $passwordResetRequestsRepository,
+ ],
+ exports: [
+ $usersRepository,
+ $notesRepository,
+ $announcementsRepository,
+ $announcementReadsRepository,
+ $appsRepository,
+ $noteFavoritesRepository,
+ $noteThreadMutingsRepository,
+ $noteReactionsRepository,
+ $noteUnreadsRepository,
+ $pollsRepository,
+ $pollVotesRepository,
+ $userProfilesRepository,
+ $userKeypairsRepository,
+ $userPendingsRepository,
+ $attestationChallengesRepository,
+ $userSecurityKeysRepository,
+ $userPublickeysRepository,
+ $userListsRepository,
+ $userListJoiningsRepository,
+ $userGroupsRepository,
+ $userGroupJoiningsRepository,
+ $userGroupInvitationsRepository,
+ $userNotePiningsRepository,
+ $userIpsRepository,
+ $usedUsernamesRepository,
+ $followingsRepository,
+ $followRequestsRepository,
+ $instancesRepository,
+ $emojisRepository,
+ $driveFilesRepository,
+ $driveFoldersRepository,
+ $notificationsRepository,
+ $metasRepository,
+ $mutingsRepository,
+ $blockingsRepository,
+ $swSubscriptionsRepository,
+ $hashtagsRepository,
+ $abuseUserReportsRepository,
+ $registrationTicketsRepository,
+ $authSessionsRepository,
+ $accessTokensRepository,
+ $signinsRepository,
+ $messagingMessagesRepository,
+ $pagesRepository,
+ $pageLikesRepository,
+ $galleryPostsRepository,
+ $galleryLikesRepository,
+ $moderationLogsRepository,
+ $clipsRepository,
+ $clipNotesRepository,
+ $antennasRepository,
+ $antennaNotesRepository,
+ $promoNotesRepository,
+ $promoReadsRepository,
+ $relaysRepository,
+ $mutedNotesRepository,
+ $channelsRepository,
+ $channelFollowingsRepository,
+ $channelNotePiningsRepository,
+ $registryItemsRepository,
+ $webhooksRepository,
+ $adsRepository,
+ $passwordResetRequestsRepository,
+ ],
+})
+export class RepositoryModule {}