import * as plugins from './plugins.js'; // Code/asset paths (not affected by baseDir) export const packageDir = plugins.path.join( plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../' ); export const distServe = plugins.path.join(packageDir, './dist_serve'); // Default base for all dcrouter data (always user-writable) export const dcrouterHomeDir = plugins.path.join(plugins.os.homedir(), '.serve.zone', 'dcrouter'); // Default TsmDB path for CacheDb export const defaultTsmDbPath = plugins.path.join(dcrouterHomeDir, 'tsmdb'); /** * Resolve all data paths from a given baseDir. * When no baseDir is provided, falls back to ~/.serve.zone/dcrouter. * Specific overrides (e.g. DATA_DIR env) take precedence. */ export function resolvePaths(baseDir?: string) { const root = baseDir ?? plugins.path.join(plugins.os.homedir(), '.serve.zone', 'dcrouter'); const resolvedDataDir = process.env.DATA_DIR ?? plugins.path.join(root, 'data'); return { dcrouterHomeDir: root, dataDir: resolvedDataDir, defaultTsmDbPath: plugins.path.join(root, 'tsmdb'), }; }