config-path.js 862 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. const os = require('os');
  2. const path = require('path');
  3. const userHome = require('homedir-polyfill')();
  4. const env = process.env;
  5. const name = 'js-v8flags';
  6. function macos () {
  7. const library = path.join(userHome, 'Library');
  8. return path.join(library, 'Caches', name);
  9. }
  10. function windows () {
  11. const appData = env.LOCALAPPDATA || path.join(userHome, 'AppData', 'Local');
  12. return path.join(appData, name);
  13. }
  14. // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
  15. function linux () {
  16. const username = path.basename(userHome);
  17. return path.join(env.XDG_CACHE_HOME || path.join(userHome, '.cache'), name);
  18. }
  19. module.exports = function (platform) {
  20. if (!userHome) {
  21. return os.tmpdir();
  22. }
  23. if (platform === 'darwin') {
  24. return macos();
  25. }
  26. if (platform === 'win32') {
  27. return windows();
  28. }
  29. return linux();
  30. };