import fs from "fs"; import path from "path"; import {homedir} from "os"; import Service from "./Service"; const configDir = path.resolve(homedir(), '.tabs-app'); const configFile = path.resolve(configDir, 'config.json'); export default class Config { constructor() { // Load data from config file let data = {}; if (fs.existsSync(configDir) && fs.statSync(configDir).isDirectory()) { if (fs.existsSync(configFile) && fs.statSync(configFile).isFile()) data = JSON.parse(fs.readFileSync(configFile, 'utf8')); } else { fs.mkdirSync(configDir); } // Parse services this.services = []; if (typeof data.services === 'object') { let i = 0; for (const service of data.services) { this.services[i] = new Service(service); i++; } } if (this.services.length === 0) { this.services.push(new Service('welcome', 'Welcome', 'fas fa-rocket', false, 'https://gitlab.com/ArisuOngaku/tabs', false)); } this.save(); } save() { fs.writeFileSync(configFile, JSON.stringify(this, null, 4)); } }