Files
moreminimore-vibe/src/paths/paths.ts
2025-06-02 21:39:51 -07:00

45 lines
1.3 KiB
TypeScript

import path from "node:path";
import os from "node:os";
export function getDyadAppPath(appPath: string): string {
if (process.env.E2E_TEST_BUILD) {
const electron = getElectron();
return path.join(electron!.app.getPath("userData"), "dyad-apps", appPath);
}
return path.join(os.homedir(), "dyad-apps", appPath);
}
/**
* Gets the user data path, handling both Electron and non-Electron environments
* In Electron: returns the app's userData directory
* In non-Electron: returns "./userData" in the current directory
*/
export function getUserDataPath(): string {
const electron = getElectron();
// When running in Electron and app is ready
if (process.env.NODE_ENV !== "development" && electron) {
return electron!.app.getPath("userData");
}
// For development or when the Electron app object isn't available
return path.resolve("./userData");
}
/**
* Get a reference to electron in a way that won't break in non-electron environments
*/
export function getElectron(): typeof import("electron") | undefined {
let electron: typeof import("electron") | undefined;
try {
// Check if we're in an Electron environment
if (process.versions.electron) {
electron = require("electron");
}
} catch {
// Not in Electron environment
}
return electron;
}