import { initBackend } from "absurd-sql/dist/indexeddb-main-thread";
import { initializeApp } from "./main.common";
import { logger } from "./utils/logger";

const platform = process.env.VITE_PLATFORM;
const pwa_enabled = process.env.VITE_PWA_ENABLED === "true";

// Only import service worker for web builds
if (platform !== "electron" && pwa_enabled) {
  import("./registerServiceWorker"); // Web PWA support
}

const app = initializeApp();

function sqlInit() {
  // see https://github.com/jlongster/absurd-sql
  const worker = new Worker(
    new URL("./registerSQLWorker.js", import.meta.url),
    {
      type: "module",
    },
  );
  // This is only required because Safari doesn't support nested
  // workers. This installs a handler that will proxy creating web
  // workers through the main thread
  initBackend(worker);
}
if (platform === "web" || platform === "development") {
  sqlInit();
} else {
  logger.warn("[Web] SQL not initialized for platform", { platform });
}

app.mount("#app");
