UNPKG

track-dev-time

Version:

CLI tool to track your coding sessions with start, pause and stop commands. Outputs session data to a JSON file.

49 lines (40 loc) 1.4 kB
import { CONFIG_PATH, DEFAULT_INACTIVITY_DELAY, DEFAULT_RESUME_WINDOW_MS, SESSIONS_PATH, } from "./constants.js"; import fs from "fs"; import path from "path"; export const readDataFromFile = (filePath = SESSIONS_PATH) => { return JSON.parse(fs.readFileSync(filePath, "utf-8")); }; export const writeDataToFile = (data, filePath = SESSIONS_PATH) => { fs.writeFileSync(filePath, JSON.stringify(data, null, 2), "utf-8"); }; export const ensureSessionStorage = (filePath = SESSIONS_PATH) => { if (!fs.existsSync(path.dirname(filePath))) { fs.mkdirSync(path.dirname(filePath), { recursive: true }); } if (!fs.existsSync(filePath)) { const projectName = path.basename(process.cwd()); const initialData = { projectName, sessions: [] }; writeDataToFile(initialData, filePath); } }; const defaultConfig = { inactivityTimeoutMs: DEFAULT_INACTIVITY_DELAY, autoResumeSessionWindowMs: DEFAULT_RESUME_WINDOW_MS, }; export const ensureConfigFile = (filePath = CONFIG_PATH) => { const configDir = path.dirname(filePath); if (!fs.existsSync(configDir)) { fs.mkdirSync(configDir, { recursive: true }); } if (!fs.existsSync(filePath)) { fs.writeFileSync(filePath, JSON.stringify(defaultConfig, null, 2), "utf-8"); console.log("✅ config.json created with default settings"); } else { console.log("ℹ️ config.json already exists"); } };