-
-
Notifications
You must be signed in to change notification settings - Fork 938
/
dirs.ts
41 lines (39 loc) · 1018 Bytes
/
dirs.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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')
}