62 lines
2.1 KiB
TypeScript
62 lines
2.1 KiB
TypeScript
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> =
|
|
Definition extends HousekeepingCommand<infer _Input, infer _Output>
|
|
? Definition
|
|
: never;
|
|
|
|
type HousekeepingCommandTuple<Commands extends readonly unknown[]> =
|
|
Commands & {
|
|
readonly [Index in keyof Commands]: PreserveHousekeepingCommand<
|
|
Commands[Index]
|
|
>;
|
|
};
|
|
|
|
export function defineHousekeepingCommands<
|
|
const Commands extends readonly unknown[],
|
|
>(...commands: HousekeepingCommandTuple<Commands>): Commands {
|
|
return commands;
|
|
}
|
|
|
|
export function registerHousekeepingCommands<
|
|
const Commands extends readonly unknown[],
|
|
>(commands: HousekeepingCommandTuple<Commands>): void {
|
|
for (const command of commands) {
|
|
registerHousekeepingCommand(
|
|
command as unknown as HousekeepingCommand<unknown, unknown>,
|
|
);
|
|
}
|
|
}
|
|
|
|
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;
|