mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-03-06 19:54:39 +08:00
Migrate files to ts (#2581)
This commit is contained in:
parent
8620b45ea7
commit
8c5b88ef5d
7 changed files with 43 additions and 4 deletions
|
@ -6,7 +6,7 @@ const CRON_SCHEDULE = "0 0 0 * * *";
|
|||
const LOG_MAX_AGE_DAYS = 7;
|
||||
const LOG_MAX_AGE_MILLISECONDS = LOG_MAX_AGE_DAYS * 24 * 60 * 60 * 1000;
|
||||
|
||||
async function deleteOldLogs() {
|
||||
async function deleteOldLogs(): Promise<void> {
|
||||
const data = await db
|
||||
.collection("logs")
|
||||
.deleteMany({ timestamp: { $lt: Date.now() - LOG_MAX_AGE_MILLISECONDS } });
|
|
@ -1,16 +1,19 @@
|
|||
import { CronJob } from "cron";
|
||||
import BotDAO from "../dao/bot";
|
||||
import { Document, WithId } from "mongodb";
|
||||
import LeaderboardsDAO from "../dao/leaderboards";
|
||||
|
||||
const CRON_SCHEDULE = "30 4/5 * * * *";
|
||||
const RECENT_AGE_MINUTES = 10;
|
||||
const RECENT_AGE_MILLISECONDS = RECENT_AGE_MINUTES * 60 * 1000;
|
||||
|
||||
async function getTop10(leaderboardTime) {
|
||||
async function getTop10(leaderboardTime: string): Promise<WithId<Document>[]> {
|
||||
return await LeaderboardsDAO.get("time", leaderboardTime, "english", 0, 10);
|
||||
}
|
||||
|
||||
async function updateLeaderboardAndNotifyChanges(leaderboardTime) {
|
||||
async function updateLeaderboardAndNotifyChanges(
|
||||
leaderboardTime: string
|
||||
): Promise<void> {
|
||||
const top10BeforeUpdate = await getTop10(leaderboardTime);
|
||||
|
||||
const previousRecordsMap = Object.fromEntries(
|
||||
|
@ -46,7 +49,7 @@ async function updateLeaderboardAndNotifyChanges(leaderboardTime) {
|
|||
}
|
||||
}
|
||||
|
||||
async function updateLeaderboards() {
|
||||
async function updateLeaderboards(): Promise<void> {
|
||||
await updateLeaderboardAndNotifyChanges("15");
|
||||
await updateLeaderboardAndNotifyChanges("60");
|
||||
}
|
34
backend/package-lock.json
generated
34
backend/package-lock.json
generated
|
@ -30,6 +30,8 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@types/cors": "2.8.12",
|
||||
"@types/cron": "1.7.3",
|
||||
"@types/lodash": "4.14.178",
|
||||
"@types/mongodb": "4.0.7",
|
||||
"@types/node": "17.0.18",
|
||||
"@types/uuid": "8.3.4"
|
||||
|
@ -434,6 +436,16 @@
|
|||
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/cron": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/cron/-/cron-1.7.3.tgz",
|
||||
"integrity": "sha512-iPmUXyIJG1Js+ldPYhOQcYU3kCAQ2FWrSkm1FJPoii2eYSn6wEW6onPukNTT0bfiflexNSRPl6KWmAIqS+36YA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"moment": ">=2.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/express": {
|
||||
"version": "4.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
|
||||
|
@ -472,6 +484,12 @@
|
|||
"@types/express": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/lodash": {
|
||||
"version": "4.14.178",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz",
|
||||
"integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/long": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
|
||||
|
@ -3867,6 +3885,16 @@
|
|||
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/cron": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/cron/-/cron-1.7.3.tgz",
|
||||
"integrity": "sha512-iPmUXyIJG1Js+ldPYhOQcYU3kCAQ2FWrSkm1FJPoii2eYSn6wEW6onPukNTT0bfiflexNSRPl6KWmAIqS+36YA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"moment": ">=2.14.0"
|
||||
}
|
||||
},
|
||||
"@types/express": {
|
||||
"version": "4.17.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
|
||||
|
@ -3905,6 +3933,12 @@
|
|||
"@types/express": "*"
|
||||
}
|
||||
},
|
||||
"@types/lodash": {
|
||||
"version": "4.14.178",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz",
|
||||
"integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/long": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@types/cors": "2.8.12",
|
||||
"@types/cron": "1.7.3",
|
||||
"@types/lodash": "4.14.178",
|
||||
"@types/mongodb": "4.0.7",
|
||||
"@types/node": "17.0.18",
|
||||
"@types/uuid": "8.3.4"
|
||||
|
|
Loading…
Reference in a new issue