pnp-scheduler/source/deploy.ts
2025-06-18 22:53:54 +02:00

38 lines
No EOL
1.3 KiB
TypeScript

import {Environment} from "./Environment";
import {DatabaseConnection} from "./Database/DatabaseConnection";
import {DatabaseUpdater} from "./Database/DatabaseUpdater";
import Definitions from "./Database/definitions";
import {Container} from "./Container/Container";
import {ServiceHint, Services} from "./Container/Services";
import {Logger} from "log4js";
import {IconDeployer} from "./Icons/IconDeployer";
import {DiscordClient} from "./Discord/DiscordClient";
import {IconCache} from "./Icons/IconCache";
import {CommandDeployer} from "./Discord/CommandDeployer";
const container = Container.getInstance();
Services.setup(container, ServiceHint.Deploy)
const environment = container.get<Environment>(Environment.name);
const logger = container.get<Logger>("logger");
// Construct and prepare an instance of the REST module
const client = container.get<DiscordClient>(DiscordClient.name);
client.connectRESTClient(environment.discord.token)
logger.log("Ensuring Database...");
const updater = new DatabaseUpdater(container.get<DatabaseConnection>(DatabaseConnection.name));
updater.ensureAvaliablity(Definitions);
logger.log("Ensuring icons...");
(async () => {
const iconCache = container.get<IconCache>(IconCache.name);
await iconCache.populate();
const deployer = new IconDeployer(
iconCache
);
deployer.ensureExistance()
})()