import { PrismaClient } from '@prisma/client'; import { defaultDatasetsFolder } from '@/paths'; import { defaultTrainFolder } from '@/paths'; import NodeCache from 'node-cache'; const myCache = new NodeCache(); const prisma = new PrismaClient(); export const flushCache = () => { myCache.flushAll(); }; export const getDatasetsRoot = async () => { const key = 'DATASETS_FOLDER'; let datasetsPath = myCache.get(key) as string; if (datasetsPath) { return datasetsPath; } let row = await prisma.settings.findFirst({ where: { key: 'DATASETS_FOLDER', }, }); datasetsPath = defaultDatasetsFolder; if (row?.value && row.value !== '') { datasetsPath = row.value; } myCache.set(key, datasetsPath); return datasetsPath as string; }; export const getTrainingFolder = async () => { const key = 'TRAINING_FOLDER'; let trainingRoot = myCache.get(key) as string; if (trainingRoot) { return trainingRoot; } let row = await prisma.settings.findFirst({ where: { key: key, }, }); trainingRoot = defaultTrainFolder; if (row?.value && row.value !== '') { trainingRoot = row.value; } myCache.set(key, trainingRoot); return trainingRoot as string; }; export const getHFToken = async () => { const key = 'HF_TOKEN'; let token = myCache.get(key) as string; if (token) { return token; } let row = await prisma.settings.findFirst({ where: { key: key, }, }); token = ''; if (row?.value && row.value !== '') { token = row.value; } myCache.set(key, token); return token; };