Files
Checkmate/server/src/init/services.ts
T

114 lines
3.1 KiB
TypeScript
Raw Normal View History

2025-11-14 19:10:34 +00:00
import got from "got";
2025-11-13 13:47:26 -08:00
import {
CheckService,
InviteService,
MaintenanceService,
MonitorStatsService,
NotificationChannelService,
UserService,
DiscordService,
EmailService,
SlackService,
WebhookService,
NetworkService,
StatusService,
NotificationService,
JobQueue,
JobGenerator,
AuthService,
MonitorService,
QueueService,
ServiceRegistry,
TeamService,
RoleService,
TeamMemberService,
StatusPageService,
DiagnosticService,
RecoveryService,
IncidentService,
2025-11-19 00:00:08 +00:00
SettingsService,
2025-12-02 00:20:09 +00:00
StripeService,
2025-12-01 00:35:53 +00:00
BillingService,
2025-11-13 13:47:26 -08:00
} from "@/services/index.js";
2025-12-14 16:41:38 +00:00
import { EntitlementsFactory } from "@/services/system/EntitlementsService.js";
2025-11-13 13:47:26 -08:00
export const initServices = async () => {
const checkService = new CheckService();
const inviteService = new InviteService();
const maintenanceService = new MaintenanceService();
const monitorStatsService = new MonitorStatsService();
const notificationChannelService = new NotificationChannelService();
const userService = new UserService();
const discordService = new DiscordService();
const slackService = new SlackService();
const webhookService = new WebhookService();
2025-11-14 19:10:34 +00:00
const networkService = new NetworkService(got);
2025-11-13 13:47:26 -08:00
const statusService = new StatusService();
2025-11-20 21:17:52 +00:00
const settingsService = new SettingsService();
2025-12-02 00:20:09 +00:00
const stripeService = new StripeService();
2025-12-01 00:35:53 +00:00
const billingService = new BillingService();
2025-11-20 21:17:52 +00:00
const emailService = new EmailService(userService, settingsService);
settingsService.setEmailService(emailService);
const notificationService = new NotificationService(
userService,
settingsService
);
2025-11-13 13:47:26 -08:00
const incidentService = new IncidentService();
const jobGenerator = new JobGenerator(
networkService,
checkService,
monitorStatsService,
statusService,
notificationService,
incidentService,
maintenanceService
);
const jobQueue = await JobQueue.create(jobGenerator);
2025-12-14 16:41:38 +00:00
const entitlementsProvider = EntitlementsFactory.create();
const authService = new AuthService(jobQueue, entitlementsProvider);
2025-11-13 13:47:26 -08:00
const monitorService = new MonitorService(jobQueue);
const queueService = new QueueService(jobQueue);
const teamService = new TeamService(jobQueue);
const roleService = new RoleService();
const teamMemberService = new TeamMemberService();
const statusPageService = new StatusPageService();
const diagnosticService = new DiagnosticService(jobQueue);
const recoveryService = new RecoveryService();
const services = {
checkService,
inviteService,
maintenanceService,
monitorStatsService,
notificationChannelService,
userService,
discordService,
emailService,
slackService,
webhookService,
networkService,
statusService,
notificationService,
jobGenerator,
jobQueue,
authService,
monitorService,
queueService,
teamService,
roleService,
teamMemberService,
statusPageService,
diagnosticService,
recoveryService,
incidentService,
2025-11-19 00:00:08 +00:00
settingsService,
2025-12-01 00:35:53 +00:00
billingService,
2025-12-02 00:20:09 +00:00
stripeService,
2025-11-13 13:47:26 -08:00
};
Object.values(services).forEach((service) => {
ServiceRegistry.register(service.SERVICE_NAME, service);
});
return services;
};