UNPKG

alm

Version:

The best IDE for TypeScript

60 lines (58 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var mkdirp = require("mkdirp"); var fsu = require("../utils/fsu"); var json = require("../../common/json"); /** * From http://stackoverflow.com/questions/19275776/node-js-how-to-get-the-os-platforms-user-data-folder/26227660#26227660 OS X - '/Users/user/Library/Preferences' Windows 8 - 'C:\Users\User\AppData\Roaming' Windows XP - 'C:\Documents and Settings\User\Application Data' Linux - `/home/bas/.local/share` (http://askubuntu.com/a/14536/7327) */ var userDataDir = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Preferences' : process.env.HOME + '/.local/share'); exports.appSettingsFolder = userDataDir + '/alm'; mkdirp.sync(exports.appSettingsFolder); var settingsFilePath = exports.appSettingsFolder + '/settingsV1.json'; function getSettingsFilePath() { return settingsFilePath; } exports.getSettingsFilePath = getSettingsFilePath; /** * Get / Set Settings */ function getSettings() { var settings = { workingDirs: [] }; if (fsu.existsSync(settingsFilePath)) { var parsed = json.parse(fsu.readFile(settingsFilePath)); if (parsed.error) { console.error('Could not parse the settings file:', parsed.error); return settings; } /** Other validations */ if (!Array.isArray(parsed.data.workingDirs)) { console.error('settings.workingDirs should be an array'); return settings; } /** All good! */ settings = parsed.data; } return settings; } function setSettings(settings) { var str = json.stringify(settings); fsu.writeFile(settingsFilePath, str); } /** * Various setting functions */ function addWorkingDir(workingDir) { var settings = getSettings(); if (settings.workingDirs.find(function (x) { return x === workingDir; })) return; settings.workingDirs.push(workingDir); setSettings(settings); } exports.addWorkingDir = addWorkingDir;