open source is social v-it.org
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 52 lines 1.5 kB view raw
1// SPDX-License-Identifier: MIT 2// Copyright (c) 2026 sol pbc 3 4import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs'; 5import { join } from 'node:path'; 6import { configDir, configPath } from './paths.js'; 7import { errorMessage } from './error-format.js'; 8 9const vitJsonPath = configPath('vit.json'); 10 11export function loadConfig() { 12 if (!existsSync(vitJsonPath)) return {}; 13 try { 14 return JSON.parse(readFileSync(vitJsonPath, 'utf-8')); 15 } catch (err) { 16 console.warn(`warning: failed to read ${vitJsonPath}: ${errorMessage(err)}`); 17 return {}; 18 } 19} 20 21export function saveConfig(obj) { 22 const now = Math.floor(Date.now() / 1000); 23 if (!obj.created_at) obj.created_at = now; 24 obj.updated_at = now; 25 mkdirSync(configDir, { recursive: true }); 26 writeFileSync(vitJsonPath, JSON.stringify(obj, null, 2) + '\n'); 27} 28 29export function requireDid(opts) { 30 if (opts?.did) return opts.did; 31 const localLogin = join(process.cwd(), '.vit', 'login.json'); 32 try { 33 if (existsSync(localLogin)) { 34 const local = JSON.parse(readFileSync(localLogin, 'utf-8')); 35 if (local.did) return local.did; 36 } 37 } catch (err) { 38 console.warn(`warning: failed to read ${localLogin}: ${errorMessage(err)}`); 39 } 40 const did = loadConfig().did; 41 if (!did) { 42 console.error("no DID configured. run 'vit login <handle>' first or pass --did."); 43 process.exitCode = 1; 44 } 45 return did; 46} 47 48export function getScalars(obj) { 49 return Object.entries(obj).filter( 50 ([, v]) => typeof v !== 'object' || v === null 51 ); 52}