29 lines
782 B
TypeScript
29 lines
782 B
TypeScript
import logger from "../../logger";
|
|
import { Client } from "discord.js";
|
|
|
|
import { IJob } from "../../interfaces/Job";
|
|
|
|
import listDir from "../../helpers/listDir";
|
|
|
|
import schedule from "node-schedule";
|
|
|
|
export const start = async (client: Client) => {
|
|
logger.info("Starting schedule manager...");
|
|
|
|
const jobNames = await listDir("jobs");
|
|
if (!jobNames) return logger.info("No jobs found");
|
|
|
|
await Promise.all(
|
|
jobNames.map(async (jobName) => {
|
|
const job: IJob = await import(`../../jobs/${jobName}`);
|
|
|
|
schedule.scheduleJob(job.options.schedule, async () => {
|
|
logger.info(`Executed job ${jobName}!`);
|
|
await job.execute(client);
|
|
});
|
|
})
|
|
).then(async () => {
|
|
const list = schedule.scheduledJobs;
|
|
logger.silly(list);
|
|
});
|
|
};
|