import './lib/bare-globals.js'
import os from 'bare-os'
import { Client } from 'hyper-svc'
const sockPath = os.homedir() + '/.config/hyper-proto-peer/data/control.sock'
function timeout (ms) {
return new Promise((_, reject) => setTimeout(() => reject(new Error('TIMEOUT ' + ms + 'ms')), ms))
}
async function main () {
let client
try {
client = await Promise.race([Client.connectUds(sockPath), timeout(6000)])
} catch (err) {
console.log('CONNECT_ERROR:', err.message)
process.exit(1)
}
try {
const state = await Promise.race([client.call('get-state', {}), timeout(6000)])
console.log('GET_STATE_OK:')
console.log(JSON.stringify(state, null, 2))
const keys = ['did', 'self', 'writable', 'holdsLease', 'indexers', 'indexer', 'head', 'recordCount', 'records']
console.log('---SUMMARY---')
for (const k of keys) {
if (state && Object.prototype.hasOwnProperty.call(state, k)) {
const v = state[k]
if (Array.isArray(v)) console.log(k + ': [' + v.length + '] ' + JSON.stringify(v))
else if (v && typeof v === 'object') console.log(k + ': ' + JSON.stringify(v))
else console.log(k + ': ' + v)
}
}
} catch (err) {
console.log('GET_STATE_ERROR:', err.message)
}
process.exit(0)
}
main()