UNPKG

figgo

Version:

A CLI tool make your design tokens stay up to date with your Figma design styleguide

97 lines 2.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const os = require("os"); const path_1 = require("path"); const helper_1 = require("./helper"); class Storage { constructor() { this.storageDir = path_1.join(os.homedir(), ".figgo"); this.localDir = process.cwd(); this.globalFile = path_1.join(this.storageDir, "config.json"); this.localFile = path_1.join(this.localDir, "figgo.json"); } readBoardsFromFile() { const file = this.isLocalConfigFileExisted() ? this.localFile : this.globalFile; if (file === this.globalFile) { return this.setBoardFromGlobalConfig(file); } else { return this.setBoardFromLocalConfig(file); } } writeFile(content) { try { fs.writeFileSync(this.globalFile, JSON.stringify({ boards: content })); return helper_1.successLog(`successfully updated`); } catch (e) { return helper_1.warningLog("fail"); } } isStorageDirExisted() { if (!fs.existsSync(this.storageDir)) { fs.mkdirSync(this.storageDir); return false; } else { return true; } } removeConfigFile() { const link = this.globalFile; fs.unlinkSync(link); return this.isConfigFileExisted(); } isConfigFileExisted() { if (this.isStorageDirExisted()) { const file = this.globalFile; const isExist = fs.existsSync(file); return isExist; } return false; } isLocalConfigFileExisted() { const file = this.localFile; const isExist = fs.existsSync(file); if (isExist) { console.log(`🤓 Reading figgo setup from ${file}`); } return isExist; } setBoardFromGlobalConfig(file) { if (this.isStorageDirExisted()) { if (this.isConfigFileExisted()) { const content = fs.readFileSync(file, "utf8"); const formatted = JSON.parse(content); if (formatted.boards) { return formatted.boards; } else { fs.writeFileSync(file, JSON.stringify({ boards: [] })); return []; } } else { fs.writeFileSync(file, JSON.stringify({ boards: [] })); return []; } } } setBoardFromLocalConfig(file) { const content = fs.readFileSync(file, "utf8"); const formatted = JSON.parse(content); try { if (formatted.boards) { return formatted.boards; } } catch (e) { console.log(helper_1.warningLog(`check log config`)); } } } exports.default = Storage; //# sourceMappingURL=storage.js.map