import "server-only"; import { CONTENT_COMMANDS } from "../../domains/content/commands/content-commands"; import { ECONOMY_COMMANDS } from "../../domains/economy/commands/economy-commands"; import { HOTEL_COMMANDS } from "../../domains/hotel/commands/hotel-commands"; import { STUDIO_COMMANDS } from "../../domains/hotel/commands/studio-commands"; import { COMMUNITY_COMMANDS } from "../../domains/people/commands/community-commands"; import { MODERATION_COMMANDS } from "../../domains/people/commands/moderation-commands"; import { SUPPORT_COMMANDS } from "../../domains/people/commands/support-commands"; import { USER_COMMANDS } from "../../domains/people/commands/user-commands"; import { SYSTEM_COMMANDS } from "../../domains/system/commands/system-commands"; import type { HousekeepingCommand } from "./registry"; import { registerHousekeepingCommand, sealHousekeepingCommandRegistry, } from "./registry"; type PreserveHousekeepingCommand = Definition extends HousekeepingCommand ? Definition : never; type HousekeepingCommandTuple = Commands & { readonly [Index in keyof Commands]: PreserveHousekeepingCommand< Commands[Index] >; }; export function defineHousekeepingCommands< const Commands extends readonly unknown[], >(...commands: HousekeepingCommandTuple): Commands { return commands; } export function registerHousekeepingCommands< const Commands extends readonly unknown[], >(commands: HousekeepingCommandTuple): void { for (const command of commands) { registerHousekeepingCommand( command as unknown as HousekeepingCommand, ); } } const currentHousekeepingCommands = defineHousekeepingCommands( ...CONTENT_COMMANDS, ...ECONOMY_COMMANDS, ...HOTEL_COMMANDS, ...STUDIO_COMMANDS, ...USER_COMMANDS, ...COMMUNITY_COMMANDS, ...SUPPORT_COMMANDS, ...MODERATION_COMMANDS, ...SYSTEM_COMMANDS, ); registerHousekeepingCommands(currentHousekeepingCommands); sealHousekeepingCommandRegistry(); export const housekeepingCommandRegistryReady = true;