Spaces:
Sleeping
Sleeping
| import { mkdir, readFile, writeFile } from 'node:fs/promises'; | |
| import { dirname, join } from 'node:path'; | |
| import { homedir } from 'node:os'; | |
| export const DEFAULT_STATE_PATH = join(homedir(), '.config', 'sin', 'sin-github-issues', 'onboarding-state.json'); | |
| export type OnboardingState = { | |
| ownerEmail?: string; | |
| notes?: string; | |
| defaultRepo?: string; | |
| browserProfileEmail?: string; | |
| browserProfileDirectory?: string; | |
| updatedAt?: string; | |
| }; | |
| export async function readState(): Promise<OnboardingState | null> { | |
| try { | |
| return JSON.parse(await readFile(DEFAULT_STATE_PATH, 'utf8')) as OnboardingState; | |
| } catch { | |
| return null; | |
| } | |
| } | |
| export async function writeState(state: OnboardingState) { | |
| await mkdir(dirname(DEFAULT_STATE_PATH), { recursive: true }); | |
| await writeFile(DEFAULT_STATE_PATH, `${JSON.stringify(state, null, 2)}\n`, 'utf8'); | |
| return state; | |
| } | |
| export function clean(value: string | undefined) { | |
| const normalized = String(value || '').trim(); | |
| return normalized || undefined; | |
| } | |