mirror of
https://github.com/steel-dev/cli.git
synced 2026-09-14 20:47:34 +08:00
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import fs from 'node:fs';
|
|
import {CONFIG_PATH} from './constants.js';
|
|
|
|
export function getApiKey(): {
|
|
apiKey: string;
|
|
name: string;
|
|
} | null {
|
|
try {
|
|
const config = fs.readFileSync(CONFIG_PATH, 'utf-8');
|
|
const parsedConfig = JSON.parse(config);
|
|
if (parsedConfig && parsedConfig.apiKey && parsedConfig.name) {
|
|
return {apiKey: parsedConfig.apiKey, name: parsedConfig.name};
|
|
}
|
|
return null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function getSettings(): {
|
|
instance: string;
|
|
} | null {
|
|
try {
|
|
const config = fs.readFileSync(CONFIG_PATH, 'utf-8');
|
|
const parsedConfig = JSON.parse(config);
|
|
if (parsedConfig && parsedConfig.instance) {
|
|
return {instance: parsedConfig.instance};
|
|
} else {
|
|
setSettings({instance: 'local'});
|
|
return {instance: 'local'};
|
|
}
|
|
} catch (error) {
|
|
console.error(error);
|
|
console.log('No settings found, setting to local');
|
|
setSettings({instance: 'local'});
|
|
return {instance: 'local'};
|
|
}
|
|
}
|
|
|
|
export function setSettings(value: object): void {
|
|
try {
|
|
let parsedConfig = {};
|
|
try {
|
|
const config = fs.readFileSync(CONFIG_PATH, 'utf-8');
|
|
parsedConfig = JSON.parse(config);
|
|
} catch {
|
|
// Config file doesn't exist, start with empty object
|
|
}
|
|
|
|
for (const key in value) {
|
|
parsedConfig[key] = value[key];
|
|
}
|
|
fs.writeFileSync(CONFIG_PATH, JSON.stringify(parsedConfig));
|
|
} catch (error) {
|
|
console.error('Error setting settings:', error);
|
|
}
|
|
}
|