mirror of
https://github.com/hotomoe/hotomoe
synced 2024-12-16 15:48:09 +09:00
520 lines
14 KiB
TypeScript
520 lines
14 KiB
TypeScript
|
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 {}
|