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];
 | 
						|
};
 |