config-path.js 862 Bytes
Newer Older
jatuporn Tonggasem's avatar
jatuporn Tonggasem committed
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
const os = require('os');
const path = require('path');
const userHome = require('homedir-polyfill')();

const env = process.env;
const name = 'js-v8flags';

function macos () {
  const library = path.join(userHome, 'Library');
  return path.join(library, 'Caches', name);
}

function windows () {
  const appData = env.LOCALAPPDATA || path.join(userHome, 'AppData', 'Local');
  return path.join(appData, name);
}

// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
function linux () {
  const username = path.basename(userHome);
  return path.join(env.XDG_CACHE_HOME || path.join(userHome, '.cache'), name);
}

module.exports = function (platform) {
  if (!userHome) {
    return os.tmpdir();
  }

  if (platform === 'darwin') {
    return macos();
  }

  if (platform === 'win32') {
    return windows();
  }

  return linux();
};