Skip to content
Settings.ts 927 B
Newer Older
Grant's avatar
Grant committed
import Canvas from "./Canvas";
Grant's avatar
Grant committed
import { getLogger } from "./Logger";
Grant's avatar
Grant committed
import { prisma } from "./prisma";

Grant's avatar
Grant committed
const Logger = getLogger("SETTINGS");

export const loadSettings = async (frozen = false) => {
Grant's avatar
Grant committed
  Logger.info("Loading settings...");

  const sideEffects: Promise<unknown>[] = [];

  // canvas size
  const canvasSize = await prisma.setting.findFirst({
    where: { key: "canvas.size" },
  });
  if (canvasSize) {
    const data = JSON.parse(canvasSize.value);
    Logger.info("Canvas size loaded as " + JSON.stringify(data));
Grant's avatar
Grant committed

Grant's avatar
Grant committed
    sideEffects.push(
Grant's avatar
Grant committed
      Canvas.setSize(data.width, data.height, frozen).then(() => {
Grant's avatar
Grant committed
        Logger.info("Canvas size successfully updated");
      })
    );
  } else {
    Logger.warn("Setting canvas.size is not set, did you run init_settings?");
  }

  Logger.info(
    "Settings loaded into memory, waiting for side effects to finish..."
  );

  await Promise.allSettled(sideEffects);
};