UNPKG

@zambelz/zhc

Version:
90 lines (72 loc) 2.02 kB
import path from "node:path" import { ROOT_PATH } from "../../utils/global" import { createProfile } from "../../utils/profile" import { getConfigData, getProfileConfig } from "../../utils/config" import { logError, logInfo } from "../../utils/logger" import { createDirectory, createFile } from "../../utils/fileOperation" const initConfig = () => { try { logInfo("Initializing config...") createDirectory({ path: ROOT_PATH }) createFile({ path: path.join(ROOT_PATH, "config.jsonc"), content: JSON.stringify({ "defaultProfile": "default", "editor": "nvim" }, null, 2) }) createFile({ path: path.join(ROOT_PATH, ".editorconfig"), content: `# Editor configuration, see http://editorconfig.org root = false [*] charset = utf-8 insert_final_newline = true trim_trailing_whitespace = true [*.jsonc] indent_style = space indent_size = 2 ` }) createDirectory({ path: path.join(ROOT_PATH, "scripts") }) try { const newProfile = createProfile("default") logInfo("New profile created at: ", newProfile) } catch (err) { logError(`${err}`) } logInfo("Config initialized") } catch (err) { logError(`${err}`) } } const setConfig = async (opt: Record<string, string | boolean>) => { if (typeof opt?.set !== "string" || opt?.set === "") { logError("No input provided") return } const configInput = opt?.set as string const configs = configInput.split(":") const isGlobal = opt?.global || false if (isGlobal) { console.log("Setting global config...") return } // TODO: add functionality to set profile config // globally or locally console.log("TODO: Set profile config") } const viewCurrentConfig = async () => { const configData = getConfigData() const profileConfig = getProfileConfig() const output: Record<string, any> = { ...configData, ...profileConfig } console.log(output) } export { initConfig, setConfig, viewCurrentConfig }