From 2fa8e8bf431e415f68ffc02e3cc6bc42b270959f Mon Sep 17 00:00:00 2001 From: Nix Krystik Date: Mon, 21 Sep 2026 22:06:09 +0800 Subject: [PATCH] (types): Re-implemented the `Task` type. --- src/index.ts | 4 ++-- src/tasks/checkExpiredBansTask.ts | 11 +++++++---- src/tasks/closeStaleTicketsTask.ts | 9 ++++++--- src/tasks/pruneOldMessagesTask.ts | 11 +++++++---- src/types/index.d.ts | 1 + src/types/task.d.ts | 8 ++++++++ 6 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 src/types/task.d.ts diff --git a/src/index.ts b/src/index.ts index 55a32cd..f4da48c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -140,8 +140,8 @@ client.on('clientReady', async () => { await initializeWebserver(client); tasks.forEach(async (task) => { - if (task.firstRun) await task.handler(client); - setInterval(async () => await task.handler(client), task.interval); + if (task.firstRun) await task.handle(client); + setInterval(async () => await task.handle(client).catch((error) => console.log(error)), task.interval); }); events.forEach(event => diff --git a/src/tasks/checkExpiredBansTask.ts b/src/tasks/checkExpiredBansTask.ts index 125ad29..8e0c83a 100644 --- a/src/tasks/checkExpiredBansTask.ts +++ b/src/tasks/checkExpiredBansTask.ts @@ -1,11 +1,14 @@ import { Client } from 'discord.js'; import { checkExpiredBans } from '../utils'; +import { Task } from '../types'; -export default { +const task: Task = { interval: 300000, firstRun: true, - - handler: async (context: Client) => { + + handle: async (context: Client) => { await checkExpiredBans(context); }, -}; +} + +export default task; \ No newline at end of file diff --git a/src/tasks/closeStaleTicketsTask.ts b/src/tasks/closeStaleTicketsTask.ts index ba0d045..9f80785 100644 --- a/src/tasks/closeStaleTicketsTask.ts +++ b/src/tasks/closeStaleTicketsTask.ts @@ -1,11 +1,14 @@ import { Client } from 'discord.js'; import { closeOldTickets } from '../utils'; +import { Task } from '../types'; -export default { +const task: Task = { interval: 3.6e6, firstRun: true, - - handler: async (context: Client) => { + + handle: async (context: Client) => { await closeOldTickets(context); }, }; + +export default task; diff --git a/src/tasks/pruneOldMessagesTask.ts b/src/tasks/pruneOldMessagesTask.ts index c10d3a0..c5a3456 100644 --- a/src/tasks/pruneOldMessagesTask.ts +++ b/src/tasks/pruneOldMessagesTask.ts @@ -1,11 +1,14 @@ import { Client } from 'discord.js'; import { Database } from '../shared/Database'; +import { Task } from '../types'; -export default { +const task: Task = { interval: 3.6e6, firstRun: true, - - handler: async (context: Client) => { + + handle: async (context: Client) => { await Database.pruneOldMessages(); }, -}; +} + +export default task; diff --git a/src/types/index.d.ts b/src/types/index.d.ts index 3d0341d..c2dc244 100644 --- a/src/types/index.d.ts +++ b/src/types/index.d.ts @@ -3,3 +3,4 @@ export * from './database-types.d'; export * from './e621-types.d'; export * from './handler.d'; export * from './helper-types.d'; +export * from './task.d'; \ No newline at end of file diff --git a/src/types/task.d.ts b/src/types/task.d.ts new file mode 100644 index 0000000..f002501 --- /dev/null +++ b/src/types/task.d.ts @@ -0,0 +1,8 @@ +import { Client } from "discord.js"; + +export interface Task { + interval: number; + firstRun: boolean; + + handle(context: Client): Promise; +} \ No newline at end of file