refraction-cli
Version:
AI code generation for your terminal.
39 lines (27 loc) • 955 B
text/typescript
/* eslint-disable n/no-sync, import/no-nodejs-modules */
import os from 'node:os';
import path from 'node:path';
import fs from 'node:fs';
type Config = {
userId: string;
teamId: string;
};
const homeDir = process.env.XDG_CONFIG_HOME
? process.env.XDG_CONFIG_HOME
: os.homedir();
const configFile = path.join(homeDir, 'refraction-config.json');
if (!fs.existsSync(configFile)) {
const newConfig: Config = { userId: '', teamId: '' };
fs.writeFileSync(configFile, JSON.stringify(newConfig));
}
export const getConfig = (str: keyof Config): string => {
const config = fs.readFileSync(configFile, 'utf-8');
const parsed = JSON.parse(config) as Config;
return parsed[str];
};
export const setConfig = (str: keyof Config, value: string): void => {
const config = fs.readFileSync(configFile, 'utf-8');
const parsed = JSON.parse(config) as Config;
parsed[str] = value;
fs.writeFileSync(configFile, JSON.stringify(parsed));
};