a6cbcc273e
Made-with: Cursor
28 lines
1007 B
TypeScript
28 lines
1007 B
TypeScript
import path from 'node:path';
|
|
|
|
import { app } from 'electron';
|
|
|
|
export function getProjectsRootDir(): string {
|
|
return path.join(app.getPath('userData'), 'projects');
|
|
}
|
|
|
|
export function getProjectsCacheRootDir(): string {
|
|
return path.join(app.getPath('userData'), 'projects-cache');
|
|
}
|
|
|
|
/**
|
|
* Каталоги `…/projects` из других имён приложения в `%AppData%` (родитель `userData`).
|
|
* Если когда‑то меняли `app.setName`, проекты могли остаться в соседней папке — их подхватываем при старте.
|
|
*/
|
|
export function getLegacyProjectsRootDirs(): string[] {
|
|
const cur = getProjectsRootDir();
|
|
const parent = path.dirname(app.getPath('userData'));
|
|
const siblingNames = ['DnD Player', 'dnd-player', 'DNDGamePlayer', 'dnd_player'];
|
|
const out: string[] = [];
|
|
for (const n of siblingNames) {
|
|
const p = path.join(parent, n, 'projects');
|
|
if (p !== cur) out.push(p);
|
|
}
|
|
return out;
|
|
}
|