import config from "./config.json" with { type: "json" }; import { MatrixClient, createClient, ClientEvent } from "matrix-js-sdk"; import { registerModules } from "./modules/module.js"; import { load, save } from "./store/store.js"; let matrixClient: MatrixClient | undefined = undefined; const initialize = async (): Promise => { matrixClient = createClient({ baseUrl: config.baseUrl, userId: config.userId, accessToken: config.auth.accessToken, deviceId: config.auth.deviceId, }); matrixClient.once(ClientEvent.Sync, function (state) { if (state === "PREPARED") { console.log("prepared"); } }); matrixClient.startClient({ initialSyncLimit: 1 }); return 0; }; const listen = async () => { if (!matrixClient) { return; } registerModules(matrixClient); }; const initCode = await initialize(); if (initCode > 0) { process.exit(initCode); } load(); setInterval(() => save(), 60000); listen();