42 lines
978 B
TypeScript
42 lines
978 B
TypeScript
import "dotenv/config";
|
|
import cron from "node-cron";
|
|
import { syncPlayers } from "./sync";
|
|
import { syncMongoToFirebase } from "./syncReverse"; // new function
|
|
|
|
async function main() {
|
|
const args = process.argv.slice(2);
|
|
|
|
if (args.includes("--one-time")) {
|
|
console.log("🔹 Running one-time Mongo → Firebase sync...");
|
|
try {
|
|
await syncMongoToFirebase();
|
|
console.log("✅ One-time sync finished");
|
|
} catch (e) {
|
|
console.error("One-time sync error:", e);
|
|
}
|
|
process.exit(0); // exit after one-time run
|
|
}
|
|
|
|
// Default: cron + immediate run
|
|
console.log("Firebase → Mongo sync running (every 15 minutes)");
|
|
|
|
// Run immediately
|
|
try {
|
|
await syncPlayers();
|
|
} catch (e) {
|
|
console.error("Players sync error:", e);
|
|
}
|
|
|
|
// Schedule every 15 minutes
|
|
cron.schedule("*/15 * * * *", async () => {
|
|
try {
|
|
await syncPlayers();
|
|
} catch (e) {
|
|
console.error("Players sync error:", e);
|
|
}
|
|
});
|
|
}
|
|
|
|
main();
|
|
|