mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-03 04:15:12 -04:00
84 lines
2.0 KiB
TypeScript
84 lines
2.0 KiB
TypeScript
import os from 'os'
|
|
import path from 'path'
|
|
|
|
export function getCacheDir (
|
|
opts: {
|
|
env: NodeJS.ProcessEnv
|
|
platform: string
|
|
}
|
|
) {
|
|
if (opts.env.XDG_CACHE_HOME) {
|
|
return path.join(opts.env.XDG_CACHE_HOME, 'pnpm')
|
|
}
|
|
if (opts.platform === 'darwin') {
|
|
return path.join(os.homedir(), 'Library/Caches/pnpm')
|
|
}
|
|
if (opts.platform !== 'win32') {
|
|
return path.join(os.homedir(), '.cache/pnpm')
|
|
}
|
|
if (opts.env.LOCALAPPDATA) {
|
|
return path.join(opts.env.LOCALAPPDATA, 'pnpm-cache')
|
|
}
|
|
return path.join(os.homedir(), '.pnpm-cache')
|
|
}
|
|
|
|
export function getStateDir (
|
|
opts: {
|
|
env: NodeJS.ProcessEnv
|
|
platform: string
|
|
}
|
|
) {
|
|
if (opts.env.XDG_STATE_HOME) {
|
|
return path.join(opts.env.XDG_STATE_HOME, 'pnpm')
|
|
}
|
|
if (opts.platform !== 'win32' && opts.platform !== 'darwin') {
|
|
return path.join(os.homedir(), '.local/state/pnpm')
|
|
}
|
|
if (opts.env.LOCALAPPDATA) {
|
|
return path.join(opts.env.LOCALAPPDATA, 'pnpm-state')
|
|
}
|
|
return path.join(os.homedir(), '.pnpm-state')
|
|
}
|
|
|
|
export function getDataDir (
|
|
opts: {
|
|
env: NodeJS.ProcessEnv
|
|
platform: string
|
|
}
|
|
) {
|
|
if (opts.env.XDG_DATA_HOME) {
|
|
return path.join(opts.env.XDG_DATA_HOME, 'pnpm')
|
|
}
|
|
if (opts.platform === 'darwin') {
|
|
return path.join(os.homedir(), 'Library/pnpm')
|
|
}
|
|
if (opts.platform !== 'win32') {
|
|
return path.join(os.homedir(), '.local/share/pnpm')
|
|
}
|
|
if (opts.env.LOCALAPPDATA) {
|
|
return path.join(opts.env.LOCALAPPDATA, 'pnpm')
|
|
}
|
|
return path.join(os.homedir(), '.pnpm')
|
|
}
|
|
|
|
export function getConfigDir (
|
|
opts: {
|
|
env: NodeJS.ProcessEnv
|
|
platform: string
|
|
}
|
|
) {
|
|
if (opts.env.XDG_CONFIG_HOME) {
|
|
return path.join(opts.env.XDG_CONFIG_HOME, 'pnpm')
|
|
}
|
|
if (opts.platform === 'darwin') {
|
|
return path.join(os.homedir(), 'Library/Preferences/pnpm')
|
|
}
|
|
if (opts.platform !== 'win32') {
|
|
return path.join(os.homedir(), '.config/pnpm')
|
|
}
|
|
if (opts.env.LOCALAPPDATA) {
|
|
return path.join(opts.env.LOCALAPPDATA, 'pnpm/config')
|
|
}
|
|
return path.join(os.homedir(), '.config/pnpm')
|
|
}
|