23 lines
671 B
JavaScript
23 lines
671 B
JavaScript
|
import { homedir } from "os";
|
||
|
import { sep } from "path";
|
||
|
const homeDirCache = {};
|
||
|
const getHomeDirCacheKey = () => {
|
||
|
if (process && process.geteuid) {
|
||
|
return `${process.geteuid()}`;
|
||
|
}
|
||
|
return "DEFAULT";
|
||
|
};
|
||
|
export const getHomeDir = () => {
|
||
|
const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${sep}` } = process.env;
|
||
|
if (HOME)
|
||
|
return HOME;
|
||
|
if (USERPROFILE)
|
||
|
return USERPROFILE;
|
||
|
if (HOMEPATH)
|
||
|
return `${HOMEDRIVE}${HOMEPATH}`;
|
||
|
const homeDirCacheKey = getHomeDirCacheKey();
|
||
|
if (!homeDirCache[homeDirCacheKey])
|
||
|
homeDirCache[homeDirCacheKey] = homedir();
|
||
|
return homeDirCache[homeDirCacheKey];
|
||
|
};
|