Hello from MCP server

List Files | Just Commands | Repo | Logs

← back |
import { SQLiteDBConnection } from "@capacitor-community/sqlite";

export default function (db: SQLiteDBConnection, saveDb: () => Promise<void>) {
  return {
    save: async function (stringifiedState: string, id: number) {
      let stmt;
      let values;
      if (id == 0) {
        stmt = `insert into sessions (state) values (?);`;
        values = [stringifiedState];
      } else {
        stmt = `update sessions set state = ? where id = ?;`;
        values = [stringifiedState, id];
      }
      try {
        await db.run(stmt, values);
        await saveDb();
      } catch (err) {
        console.error(err);
      }
    },
    getCurrent: async function () {
      const q = `select * from sessions order by "updated" desc limit 10`;
      try {
        const r = await db.query(q);
        if (r.values && r.values.length > 0) {
          // Filter for sessions without endTime
          for (const session of r.values) {
            try {
              const state = JSON.parse(session.state);
              if (!state.endTime || state.endTime === "") {
                return [session];
              }
            } catch (parseErr) {
              console.error("Error parsing session state:", parseErr);
            }
          }
          // No active sessions found
          return [];
        }
      } catch (err) {
        console.error(err);
      }
    },
  };
}