Files
peardata/client/paths.js
T
Raven Scott a7648dc090
CI / test (push) Successful in 1m1s
Release rolling / release (push) Successful in 6m59s
Updates
2026-07-18 20:32:05 -04:00

42 lines
1.0 KiB
JavaScript

/**
* Unified client storage roots (PearDock-style).
*
* Primary: $PEARDATA_HOME || ~/.config/peardata
* Cache: {home}/cache/
* Override: PEARDATA_STORAGE / Pear.config.storage for runtime-only if set as home
*/
import path from 'path'
import os from 'os'
/**
* @returns {string}
*/
export function getPeardataHome() {
try {
if (typeof process !== 'undefined') {
if (process.env?.PEARDATA_HOME) return process.env.PEARDATA_HOME
if (process.env?.PEARDATA_STORAGE) return process.env.PEARDATA_STORAGE
}
} catch {
// ignore
}
try {
const pear = globalThis.Pear?.config?.storage
if (pear) return String(pear)
} catch {
// ignore
}
const home =
(typeof process !== 'undefined' && (process.env?.HOME || process.env?.USERPROFILE)) ||
(typeof os.homedir === 'function' ? os.homedir() : '') ||
''
return path.join(home, '.config', 'peardata')
}
/**
* @returns {string}
*/
export function getPeardataCacheDir() {
return path.join(getPeardataHome(), 'cache')
}